Jackov 1 29 октября, 2023 Опубликовано 29 октября, 2023 · Жалоба Приветствую. Есть примерно такой код: module Topmodule(..., inout Pin, ...); ... assign Pin = StatePin? A : 1'dZ; ... endmodule Мне был бы удобно управлять выводом из вложенного модуля, что-то типа: module TopModule(..., inout Pin, ...); ... M1 M1(..., .Pin(Pin), ...); ... endmodule module M1(..., inout Pin, ...); ... assign Pin = StatePin? A : 1'dZ; ... endmodule Может у Xilinx-а есть какой хитрый (*атрибут*), позволяющий такое делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 29 октября, 2023 Опубликовано 29 октября, 2023 · Жалоба Ну а вы пробовали так сделать без всяких атрибутов? И что у вас получилось? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lotos 4 29 октября, 2023 Опубликовано 29 октября, 2023 (изменено) · Жалоба В любых модулях, кроме верхнего уровня не рекомендуется использовать сигналы с третьим состоянием, так как внутри современных ПЛИС физически нет шин с третьим состоянием. Используйте отдельный сигнал data_oe (StatePin). Изменено 29 октября, 2023 пользователем Lotos Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 29 октября, 2023 Опубликовано 29 октября, 2023 · Жалоба 30 minutes ago, Lotos said: В любых модулях, кроме верхнего уровня не рекомендуется использовать сигналы с третьим состоянием, так как внутри современных ПЛИС физически нет шин с третьим состоянием. Эти рекомендации уже давным давно не актуальны. Вы можете использовать tristate на любом уровне иерархии, а если это не внешний пин то такой tristate будет синтезирован в мукс Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jackov 1 1 ноября, 2023 Опубликовано 1 ноября, 2023 · Жалоба В 29.10.2023 в 21:28, Lotos сказал: В любых модулях, кроме верхнего уровня не рекомендуется использовать сигналы с третьим состоянием, так как внутри современных ПЛИС физически нет шин с третьим состоянием. Используйте отдельный сигнал data_oe (StatePin). Да это всё понятно. Вопрос в том чтобы пробросить третье состояние вывода по модулям вверх по иерархии. Сейчас в железе проверить возможности нет, но во всяком случае откомпилировал. Скорее всего, в первый раз, я просто что-то не то сделал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 1 ноября, 2023 Опубликовано 1 ноября, 2023 · Жалоба 18 minutes ago, Jackov said: Да это всё понятно. Вопрос в том чтобы пробросить третье состояние вывода по модулям вверх по иерархии. Проброс tristate идет через порты inout, как у вас во втором примере. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jackov 1 1 ноября, 2023 Опубликовано 1 ноября, 2023 · Жалоба 21 час назад, RobFPGA сказал: Проброс tristate идет через порты inout, как у вас во втором примере. Сейчас вспоминаю, что я ещё раньше тоже пытался так делать, но не получилось. Возможно в тот раз это было на Альтере. Надо ещё и там попробовать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lotos 4 2 ноября, 2023 Опубликовано 2 ноября, 2023 · Жалоба В 29.10.2023 в 22:01, RobFPGA сказал: Вы можете использовать tristate на любом уровне иерархии, Это верно если синтезатор в САПР позволяет пробрасывать tristate. Но можно нарваться и придется переделывать на data_in, data_out и data_oe. Особенно будет актуально при переносе проекта в ПЛИС другого производителя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 2 ноября, 2023 Опубликовано 2 ноября, 2023 · Жалоба 18 minutes ago, Lotos said: Но можно нарваться и придется переделывать на data_in, data_out и data_oe. Последнее где я помню что такое было это был древний XIlinx Foundation ISE 3-й 4-й версии в далеких 2000-х. Если боятся нарваться на такие древности то тогда и в "лес" ходить не надо ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 34 3 ноября, 2023 Опубликовано 3 ноября, 2023 · Жалоба 8 часов назад, RobFPGA сказал: Последнее где я помню что такое было это был древний XIlinx Foundation ISE 3-й 4-й версии в далеких 2000-х. Если боятся нарваться на такие древности то тогда и в "лес" ходить не надо ... +1. Делал такое ещё на Quartus'е лохматых годов (2005-й), всё прекрасно пробрасывалось из внутреннего по иерархии модуля на топ через inout. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lotos 4 3 ноября, 2023 Опубликовано 3 ноября, 2023 · Жалоба Я на эти грабли в чужом коде наступил пару лет назад при синтезе. Пришлось переделывать, чтобы заработало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Александр77 1 4 ноября, 2023 Опубликовано 4 ноября, 2023 · Жалоба 21 час назад, Lotos сказал: Я на эти грабли в чужом коде наступил пару лет назад при синтезе. Пришлось переделывать, чтобы заработало. Может была какая-то "адская смесь" из взаимных подключений выводов с тремя состояниями в самой архитектуре? Неоднократно прокладывал шины с тремя состояниями из второго-третьего уровня вложенности наверх, без каких-либо изменений и всегда получал желаемый результат. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lotos 4 4 ноября, 2023 Опубликовано 4 ноября, 2023 · Жалоба Все фантазии разработчиков, которые переваривает симулятор, лучше сразу прогонять на синтезируемость. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться