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

Доброго времени суток.

Помогите разобраться. В Quartus II v 13.1 написан простой VHDL модуль, который принимает 4 бита на вход, а на выходе выдает количество единиц во входных данных.

Симуляцию я выполняю по методу описанному тут ftp://ftp.altera.com/up/pub/Altera_Materi...ng_ModelSim.pdf (раздел 5. Timing Simulation with ModelSim).

ModelSim показывает, что задержка выходных данных составляет 8 нс. По-моему такая большая задержка обусловлена тем, что симулятор считает задержку между пинами FPGA (в проекте используется Cyclone IV GX).

Как мне посмотреть тайминги внутри кристалла, чтобы оценить задержку моей логики?

Надеюсь понятно объяснил.

post-55441-1396581972_thumb.jpg

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


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

Если хотите смотреть тайминги внутри кристалла, то там и смотрите - раскрываете нужный вам уровень иерархии, находите выход требуемого элемента и смотрите.

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


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

Если хотите смотреть тайминги внутри кристалла, то там и смотрите - раскрываете нужный вам уровень иерархии, находите выход требуемого элемента и смотрите.

+1

Т.е. по крайней мере добавьте интересующие Вас внутренние сигналы в окно временной диаграммы :)

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


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

ModelSim показывает, что задержка выходных данных составляет 8 нс.

Как мне посмотреть тайминги внутри кристалла, чтобы оценить задержку моей логики?

Задержку обычно смотрят в timing report-е, она там циферками написана для всех этапов прохождения сигнала. А Моделсим обычно используют для проверки правильности функционирования логики, т.е. симуляции. :)

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


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

Задержку обычно смотрят в timing report-е, она там циферками написана для всех этапов прохождения сигнала. А Моделсим обычно используют для проверки правильности функционирования логики, т.е. симуляции. :)

 

Оно, конечно, да, но в симуляторе бывает нагляднее - поторкал мышкой, поставил курсоры, все увидел.

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


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

Оно, конечно, да, но в симуляторе бывает нагляднее - поторкал мышкой, поставил курсоры, все увидел.

Это при условии, когда знаешь _куда_ ставить курсоры. А чтобы это знать нужно как минимум понимать, как происходит отображение задержек элементов и проводов в сгенерированную софтом модель. Как видно, у ТС-а таких знаний недостаточно.

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


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

Это при условии, когда знаешь _куда_ ставить курсоры. А чтобы это знать нужно как минимум понимать, как происходит отображение задержек элементов и проводов в сгенерированную софтом модель. Как видно, у ТС-а таких знаний недостаточно.

 

Ну если уж этого не знаешь, то в репорт тайминг аналайзера и вовсе соваться бесполезно ;)

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


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

Частично разобрался. Сначала открываю откомпиленный в Quartus проект в Technology Map Viewer. Там уточняю нужные входы/выходы элементов и уже их смотрю в ModelSim.

Возникло еще несколько вопросов:

1. После изменения внутренней структуры и перекомпилирования проекта в Quartus, мне приходится постоянно повторять следующую процедуру:

Открыл ModelSim->Откомпилил .vho->Start Simulation->добавил .sdo->Указал библиотеку Cyclone IV->Добавил нужные сигналы в окно Wave->Кнопкой Force задаю входные значения и симулирую инкрементно.

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

2. Иногда во время симуляции состояние некоторых сигналов принимает значение 'X' (неизвестное?). Есть ли способ указать симулятору, что такие значения он должен интерпретировать как логический ноль или единицу?

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

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


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

Частично разобрался. Сначала открываю откомпиленный в Quartus проект в Technology Map Viewer. Там уточняю нужные входы/выходы элементов и уже их смотрю в ModelSim.

Возникло еще несколько вопросов:

1. После изменения внутренней структуры и перекомпилирования проекта в Quartus, мне приходится постоянно повторять следующую процедуру:

Открыл ModelSim->Откомпилил .vho->Start Simulation->добавил .sdo->Указал библиотеку Cyclone IV->Добавил нужные сигналы в окно Wave->Кнопкой Force задаю входные значения и симулирую инкрементно.

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

 

Можно и нужно записать скрипт (это там, где "File"), который и будет выполнять в Моделсиме все действия автоматически...

Входные воздействия делаются в файле тестбенча. Про Тестбенч можно найти кучу файлов и учебников...

 

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


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

Простите, если вопрос не в тему, но вот в GTKView есть возможность экспортировать Wave в картинку формата PNG.

Не могу найти как экспортировать Wave в картинку. Кстати, а как правильно по-русски назвать Wave? Диаграмма сигналов?

 

К сожалению я не нашёл как экспортировать картинку с сигналами в ModelSim Starter Edition. Вызвано ли это ограничениями весрии Starter Edition, или плоохо искал, или такой возможности нет? Если такая возможность есть, то каковы ограничения на ширину картинки?

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


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

К сожалению я не нашёл как экспортировать картинку с сигналами в ModelSim Starter Edition. Вызвано ли это ограничениями весрии Starter Edition, или плоохо искал, или такой возможности нет? Если такая возможность есть, то каковы ограничения на ширину картинки?

 

При открытом оке Wave идете в File => Export => Image.

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


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

При открытом оке Wave идете в File => Export => Image.

 

Попробовал. Оказывается есть некоторые тонкости - окно Wave должно быть активным и встроенным в главное окно ModelSim.

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

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

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


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

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

 

Картинка шириной сто миллионов пикселей? А в чем вы ее просматривать будете?

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


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

Картинка шириной сто миллионов пикселей?

 

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

 

А в чем вы ее просматривать будете?

 

Веб браузером.

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

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


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

Можно и нужно записать скрипт (это там, где "File"), который и будет выполнять в Моделсиме все действия автоматически...

 

Можно здесь немного подробнее? Если я правильно понял, записать скрипт - это включить запись скрипта => проделать некоторые действия => выключить запись скрипта => сохранить скрипт для последующего запуска (что-то подобноe записи макросов в MS Excel). Такого в меню Моделсима я не нашел.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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