Asb 1 19 октября, 2021 Опубликовано 19 октября, 2021 · Жалоба Потихоньку знакомлюсь с SystemVerilog. Вопрос собственно в том можно-ли с помощью параметров интерфейса добавить / исключить сигналы. К примеру в шине AXIS подшина USER может иметь разный размер или отсутствовать вовсе. Порадовавшись поддержке generate в интерфейсах получил... interface axis_if #(parameter int DATA_W = 16, USER_W = 0) (input wire logic aclk, aresetn); logic[DATA_W-1 : 0] tdata; logic tvalid, tlast, tready; logic[USER_W-1 : 0] tuser; if (USER_W > 0) begin modport m ( input tready, output tdata, tvalid, tlast, tuser ); modport s ( input tdata, tvalid, tlast, tuser, output tready ); end else begin modport m ( input tready, output tdata, tvalid, tlast ); modport s ( input tdata, tvalid, tlast, output tready ); end endinterface Код синтаксически верный, но не рабочий. Полагаю из-за дополнительного уровня созданного generate. Очевидное решение с созданием разных modport душу как-то не греет. В общем хотелось-бы понять как делать правильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 34 20 октября, 2021 Опубликовано 20 октября, 2021 · Жалоба Размер параметром задать можно, а вот рулить объявлением - нет. Ну, и с modport тоже всё плохо - в generate это нельзя по той причине, что вы указали - оно вводит уровень иерархии, а modport - это вообще не иерархическая вещь. Раньше мы с энтузиазмом использовали generate for для модпортов (генерить их количество по параметру), но позднее это стало нельзя квеста 10.7 уже уверенно забривала такое). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
attaboy 0 21 октября, 2021 Опубликовано 21 октября, 2021 · Жалоба On 10/19/2021 at 6:47 PM, Asb said: Вопрос собственно в том можно-ли с помощью параметров интерфейса добавить / исключить сигналы. А нужно ли это? Если какой-то сигнал не используется, просто не указываете его, и он успешно оптимизируется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
likeasm 0 21 октября, 2021 Опубликовано 21 октября, 2021 · Жалоба 4 hours ago, attaboy said: А нужно ли это? Если какой-то сигнал не используется, просто не указываете его, и он успешно оптимизируется. Ага, xilinx vivado любит тихо без шума и пыли оптимизировать сигналы в их неактивное состояние. Например, master tready в ноль. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 21 октября, 2021 Опубликовано 21 октября, 2021 · Жалоба Приветствую! 2 hours ago, likeasm said: Ага, xilinx vivado любит тихо без шума и пыли оптимизировать сигналы в их неактивное состояние. Например, master tready в ноль. Все неиспользуемые сигналы и неподключенные входы обычно в 0 и садятся. И отнюдь не без шума. Но ведь разработчик часто не обращает внимание на это "ворчание" Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 22 октября, 2021 Опубликовано 22 октября, 2021 · Жалоба 13 hours ago, likeasm said: Ага, xilinx vivado любит тихо без шума и пыли оптимизировать сигналы в их неактивное состояние. Например, master tready в ноль. ЕМНП tready один из сигналов handhsake, если его бросили в воздухе, то сами себе злобные буратины. tuser, насколько помню не относится к hanshake и на него можно свободно забить) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Asb 1 26 октября, 2021 Опубликовано 26 октября, 2021 · Жалоба Благодарю за пояснения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться