Modelsim и GHDL не могут выгружать определяемые пользователем типы сигналов vhdl в vcd? - PullRequest
4 голосов
/ 11 марта 2012

Я пытаюсь вывести внутренние сигналы из симуляции, выполняемой либо modelsim, либо ghdl.Все работает нормально, используя:

Для моделей, добавьте источники VHDL и скомпилируйте все затем:

vsim -novopt work.uut_testbench
vcd file ../uut.vcd;
vcd limit 50000000;
vcd add -r /uut_testbench/uut_core/*;
run 6000
quit -sim

Для GHDL

ghdl -i --ieee=synopsys --warn-no-vital-generic --workdir=work --work=work ./uut*.vhd 
ghdl -m --ieee=synopsys --warn-no-vital-generic --workdir=work --work=work uut_testbench
./uut_testbench --stop-time=6000ns --vcd=../uut.vcd

Я вижу сигналы моделирования, ноне все.Сигналы, определенные как

Type InternalState is (Idle,Valid,Stalled);
Signal sState,sPrevState :InternalState;

, исключаются из видеодокумента.Такое поведение характерно для modelsim и ghdl.

Я вижу следующую строку на сгенерированном ghdl vcd

$comment sstate is not handled $end

Modelsim просто тихо пропускает эти сигналы

Есть ли обходной путь?Альтернатива

Ответы [ 3 ]

2 голосов
/ 12 марта 2012

Попробуйте gtkwave Тони Байбелла, в котором вы можете назначить подстановку перечисления для значений (руководство gtkwave в разделе Быстрый запуск, Файлы псевдонимов и Присоединение внешних дизассемблеров).Gtkwave также совместим с собственным форматом сигнала ghdl (ghw).См. Gtkwave на SourceForge , здесь есть ссылка на руководство и ссылки на загрузку двоичных файлов для W32 и приложения Mac.Он также должен быть доступен через любой дистрибутив Linux.

1 голос
/ 09 сентября 2018

Как упомянуто @ user1155120, собственный формат GHDL (.ghw) поддерживает поддержку пользовательских типов и также может быть прочитан GTKWave.

Вы можете экспортировать этот тип сигнала с помощью --wave<=FILENAME>.

Тем не менее, я подал вопрос для поддержки пользовательских типов также в .vcd сигналах в будущем!

0 голосов
/ 13 апреля 2016

Ваш симулятор не знает, как представить ваш тип InternalState с помощью скалярных или векторных переменных, возможных в файле дампа изменения значений.Если вы будете использовать, например, вектор std_ulogic для представления ваших состояний, они появятся в файле VCD.Хороший просмотрщик формы волны позволяет заменить кодировку состояния на имена состояний.Gtkwave поддерживает это, как уже было указано пользователем1155120.Стандарт IEEE 1800-2012 описывает в разделе 21.7 файлы VCD и их ограничения.

...