ConstHw 0 31 мая, 2016 Опубликовано 31 мая, 2016 (изменено) · Жалоба Подскажите, как быть. Есть интерфейс, для простоты будет считать, что в нем только клок. interface foo_int #(); logic clk; task RunRst (); clk <= 0; endtask endinterface Дальше я объявляю этот интерфейс и хочу присвоить в него (в RTL коде, не в симуляции) какой то клок foo_int s0_cfg(); assign s0_cfg.clk = clk ; И вот тут падает ошибка : Illegal combination of driver and procedural assignment to variable clk detected (procedural assignment found in task/function RunClk Task нигде не вызывается, но Cadence все равно ругается. Замена в таске присвоения <= на = не меняет результат. Что я делаю не так? Как оставить возможность вызывать таски интерфейса в тестбенче, при этом сохраняя возможность присвоения в RTL? UPD http://stackoverflow.com/questions/1924986...ignment-warning Замена не помогает. Видимо я не понимаю что то важное про интерфейсы Изменено 31 мая, 2016 пользователем ConstHw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
7777777alex 0 31 мая, 2016 Опубликовано 31 мая, 2016 (изменено) · Жалоба Добрый день, так в роде бы правильно советуют? wire нельзя обозвать клок в интерфейсе? Прошу прощения, и наверное это вопрос SystemVerilog а не конкретно Incisive? Изменено 31 мая, 2016 пользователем 7777777alex Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ConstHw 0 1 июня, 2016 Опубликовано 1 июня, 2016 · Жалоба Однако в XSIM это симулируется корректно. Интерфейсу в тестбенче можно вызвать таск, другому интерфейсу в RTL можно присвоить значение через assign. Да, SV Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться