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

ModelSim и конечные автоматы

Подскажите, как в ModelSim вытащить в окно сигналов 'wave' сигнал текущего состояния конечного автомата, чтобы он отображался именно как enumerated data type ?

Например есть Top_level, в нем помимо разных блоков есть блок конечного автомата, например state_machine. В этом конечном автомате есть переменная current_state, которая может принимать такие значения как: "Idle", "Start", "Stop" и т.д. Когда я компилирую Top_level в ModelSim, то в окно выводятся только входные/выходные сигналы блока Top_level. А как мне вывести сигнал текущего состояния конечного автомата current_state, который находится по иерархии /Top_level/state_machine/current_state ?

 

Если это уже где-то обсуждалось - буду очень признателен за ссылку, не нашел.

 

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


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

Простите, но по Вашей ссылке не нашел ответа на свой вопрос. У меня проблема в том, что автомат ниже по иерархии, а в Wave можно выводить только сигналы Top_level'a

P.S. язык - VHDL

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


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

Wave можно выводить только сигналы Top_level'a

Не только.

Модельсим поймет что-то типа "add wave test_design_tb/DUT/top_module_a/module_a/counter", где "counter" - внутренний сигнал модуля module_a, входящего в модуль top_module_a и так далее до вершины иерархии.

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

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


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

А мне на мой "add wave test_design_tb/DUT/top_module_a/module_a/counter" пишет ошибку:

(vish-4014) No objects found matching 'add wave test_design_tb/DUT/top_module_a/module_a/counter' , где "counter" - мой внутренний сигнал модуля module_a, входящего в модуль top_module_a и так далее до вершины иерархии.

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


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

А мне на мой "add wave test_design_tb/DUT/top_module_a/module_a/counter" пишет ошибку:

(vish-4014) No objects found matching 'add wave test_design_tb/DUT/top_module_a/module_a/counter' , где "counter" - мой внутренний сигнал модуля module_a, входящего в модуль top_module_a и так далее до вершины иерархии.

Уберите оптимизацию и Моделсим нарисует Вам все сигналы...

 

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


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

А мне на мой "add wave test_design_tb/DUT/top_module_a/module_a/counter" пишет ошибку:

(vish-4014) No objects found matching 'add wave test_design_tb/DUT/top_module_a/module_a/counter' , где "counter" - мой внутренний сигнал модуля module_a, входящего в модуль top_module_a и так далее до вершины иерархии.

Гм, путь и сигналы, естественно, должны соответствовать реальной схеме. В вашем случае порядок действий примерно такой:

vlog -novopt Top_level.v
vsim -novopt Top_level
add wave Top_level/state_machine/current_state

PS: модуль конечного автомата должен быть заранее откомпелирован.

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

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


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

А мне на мой "add wave test_design_tb/DUT/top_module_a/module_a/counter" пишет ошибку

Чтобы увидеть, какие сигналы вы можете посмотреть, откройте закладку sim, в ней найдите экземпляр DUT, нажмите +, перейдите на то, что нужно... потом по правой кнопке выберите Add>To Wave>All items in region.

В RTL симуляции я вижу все, что создал. А вот в Gate Level, там, увы...

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


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

Большое спасибо всем откликнувшимся, не было возможности отвечать в ветку.

Все, что описано выше делал - не помогает.

 

В прикрепленном zip-архиве 3 файла:

1. MAC_PCIe_Modelsim_Stub.vhd - файл верхнего уровня (Top Level)

2. tx_st_chart.vhd - конечный автомат

3. MAC_PCIe_Modelsim_Stub_pkg.vhd

 

В файле tx_st_chart.vhd есть сигнал is_Tx_state_next, который принимает значения состояний автомата. Его я и хочу вывести в Wave.

Получается, что находится он /mac_pcie_modelsim_stub/tx_st_chart/is_tx_state_next

последовательность команд для ModelSim выглядит следующим образом:

vlib work
vmap work work
vcom -novopt MAC_PCIe_Modelsim_Stub_pkg.vhd
vcom -novopt tx_st_chart.vhd
vcom -novopt MAC_PCIe_Modelsim_Stub.vhd
vsim -novopt -t ns work.MAC_PCIe_Modelsim_Stub
add wave /mac_pcie_modelsim_stub/tx_st_chart/s_tx_state_next

до 'add wave /mac_pcie_modelsim_stub/tx_st_chart/is_tx_state_next' все идет хорошо.

на 'add wave /mac_pcie_modelsim_stub/tx_st_chart/is_tx_state_next' выдает ошибку:

# (vish-4014) No objects found matching '/mac_pcie_modelsim_stub/tx_st_chart/is_tx_state_next'

 

Почему-то мой ModelSim SE PLUS 6.4c не видит этот сигнал. Пробовал и в ModelSim 6.5 - тот же эффект.

 

Files.zip

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


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

add wave /mac_pcie_modelsim_stub/u_tx_st_chart/is_tx_state_next

Viko вам хорошо посоветовал - если сомневаетесь в иерархии проекта - смотрите во вкладке sim.

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

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


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

AndrewS6, спасибо. Ваша команда add wave /mac_pcie_modelsim_stub/u_tx_st_chart/is_tx_state_next помогла.

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


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

Чтобы увидеть, какие сигналы вы можете посмотреть, откройте закладку sim, в ней найдите...

Подкорректирую себя -

Открыть sim, выбрать нужный экземпляр (Instanse), перейти в закладку Objects и там уже выбрать нужные сигналы, которые добавить к Wave.

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


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

У меня проблема в том, что автомат ниже по иерархии, а в Wave можно выводить только сигналы Top_level

запускайте ModelSim c ключем log -r /*

 

# vsim -L lib1 -do {log -r /*} -l transcript.txt       и т.д.

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...