Перейти к содержанию

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 эти сигналы не обнаруживает и выдает ошибку. Как быть в таких ситуациях?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


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

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

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

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

Поделиться сообщением


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

 

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

Изменено пользователем TamRazZ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
или есть способ "правильного" описания сигнала?

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация