Привет всем! Есть двунаправленная шина ввода-вывода для FPGA типа FLEX10KA, с декларацией на Verilog как: inout [31:0] IO; MAX+plus II запретил применить следующую запись (выдача DATA единицей на OE): assign IO = OE ? DATA : {32{1'bz}}; а вместо неё рекомендовал применить примитив TRI (с тремя состояниями) или OPNDRN (открытый коллектор). Тогда, следуя рекомендациям, и используя TRI, получил: TRI aaa(DATA, OE, IO); Однако, на выходах IO почему-то всегда нули, хотя код на DATA есть, что проверил контрольным считыванием по центру сигнала OE (его длительность 30нс), во вспомогательные регистры R1 и R2: always @ (posedge CLK) R1<=DATA; always @ (posedge CLK) R2<=IO;
Аналогичная ситуация с использованием OPNDRN, с конструкцией: assign DATAx = OE ? DATA : {32{1'b1}}; OPNDRN bbb(DATAx, IO); При этом была установлена опция "Automatic Open-Drain Pins"
Вопрос: Кто сталкивался с подобным, почему так происходит, почему не выдается информация в шину?
|