Чего-то уткнулся рогом в довольно глупую ситуацию:
есть борд (подрядчика), на нам маленький CPLD XIlinxа: XCR3064CS48.
В ней элементарная маленькая логика (3-4 and, 4-5 инверторов, 1 pull-down)
3 входа, 4 выхода. Выхода драйвят чип А3901 (motor drive).
Странность в том что при включении питания на выходах возникают сигналы (2 из 4х выходов прыгают в "1") при том что входа остаются в '0'. По началу думал что включены внутренние pull-ups по входам они и дергают выхода вверх через логику, но подрядчик божится что внутренние pull-ups не сконфигурированы. (у меня кода нет, точнее схемы - он рисуетм не кодирует).
Смотрю datasheet A3901 - у него входа вроде тоже не имеют внутренних pull-ups, т.е. вроде нечему выхода дергать в '1' по включению питания....но увы это происходит.
Может кто работал с этим CPLD и знает то чего я не знаю что может привести к такому результату ?
Сейчас сделал такой эксперемент: стер все содержимое CPLD и включил в таком состянии - все 4 выхода сразу-же дернулись в '1' по включению питания.
В datasheet данного CPLD ночего не говориться об внутренних pull-ups, упоминатся внутренние pull-downы но в контексте не использованных входов.
Может ли быть что там какие-нить pull-upы на оговоренных конфигурацией выходах ?
Сейчас читаю еще раз datasheet - пишется что по выходам macrocells есть CT0, CT1 сигналы управления Rreset/Reset по выходу. Эти Rreset/Reset могут быть disabled. Однако говориться о
том что proper power-on Reset дивайса ставит macrocells в "zero" состояние. У самого чипа не вижу dedicated Reset входов (да и в схеме борта нет). Как тогда контролируется power-on reset ? Как контролировать CT0-5 terms microcellов ? Делается ли это автоматически синтезатором если в коде оговорены данные conditions или делается constrainтами ?
Спасибо.