prom 0 17 февраля, 2005 Опубликовано 17 февраля, 2005 · Жалоба Такой вопросик возник по ходу работы. Может кто подскажет? Есть бидир пин. Пусть его зовут data. Также есть два модуля (верилог) - в одном есть порт data (output), в другом порт data (input); Можно ли подключить пин data к обоим модулям одним wire'ом??? при таком подключении ISE все компилирует и не матерится. Только вот в Assign Package Pins пин data выводится как output. А надо чтобы он был bidir (inout) :blink: Если есть такая возможность, то как ее реализовать на верилоге Если нет, тот как реализовать использование inout пинов в модулях без использования в них (модулях) inout портов??? Заранее спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitёk 0 17 февраля, 2005 Опубликовано 17 февраля, 2005 · Жалоба Можно ли подключить пин data к обоим модулям одним wire'ом???Только так и можно, если он действительно должен быть подключен к ним обоим. А надо чтобы он был bidir (inout)Направление пина описывается так же, как и направление портов в модулях - input, output или inout. Типа так: module top(C, DATA ...... .. . . . .. .. ) input C; inout DATA; ............. endmodule Другой вопрос - как описать, что он в одни моменты работает как вход, в другие как выход - возможны варианты... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cdg 2 17 февраля, 2005 Опубликовано 17 февраля, 2005 · Жалоба В модуле с выходным пином надо описать output с присвоением 'z' состояния, а на самом верхнем уровне data_hight_level должен быть описан как bidiractional module outputpin ... output wire data; .... assign data = (OutEnable) ? DATA : xx'hz; endmodule module inputpin ... input data; ... endmodule module hight_level ... inout data_hight_level; .... outputpin my_component_outputpin( .data(data_hight_level) ); inputpin my_component_inputpin( .data(data_hight_level) ); endmodule Никаких проблем быть не должно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cdg 2 17 февраля, 2005 Опубликовано 17 февраля, 2005 · Жалоба Или собрать все это в тристабильную шину можно и на самом верхнем уровне, дело вкуса: module outputpin ... output wire data; .... endmodule module inputpin ... input data; ... endmodule module hight_level ... inout data_hight_level; .... wire tmp_data; assign data = (OutEnable) ? tmp_data : xx'hz; outputpin my_component_outputpin( .data(tmp_data) ); inputpin my_component_inputpin( .data(data_hight_level) ); endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prom 0 17 февраля, 2005 Опубликовано 17 февраля, 2005 · Жалоба В модуле с выходным пином надо описать output с присвоением 'z' состояния, а на самом верхнем уровне data_hight_level должен быть описан как bidiractional module outputpin ... output wire data; .... assign data = (OutEnable) ? DATA : xx'hz; endmodule module inputpin ... input data; ... endmodule module hight_level ... inout data_hight_level; .... outputpin my_component_outputpin( .data(data_hight_level) ); inputpin my_component_inputpin( .data(data_hight_level) ); endmodule Никаких проблем быть не должно. <{POST_SNAPBACK}> пробовал этот вариант, все равно выводит как output Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cdg 2 17 февраля, 2005 Опубликовано 17 февраля, 2005 · Жалоба У меня это работает, правда ISE у меня нет, с Альтерой пока работаю, посему точней сказать не могу, в Synplify все синтезируется корректно, в ISE есть неплохие RTL-viewers, посмотрите, может с управлением что не так, и выход всегда включен, тогда точно такая ситуация будет, а вообще промоделировать не мешало-бы или хотябы в тот-же Synplify загнать код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitёk 0 18 февраля, 2005 Опубликовано 18 февраля, 2005 · Жалоба Проверьте, управляется ли выходной буфер (с Z-состоянием) сигналом, отличным от константы (от "1"). Если выход _всё_ время разрешён, то на этапе оптимизации он принудительно превращается в "output". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться