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

 
 
> Проблемы с симулятором в Quartus
novartis
сообщение Aug 24 2010, 01:46
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Доброе утро всем, вот возникла следующая проблема.
Работаю над проектом в Quartus 9.1 Service Pack 2 на VHDL.
Проект вспомогательный, для симуляции и отладки в квартусовском симуляторе основного проекта.
На какой-то стадии проект компилится и удачно симулируется в соответствии с заложенной логикой работы.
В проект постоянно что то добавляю, новые куски программы, оптимизирую
(как могу, с языком VHDL знаком меньше года). Иногда после изменений проект перестает симулироваться.
Компилируется нормально, а в симуляторе выходные сигналы нули.
В этой ситуации экспериментально установил помогает следующее:
если в выходные сигналы добавить какой-либо один сигнал
qwerty : out std_logic_vector (31 downto 0), то в симуляторе все замечательно.
Если продолжать менять что то в программе, то симуляция опять может сломаться.
Тогда мне помагает удаление этого сигнала qwerty.
В последний раз добавление сигнала qwerty шириной 32 бит мне не много.
Я его последовательно увеличивал (с шагом в 50).
Симуляция прошла успешно после того как сигнал qwerty стал шириной 158 бит.
Сам этот сигнал ну никуда не идет, ничто ему не присваивается.
Что это может быть? баг, глюк, или мой косяк в программе?
Буду благодарен за ответы.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Shtirlits
сообщение Aug 24 2010, 05:38
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Ну, всегда можно сменить симулятор, а иногда можно разобраться в чем дело.
Разбираться удобнее на мой взгляд, когда есть простая, наглядная демонстрация.
В идеале это два файла в 10 строк с отличием в одной букве, один нормальный, воторой глючный.
Мне нравится получать такие файлы по методу юных любителей природы "оторвали мушке лапку - жужжит мушка".
И так пока не останется минимум. Тогда и тут вам быстрее подскажут и в support не стыдно заслать.
Go to the top of the page
 
+Quote Post
S_Hawk
сообщение Aug 24 2010, 16:22
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 3-06-08
Пользователь №: 38 035



я в подобных непонятных ситуациях удаляю каталоги db и incremental_db, после чего перекомпилирую проект.
если глюк повторяется, то ищу его причину. Других танцев с бубнами не пробовал... smile.gif
Go to the top of the page
 
+Quote Post
novartis
сообщение Aug 24 2010, 16:54
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Пробовал собирать проект с нуля, и на другой машине. Глюки не исчезли.

Сообщение отредактировал novartis - Aug 24 2010, 17:02
Go to the top of the page
 
+Quote Post
novartis
сообщение Aug 24 2010, 16:54
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Мои подозрения заключаются в строчках вида:
process (freq)
begin
if (rising_edge(freq)) then
if (flag='1') then
w(128 downto 0) <= q(128 downto 0);
else
w(128 downto 0) <= r(128 downto 0);
end if;
end process;

т.е. по идеи такие конструкции лучше выносить за пределы процесса, но логика в проекте сложная, пытаюсь ее упростить, а симулятор либо глючит (присваивает сигналу w совсем не то, что мне надо), либо вообще в сигнале w нули получаются на выходе.

P.S.: Когда писал код случайно нажимал табуляцию и пробел, поэтому сырое сообщение отправилось несколько раз.

Сообщение отредактировал novartis - Aug 24 2010, 16:59
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Aug 24 2010, 18:35
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Я не понял, какие конструкции лучше выносить за пределы процесса?
Я правильно понимаю, что тактовый сигнал "freq" дрыгается, а векторы q и r к моменту фронта в нужных битах определны?
Go to the top of the page
 
+Quote Post
DW0
сообщение Aug 24 2010, 20:19
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 9-08-10
Из: Украина
Пользователь №: 58 828



1. не хватает одного end if;

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

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

 


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


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