|
|
  |
симулятор в quartus2, как вывести сигнал |
|
|
|
Feb 19 2010, 18:23
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 4-03-08
Из: Москва
Пользователь №: 35 621

|
Ох навозился в своё время с этим... Перенимайте опыт  (пока не перешли на нормальные симуляторы) Способ "в лоб" - найти нужный сигнал в отсинтезированном проекте и добавить в waveforms. Искать либо просто по иерархии (точно не помню уже - где-то там есть раскрывающееся дерево) , либо через RTL Viewer / TechMap Viewer. Начиная с какой-то свежей версии они поддержвали добавление в waveforms по контекстному меню и даже просто drag-n-drop в окно. Теперь, самое интересное: часто "результат на "промежуточных" шинах" просмотреть таким образом не удаётся, потому что они оказываются искажены / выброшены в ходе оптимизаций. В этом случае обычно использовался специальный модуль, состоящий из регистра параметризованной разрядности, со входами (тактовый и шина данных), без выхода, и записанным с директивой (* noprune *) (не выбрасывать при синтезе даже при нулевом fan-out); после чего в waveform цепляется содержимое этого регистра. - Да, значение при этом отстаёт на такт (либо на пол-такта, если работать по спаду)
- Да, это изменяет схему (может сбить времянку)
но, похоже, это единственный способ посмотреть промежуточные сигналы, обойдя оптимизации. Код //-?---- Модуль-щуп - просмотр значений сигналов без протяжки через иерархию - module d_watch7 #(parameter W = 0) (//Debug Watch for Quartus II 7.0 and later. //Наблюдение значения входа, задержанного на пол-такта. input [W-1:0] d, //Целевой информационный вход. input clk); (* noprune *) reg [W-1:0] r; always @(negedge clk) r <= d; endmodule
--------------------
...а Сила, Брат - она - в несиловых решениях.
|
|
|
|
|
Feb 20 2010, 07:50
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 4-03-08
Из: Москва
Пользователь №: 35 621

|
Цитата(des333 @ Feb 20 2010, 00:18)  Код wire keep_wire /* synthesis keep */; Пробовал, иногда (правда, ещё на Q 5 дело было) не срабатывало - поэтому и стал ставить регистр (в Q 5 - ещё и с хитростями, там noprune не было). Если в современных версиях это на 100% заработало - хорошо.
--------------------
...а Сила, Брат - она - в несиловых решениях.
|
|
|
|
|
Feb 20 2010, 13:56
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 4-03-08
Из: Москва
Пользователь №: 35 621

|
Цитата(shf_05 @ Feb 20 2010, 11:11)  какие есть нормальные симуляторы? (есть ли такие в qartus || web edition?) ModelSim - вероятно, самый массовый, но вполне подходящий даже для весьма больших и сложных проектов; сам использую сецйчас его. QuestaSim - более продвинутый, как и первый от Mentor Graphics. NCSim - симулятор от Cadence VCSim - от Synopsys Это продукты "большой тройки". А вообще смотрите Симуляторы (несмотря на название, там и про VHDL / SystemC). Кроме того, ModelSim поставляется в 2 урезанных и привязанных к вендору ПЛИС версиях - Altera Edition и Xilinx Edition; они снабжены библиотеками элементов соответствующих ПЛИС, несколько урезаны по возможностям, и, естественно, дешевле.
--------------------
...а Сила, Брат - она - в несиловых решениях.
|
|
|
|
|
Feb 20 2010, 18:13
|
.NET developer
  
Группа: Свой
Сообщений: 218
Регистрация: 20-10-07
Из: Новосибирск
Пользователь №: 31 532

|
Цитата так я и делал, пока фиттер не сказал, что мой проект использован по пинам на 120%. он похоже не принял к сведению указание... бывает, квартусу плохеет и он не размещает виртуальные пины как виртуальные... попробуйте квартус перезапустить и заново назначить свойство... он в отчете компиляции показывает, сколько было использовано виртуальных пинов.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|