Jump to content

    

GateLevel Simulation мультиразмерных сигналов

Доброго времени суток!

Пытаюсь просимулировать с помощью ModelSim (Altera Edition) проект, созданный в Quartus 13.1. Модули проекта написаны на SystemVerilog. Передача данных от одного модуля к другому осуществляется за счет мультиразмерных packed массивов.

RTL симуляция проходит нормально, но когда дело доходит до GateLevel ModelSim выдает ошибку, ругается на эти сигналы. Причина в том, что Quartus создает файл для симуляции *.vo (с временными задержками и тд). При генерации этого файла все мои многоразмерные сигналы вида:

output logic [7:0] [255:0] out_a;

Превращаются в:

out_a_0_0
out_a_0_1
...

и тд.

ModelSim эти сигналы не обнаруживает и выдает ошибку. Как быть в таких ситуациях?

 

Share this post


Link to post
Share on other sites

Нетлист это формат structural verilog, он не поддерживает интерфейсы sv. Поэтому все было расфлатовано. И отчасти поэтому же sv очень ограничено используется в эсико-строении. Решение: топ-левел пишите на верилоге, либо вообще все пишите на верилоге. А sv оставьте верификаторам.

Share this post


Link to post
Share on other sites
Нетлист это формат structural verilog, он не поддерживает интерфейсы sv. Поэтому все было расфлатовано. И отчасти поэтому же sv очень ограничено используется в эсико-строении. Решение: топ-левел пишите на верилоге, либо вообще все пишите на верилоге. А sv оставьте верификаторам.

А применение части SV возможно ?

Уж больно мне нравится тип logic и описание FSM у SV. Почти как на VHDL, на котором я пишу :rolleyes: .

Я просто все больше и больше начинаю рассматривать вариант перехода на Verilog\SV. Т.к у них больно много всяких полезных "фич" для верификации, недоступных на VHDL. Да и синтаксис всё-же попроще будет....

Share this post


Link to post
Share on other sites
Нетлист это формат structural verilog, он не поддерживает интерфейсы sv. Поэтому все было расфлатовано. И отчасти поэтому же sv очень ограничено используется в эсико-строении. Решение: топ-левел пишите на верилоге, либо вообще все пишите на верилоге. А sv оставьте верификаторам.

 

т.е. structural verilog не поддерживает мультиразмерные сигналы, в принципе? или есть способ "правильного" описания сигнала? Подскажите, как должна выглядеть декларация сигнала out_a в таком случае.

Edited by TamRazZ

Share this post


Link to post
Share on other sites
или есть способ "правильного" описания сигнала?

скорее есть способ "правильной" настроки софта. Смотрите EDA Tool Settings/Simulation/More EDA Netlist Writer Settings

А так в Quartus 17 и sv можно нетлист писать.

Share this post


Link to post
Share on other sites

С шинами вроде разобрался! Спасибо!

 

Подобная же проблема с параметризируемыми модулями... При создании квартусом *.svo или *.vo файла из модуля верхнего уровня пропадают параметры, и когда тестбенч передает значения параметра топ-левел модулю возникает ошибка. Как быть в такой ситуации... В настройках нетлист врайтера ничего подобного не обнаружил...

Share this post


Link to post
Share on other sites
Подобная же проблема с параметризируемыми модулями... При создании квартусом *.svo или *.vo файла из модуля верхнего уровня пропадают параметры,...

А они (параметры) не пропадают, а принимают уже вполне конкретные значения при синтезе. Нетлист - это ж принципиальная схема устройства (если по старому), а не настраиваемой модели, какие уж тут параметры?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this