реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> симулятор в quartus2, как вывести сигнал
shf_05
сообщение Feb 19 2010, 11:10
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



есть некоторая схема, перенесенная из MAX2.
мне необходимо посимулировать ее работу на epm240, проект компилируется.
я создал vwf файл, подал на входы необходимые сигналы.
вижу, что происходит на портах output, а вот поглядеть результат на "промежуточных" шинах не знаю как.
вывести с этих шин сигнал через output порт не получается- все ножки ПЛИС заняты и fitter не дает поставить еще один порт на 16бит.
пробовал с virtual pin, но пока не разобрался.

подскажите как поглядеть на сигналы в симуляторе (simulation waveform), у которых нет выхода(входа).
Go to the top of the page
 
+Quote Post
sazh
сообщение Feb 19 2010, 16:22
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(shf_05 @ Feb 19 2010, 14:10) *
есть некоторая схема, перенесенная из MAX2.
мне необходимо посимулировать ее работу на epm240, проект компилируется.
я создал vwf файл, подал на входы необходимые сигналы.
вижу, что происходит на портах output, а вот поглядеть результат на "промежуточных" шинах не знаю как.
вывести с этих шин сигнал через output порт не получается- все ножки ПЛИС заняты и fitter не дает поставить еще один порт на 16бит.
пробовал с virtual pin, но пока не разобрался.

подскажите как поглядеть на сигналы в симуляторе (simulation waveform), у которых нет выхода(входа).

Регистры модно посмотреть в post-compilation (пониже портов втой же вкладке).
Go to the top of the page
 
+Quote Post
Intekus
сообщение Feb 19 2010, 18:23
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 4-03-08
Из: Москва
Пользователь №: 35 621



Ох навозился в своё время с этим... Перенимайте опыт smile.gif (пока не перешли на нормальные симуляторы)
Способ "в лоб" - найти нужный сигнал в отсинтезированном проекте и добавить в 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


--------------------
...а Сила, Брат - она - в несиловых решениях.
Go to the top of the page
 
+Quote Post
des333
сообщение Feb 19 2010, 21:18
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



http://quartushelp.altera.com/9.1/master.h...T.oss=synthesis


--------------------
Go to the top of the page
 
+Quote Post
Intekus
сообщение Feb 20 2010, 07:50
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 4-03-08
Из: Москва
Пользователь №: 35 621



Цитата(des333 @ Feb 20 2010, 00:18) *

Код
wire keep_wire /* synthesis keep */;

Пробовал, иногда (правда, ещё на Q 5 дело было) не срабатывало - поэтому и стал ставить регистр (в Q 5 - ещё и с хитростями, там noprune не было). Если в современных версиях это на 100% заработало - хорошо.


--------------------
...а Сила, Брат - она - в несиловых решениях.
Go to the top of the page
 
+Quote Post
shf_05
сообщение Feb 20 2010, 08:11
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



Цитата(Intekus @ Feb 19 2010, 23:23) *
Ох навозился в своё время с этим... Перенимайте опыт smile.gif (пока не перешли на нормальные симуляторы)

спасибо, в лоб как раз и не получилось,попробую.
какие есть нормальные симуляторы? (есть ли такие в qartus || web edition?)
Go to the top of the page
 
+Quote Post
Andron_
сообщение Feb 20 2010, 08:46
Сообщение #7


.NET developer
***

Группа: Свой
Сообщений: 218
Регистрация: 20-10-07
Из: Новосибирск
Пользователь №: 31 532



виртуальный пин...
цепляете его к нужному месту... правой кнопкой на нем... Эссайнмент эдитор... там свойство виртуал пин и значение On...
Go to the top of the page
 
+Quote Post
shf_05
сообщение Feb 20 2010, 08:53
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



Цитата(Andron_ @ Feb 20 2010, 13:46) *
виртуальный пин...
цепляете его к нужному месту... правой кнопкой на нем... Эссайнмент эдитор... там свойство виртуал пин и значение On...

так я и делал, пока фиттер не сказал, что мой проет использован по пинам на 120%.
Go to the top of the page
 
+Quote Post
des333
сообщение Feb 20 2010, 11:02
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



Цитата(Intekus @ Feb 20 2010, 10:50) *
Код
wire keep_wire /* synthesis keep */;

Пробовал, иногда (правда, ещё на Q 5 дело было) не срабатывало - поэтому и стал ставить регистр (в Q 5 - ещё и с хитростями, там noprune не было). Если в современных версиях это на 100% заработало - хорошо.


Пару раз пробовал - работало, но 100% гарантии не дам.  smile.gif


--------------------
Go to the top of the page
 
+Quote Post
Intekus
сообщение Feb 20 2010, 13:56
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 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; они снабжены библиотеками элементов соответствующих ПЛИС, несколько урезаны по возможностям, и, естественно, дешевле.


--------------------
...а Сила, Брат - она - в несиловых решениях.
Go to the top of the page
 
+Quote Post
Andron_
сообщение Feb 20 2010, 18:13
Сообщение #11


.NET developer
***

Группа: Свой
Сообщений: 218
Регистрация: 20-10-07
Из: Новосибирск
Пользователь №: 31 532



Цитата
так я и делал, пока фиттер не сказал, что мой проект использован по пинам на 120%.

он похоже не принял к сведению указание... бывает, квартусу плохеет и он не размещает виртуальные пины как виртуальные... попробуйте квартус перезапустить и заново назначить свойство... он в отчете компиляции показывает, сколько было использовано виртуальных пинов.
Go to the top of the page
 
+Quote Post
sazh
сообщение Feb 20 2010, 18:46
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(Andron_ @ Feb 20 2010, 21:13) *
он похоже не принял к сведению указание... бывает, квартусу плохеет и он не размещает виртуальные пины как виртуальные... попробуйте квартус перезапустить и заново назначить свойство... он в отчете компиляции показывает, сколько было использовано виртуальных пинов.


С таким же успехом при отладке проекта можно взять другое семейство под 1000 ног.
Но обычно промежуточных регистров вполне хватает для отладки.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 04:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01419 секунд с 7
ELECTRONIX ©2004-2016