|
inout шины в Verilog, для MAX+plus II |
|
|
|
Jun 8 2007, 08:29
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Привет всем! Есть двунаправленная шина ввода-вывода для 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"
Вопрос: Кто сталкивался с подобным, почему так происходит, почему не выдается информация в шину?
|
|
|
|
|
 |
Ответов
|
Jun 11 2007, 07:07
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Спасибо за ответ! Я восстанавливаю программу для FLEX 10KA, написанную N-цать лет назад. На плате, FPGA связана шиной данных с Cache-RAM 32к*32 (IDT71V432), и на шине нет pull-up резисторов. Если FLEX 10KA имеет буферы с тремя состояниями, то явно промах мой, а если только буферы с открытым стоком - то разработчика этой платы. Если есть обе возможности, то не ясно, как переходить от одной к другой, опять же в документации на этом не акцентировали. Я выдаю в шину код данных и проверяю его в этот момент контрольным считыванием во вспомогательный регистр, который потом просматриваю. Но пока получается, что на шине только нули.
Контекстная помощь для MAX+ дает такие разъяснения: Help -> Verilog HDL -> Primitive -> TRI: In ACEX 1K, FLEX 10K, and MAX 7000S projects, some configurations of TRI primitives and other logic are automatically converted into OPNDRN buffers.
Help -> Verilog HDL -> Primitive -> OPNDRN: The OPNDRN primitive is supported only for the ACEX 1K, FLEX 10K , MAX 3000A, MAX 7000A, MAX 7000B, MAX 7000AE, and MAX 7000S device families; it is converted to an equivalent TRI primitive for other devices.
Из которых не ясно, присутствуют ли в FLEX 10KA оба типа буферов или только один.
|
|
|
|
Сообщений в этой теме
Волощенко inout шины в Verilog Jun 8 2007, 08:29 sazh MAX+plus II запретил применить следующую запись (в... Jun 8 2007, 10:22 Волощенко Цитата(sazh @ Jun 8 2007, 13:22) что каса... Jun 8 2007, 18:29 sazh Нет у Вас никаких ошибок по схеме соединения FPGA ... Jun 11 2007, 09:30 Волощенко Цитата(sazh @ Jun 11 2007, 12:30) Так вот... Jun 11 2007, 11:28 Волощенко Цитата(sazh @ Jun 11 2007, 12:30) ...И вс... Jun 16 2007, 09:10 sazh У меня такое ощущение, что я вас окончательно запу... Jun 11 2007, 13:45 Волощенко Спасибо, sazh, за ответы.
Но есть еще вопрос по in... Jun 15 2007, 10:38 sazh Что касается пинов двойного назначения.
Здесь надо... Jun 15 2007, 11:53
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|