Хобрук: Ваш путь к мастерству в программировании

Modelsim и GHDL не могут сбрасывать пользовательские типы сигналов vhdl в vcd?

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

Для modelsim добавьте исходники 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 -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;

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

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

$comment sstate is not handled $end

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

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

11.03.2012

Ответы:


1

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

12.03.2012
  • Спасибо, я уже использую gtkwave. Проблема, которую я вижу, не в средстве просмотра, а в симуляторе, который игнорирует эти сигналы. Буду пробовать родные форматы волны; гв и влф. Но, насколько мне известно, формат vcd поддерживает такие сигналы. 12.03.2012
  • Можете ли вы автоматически выгрузить все перечисления из Verilog, а затем повторно использовать их в gtkwave? 30.04.2017

  • 2

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

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

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

    09.09.2018
  • Хотя вызов @user1155120 не привел к событию входящих сообщений (я не упоминается в исходном сообщении), этот «ответ» выглядит как комментарий или попытка ответить на ответ. 09.09.2018
  • Кажется, упоминания доступны только в комментариях, а не в ответах. Спасибо за подсказку! Кроме того, мне не разрешено комментировать, так как это требует большей репутации. Тем не менее, я думаю, что он дает информацию, которую не дает никакой другой ответ, и поэтому квалифицируется как отдельный ответ. 10.09.2018
  • Спасибо !!! Потрясающий. Просто добавил --wave=simu.ghw и все! теперь я также вижу свои cstate и nstate. :) Комбинация macOS + Sigasi + GHDL + gtkwave. 08.04.2019

  • 3

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

    13.04.2016
    Новые материалы

    5 проектов на Python, которые нужно создать прямо сейчас!
    Добро пожаловать! Python — один из моих любимых языков программирования. Если вы новичок в этом языке, перейдите по ссылке ниже, чтобы узнать о нем больше:

    Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
    DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

    «Очень простой» эволюционный подход к обучению с подкреплением
    В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

    Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
    Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

    Фишинг — Упаковано и зашифровано
    Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

    ВЫ РЕГРЕСС ЭТО?
    Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

    Не зря же это называют интеллектом
    Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..