реклама на сайте
подробности

 
 
> inout шины в Verilog, для MAX+plus II
Волощенко
сообщение Jun 8 2007, 08:29
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 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"

Вопрос: Кто сталкивался с подобным, почему так происходит, почему не выдается информация в шину?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sazh
сообщение Jun 15 2007, 11:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Что касается пинов двойного назначения.
Здесь надо рассматривать по моему мнению временные интервалы конфигурации (для различных режимов конфигурирования кристалла) и пользовательский режим.
Если стандартные контакты i/o в интервале конфигурации все в состоянии z (у кого есть подтягивающие резисторы, у кого нет), то для контактов двойного назначения состояния z автоматом не предусмотрено. И не понятно в каком состоянии они будут в интервале конфигурации (вход, неподключен)
Как я понимаю предлагается самому выбрать, что делать с таким пином.
Наверно max+ говорит, что если такому пину задать опцию tri (он будет как вход tri), но уже в пользовательском режиме этот пин уже нельзя будет использовать как i/o пин.
Поэтому если галочек не ставить и меньше знать, то в пользовательском режиме по умолчанию такой пин станет i/o. А значит к нему можно подключить двунаправленную шину, которая без буфера по состоянию z работать не будет по определению. (А вот какие уровни на этих пинах будут в интервале конфигурации, не вступят ли они в конфликт с памятью в этом интервале. Например первое включение, ПЗУ пусто, вы находитесь в интервале конфигурация долгое время.)
Еще раз повторюсь, что касается пользовательского режима (с глобальными установками по умолчанию) эти пины должны конфигурироваться как i/o и обмен с памятью должен моделироваться со всеми состояниями 0,1,z
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.0141 секунд с 7
ELECTRONIX ©2004-2016