|
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 15 2007, 11:53
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Что касается пинов двойного назначения. Здесь надо рассматривать по моему мнению временные интервалы конфигурации (для различных режимов конфигурирования кристалла) и пользовательский режим. Если стандартные контакты i/o в интервале конфигурации все в состоянии z (у кого есть подтягивающие резисторы, у кого нет), то для контактов двойного назначения состояния z автоматом не предусмотрено. И не понятно в каком состоянии они будут в интервале конфигурации (вход, неподключен) Как я понимаю предлагается самому выбрать, что делать с таким пином. Наверно max+ говорит, что если такому пину задать опцию tri (он будет как вход tri), но уже в пользовательском режиме этот пин уже нельзя будет использовать как i/o пин. Поэтому если галочек не ставить и меньше знать, то в пользовательском режиме по умолчанию такой пин станет i/o. А значит к нему можно подключить двунаправленную шину, которая без буфера по состоянию z работать не будет по определению. (А вот какие уровни на этих пинах будут в интервале конфигурации, не вступят ли они в конфликт с памятью в этом интервале. Например первое включение, ПЗУ пусто, вы находитесь в интервале конфигурация долгое время.) Еще раз повторюсь, что касается пользовательского режима (с глобальными установками по умолчанию) эти пины должны конфигурироваться как i/o и обмен с памятью должен моделироваться со всеми состояниями 0,1,z
|
|
|
|
Сообщений в этой теме
Волощенко 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 У всех кристаллов ест буфера по третьему состоянию... Jun 8 2007, 20:37 Волощенко Спасибо за ответ!
Я восстанавливаю программу д... Jun 11 2007, 07:07 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|