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

До кучи.

Можно ли как-нибудь сделать так, чтобы при добавления сигнала из Objects ему автоматом в Wave присваивалось имя = его имени в модуле, а не имя = модуль1\модуль2\модуль3\...модуль10\имя в модуле ? :)

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


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

До кучи.

Можно ли как-нибудь сделать так, чтобы при добавления сигнала из Objects ему автоматом в Wave присваивалось имя = его имени в модуле, а не имя = модуль1\модуль2\модуль3\...модуль10\имя в модуле ? :)

В окне Wave Tools -> Window Preferences, там в графе Display Signal Path пишите 1. Тогда при добавлении сигнала Top/module_a/submodule_b/signal в окне Wave он будет отображаться просто как signal

 

ЗЫ в тех же Window Preferences можно тыкнуть галку "On Close Warn for Save Format" - это решит первый ваш вопрос.

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

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


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

До кучи.

Можно ли как-нибудь сделать так, чтобы при добавления сигнала из Objects ему автоматом в Wave присваивалось имя = его имени в модуле, а не имя = модуль1\модуль2\модуль3\...модуль10\имя в модуле ? :)

 

Оно?

WaveSignalNameWidth

This variable controls the number of visible hierarchical regions of a signal name shown in the Wave Window.

  • Value Range: 0 (display full name), positive integer (display corresponding level of hierarchy)
  • Default: 0
Слева внизу есть кнопочка "Toggle short names <-> full names".

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


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

Modelsim SE 10.2c

Кому-нибудь удалось заставить корректно работать WaveRestoreZoom? Что бы не повторяться, вот суть проблемы.

 

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


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

Modelsim SE 10.2c

Кому-нибудь удалось заставить корректно работать WaveRestoreZoom? Что бы не повторяться, вот суть проблемы.

Автопромотка отключается в tools -> edit preferences -> by name -> wave -> ScrollOnRunComplete=0

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


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

Автопромотка отключается в tools -> edit preferences -> by name -> wave -> ScrollOnRunComplete=0

Помогло. Спасибо.

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


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

Тоже созрел вопрос по Questa/Model Sim.

При запуске симуляции в начало окна Wave всегда добавляются входные-выходные порты которые присутствуют на схеме (правда в данном случае шина test(7:0) почему то не добавляется, тоже вопрос). При сохранении в .do всегда приходится эти сигналы удалять. В этом примере то не критично, но в больших проектах этих сигналов десятки и сильно напрягает их выделять и удалять при каждом запуске. Можно ли сделать что бы в Wave сигналы добавлялись только из .do файла?

И за одно еще вопрос, можно ли сделать что бы окно Wave запускалось на весь экран, а то при каждом запуске оно открывается в рандомном размере и расположении :)

 

post-74831-1392773473_thumb.png

 

post-74831-1392773486_thumb.png

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


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

При запуске симуляции в начало окна Wave всегда добавляются входные-выходные порты ... При сохранении в .do всегда приходится эти сигналы удалять.... Можно ли сделать что бы в Wave сигналы добавлялись только из .do файла?

Так а что мешает в самом файле *.do прописать

add wave нужный порт 1
add wave нужный порт 2
...
add wave нужный порт N

?

Насколько понимаю, в этом нет никакой крамолы

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


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

В содержании do файла даже как то и не разбирался, все на кнопочном уровне :)

В общем так, запустил симуляцию, накидал сигналов каких надо, настроил их и сохранил в "wave.do" файл, в файле "*.udo" прописал

do wave.do
run -all

что бы при следующих запусках симуляции сигналы прогружались из do файла и стартовал просчет, но проблема в том что помимо моих сохраненных сигналов в начало всегда добавляются порты и при каждом сохранении они накапливаются если их не удалять, соответственно если в схеме портов под 100 при пяти сохранениях их там уже 500, а каждый раз удалять эти сигналы напряжно...

Смотрите внимательно скрин, в этом примере просто запустил 3 раза симуляцию и соответственно первые 2 раза просто сохранил ничего не меняя. Сигналы выделенные красным ниже повторяются.

Даже если не использовать do файл, то при запуске в wave автоматически добавляются все порты, вот я и спрашивал как и где это можно отключить.

 

п.с. Еще нашел вот такую настройку, которая казалось бы и отвечает за "Автоматическое добавление сигналов в окно wave", но нет, никакого ее влияния я не заметил :)

post-74831-1392952367_thumb.png

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

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


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

У меня тоже вопрос по прорисовке Wave.

 

Есть тестбенч для PCI шины (Altera), в котором циклически опрашиваются регистры памяти внутри ПЛИС.

Сначала сконфигурировали PCI шины, а потом читаем и пишем.

 

Я добавил строку которая проверяет текущее время симуляции и если не превышен интервал симуляции запускать новый цикл.

if ($time > 2250000)          $stop;

Внутри тестбенча можно проверить значение переменных и по ним запускать разное количество циклов чтения памяти. Поэтому мне нужно, чтобы цикл закончился полностью, а не отключился где-либо в середине.

Но есть одно неудобство, нужно долго ждать пока просчитаются все 2М+ отсчетов или ""играть" прокруткой масштабированием, чтобы обновлялся экран.

 

Вопрос: как в verilog тестбенч добавить команду после каждого цикла опроса прорисовать дальше сигналы?

Команду $update Modelsim не понимает.

if ($time > 2250000)
         $stop;
    else
        $update;

 

Написать всё сразу и в конце проверить моделированием у меня не получается, приходится "наращивать" и переделывать простой автомат работы с устройством по чуть-чуть.

И каждый раз моделировать не сломал ли чего лишнего. Работающий аналог $update внутри verilog файла мне бы здорово помог.

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


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

Внутри тестбенча можно проверить значение переменных и по ним запускать разное количество циклов чтения памяти. Поэтому мне нужно, чтобы цикл закончился полностью, а не отключился где-либо в середине.

На самом деле у Вас не совсем правильный подход...

Есть "таски". Напишите обмен по шине в виде "тасков". И тогда гарантированно тестбенч не закончится "посередине"...

И далее. Для чего Вам нужен тестбенч?

Если для проверки приема-передачи данных, то данные читайте из файла и записывайте в файл. Или выводите хотя бы в монитор. Тогда смотреть "зубчики" на диаграмме будет не нужно... Примеры есть у меня в "Кратком Курсе"...

Причем в файле паттерна можно указывать и сколько надо делать циклов и какие данные передавать. А самое интересное, что при изменении этих данных не надо производить компиляцию. А только Сборс-Пуск и все...

 

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


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

в этом примере просто запустил 3 раза симуляцию и соответственно первые 2 раза просто сохранил ничего не меняя. Сигналы выделенные красным ниже повторяются.

Даже если не использовать do файл, то при запуске в wave автоматически добавляются все порты, вот я и спрашивал как и где это можно отключить.

Перед запуском очередной симуляции Вам надо завершать текущую.

В своих do файлах я это делаю так:

quit -sim
vlog -incr -reportprogress 300 -work work_lib work_lib/file.v
vsim -voptargs=+acc work_lib.test_main -wlfdeleteonquit
add wave -divider "test_main"
add wave sim:/test_main/*
add wave -divider "main_inst"
add wave sim:/test_main/main_inst/*
run 1us 
view wave -title "monitor" -undock -x 1920 -y 0 -width 1280 -height 900
wave zoom full
#wave zoom range 54.68ns 54.695ns

где

quit -sim ----------- завершение предыдущего моделирования и закрытие wave - окна

vlog -incr -reportprogress 300 -work work_lib work_lib/file.v ----------- инкрементальная компиляция файла file.v в подкаталоге (относительно расположения do - файла) work_lib в библиотеку work_lib

vsim -voptargs=+acc work_lib.test_main -wlfdeleteonquit ----------- запуск моделирования модуля верхнего уровня test_main из библиотеки work_lib

дальше, вроде, понятно,

 

И за одно еще вопрос, можно ли сделать что бы окно Wave запускалось на весь экран, а то при каждом запуске оно открывается в рандомном размере и расположении sm.gif

view wave -title "monitor" -undock -x 1920 -y 0 -width 1280 -height 900 - а это, как раз, то, что вы спрашивали про размер и расположение окна. B)

 

 

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


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

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

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

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

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

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

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

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

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

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