porty 0 6 сентября, 2011 Опубликовано 6 сентября, 2011 (изменено) · Жалоба Добрый день Имеется SubDesign например такой SubDesign t_Arbitr ( clock : Input; A_ADDR[17..0] : Input; A_DATA[15..0] : Input; A_TAG : Input; A_REQ : Input; A_ACK : Output; B_ADDR[17..0] : Input; B_DATA[15..0] : Input; B_TAG : Input; B_REQ : Input; B_ACK : Output; M_ADDR[17..0] : Output; M_DATA[15..0] : Output; M_TAG : Output; M_REQ : Output; M_ACK : Input; ) У которого A_xxxx и B_xxxx - соединяется с подчинёнными ведомыми арбитрами а M_xxxx с ведущим. Как это переписать на ADHL чтоб было только одно символьное имя? Т.е. типа: SubDesign t_Arbitr ( clock : Input; A_BIND[36..0] : BiDir; B_BIND[36..0] : BiDir; M_BIND[36..0] : BiDir; ) а внутри арбитра уже разделить на конкретные имена? Проблема в том что если сделать так как я описал то напрямую соеденить невозможно при попытке написать arbitr_master.a_bind = arbitr_slave.m_bind; жалуется на то что невозможно присвоить к порту вывода. Приходится извращаться: variable ... n[36..0]:node; ... begin ... n=arbitr_master.a_bind; n=arbitr_slave.m_bind; ... что читается плохо и можно наделать ошибок столько же сколько в исходном Как описать чтоб можно было сделать напрямую arbitr_master.a_bind = arbitr_slave.m_bind; Изменено 6 сентября, 2011 пользователем Porty Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vitan 2 6 сентября, 2011 Опубликовано 6 сентября, 2011 · Жалоба Bidir Вы можете поставить только на краю плисины. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
porty 0 6 сентября, 2011 Опубликовано 6 сентября, 2011 (изменено) · Жалоба Bidir Вы можете поставить только снаружи плисины. Где то в самих исходниках альтеры видел что бидир внутри компонентов использовался. М.б. не сам бидир а TRI буфер нельзя использовать, т.к. Z состояние реально можно получить только драйверами пинов. Изменено 6 сентября, 2011 пользователем Porty Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kaps 0 6 сентября, 2011 Опубликовано 6 сентября, 2011 · Жалоба TRI есть в каждом LUTe, так что для развязки сигналов его и используют. В TRI не используются bidir сигналы, и вы можете с помощью арбитров соединить входы-выходы как Вам надо. пример от альтеры Описание TRI Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 6 сентября, 2011 Опубликовано 6 сентября, 2011 · Жалоба TRI есть в каждом LUTe а мужики то не знают (с) покажите где в документации на современные плис это написано? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kaps 0 6 сентября, 2011 Опубликовано 6 сентября, 2011 · Жалоба Тут я с Вами не спорю. Как таковых TRI-state буферов в LUT нет. Они виртуальны, т.е. компилятор синтезирует логику TRI в LUT. По моему... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
porty 0 6 сентября, 2011 Опубликовано 6 сентября, 2011 · Жалоба стоп, вопрос был как из M_ADDR[17..0] : Output; M_DATA[15..0] : Output; M_TAG : Output; M_REQ : Output; M_ACK : Input; сделать одно имя и как это описать чтоб в сотнях местах не лепить и не наделать ошибки, и только в этом, давайте о TRI и CHETYRE поговорим в личке или другой ветке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 6 сентября, 2011 Опубликовано 6 сентября, 2011 · Жалоба стоп, вопрос был как из сделать одно имя и как это описать чтоб в сотнях местах не лепить и не наделать ошибки, и только в этом, никак, если мне не изменяет память, в AHDL нет поддержки массивов векторов. переходите на VHDL/SV Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 6 сентября, 2011 Опубликовано 6 сентября, 2011 · Жалоба сделать одно имя Можно и одномерным массивом работать типа parameters (width = 4); subdesign generat_e ( a[width-1..0] : input; b[width-1..0] : output; c[2*width-1..0] : output; ) begin for i in 0 to width-1 generate b[i] = a[width-1-i]; c[2*i] = a[i]; c[2*i+1] = a[i]; end generate; end; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться