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

 
 
 
Reply to this topicStart new topic
> Проблемы прошивки Xilinx
SpellDrive
сообщение Sep 2 2007, 15:39
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 2-07-07
Пользователь №: 28 829



Очень неприятная ситуация: HDL симулятор выдает адекватные задаче результаты, но постразводочная симуляция дает результат несколько иной (он же потом перебирается и в железо). Пробовал и на втором, и на третьем Спартанах. На что следует обратить внимание и в чем может заключаться ошибка??? Заранее спасибо.
Go to the top of the page
 
+Quote Post
BSV
сообщение Sep 2 2007, 16:54
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Если в проекте присутствует несколько тактовых частот, то особое внимание нужно обратить на переход сигналов из одного клокового домена в другой. Также нужно избегать подачи сигналов с логики на асинхронные управляющие входы триггеров (сброс, установка). Без проблемной части кода что-то более конкретно сложно посоветовать.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
man with no name
сообщение Sep 2 2007, 16:59
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 6-08-07
Из: Moscow
Пользователь №: 29 586



Один сотрудник долго возился с проектом с такими же симптомами. Выяснилось, что входные сигналы при симуляции он ставил относительно clock'ов (делал векторный файл, в котором входые воздействия ставил во фронты clk)
Go to the top of the page
 
+Quote Post
AJIEKCEu
сообщение Sep 3 2007, 06:08
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 314
Регистрация: 7-12-05
Пользователь №: 11 917



1. Посмотреть, что в описании VHDL везде стоит правильный список чувствительности.
2. А поподробнее место где поведенческое моделирование отличается от синтезированного? Может это фифо? По-моему, Xilinx не обещает моделирование с точностью до такта всяких коровых фифо.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Sep 3 2007, 07:18
Сообщение #5


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



На мой взгляд это дело обычное. Раз вы сделали Post-P&R симуляцию - так по ней и ищите. Трудно это, но результативно. Полезно бывает для этого пересинтезировать с сохранением иерархии, чтобы все сигналы исходные сохранились, а также при симуляции включать в лог все сигналы проекта. Мы обычно так делаем, моделируем до появления ошибки на выходе, а потом этот выход в Dataflow и анализировать.
Go to the top of the page
 
+Quote Post
denisys
сообщение Sep 3 2007, 13:10
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 21-11-05
Из: Минск
Пользователь №: 11 166



Если Post-P&R симуляция проводилась с учетом полученых при раскладке времянок, то стоит обратить внимание на следующее:
1. Правильно ли заданы ограничения для цепей;
2. Смог ли раскладчик выполнить заданные ограничения.
Go to the top of the page
 
+Quote Post
SpellDrive
сообщение Sep 5 2007, 18:27
Сообщение #7





Группа: Новичок
Сообщений: 9
Регистрация: 2-07-07
Пользователь №: 28 829



Спасибо за ответы, но пока дело с места не сдвинулось.
Опишу более подробно проект. Входной сигнал поступает на ФВЧ (получен в fdatool в Matlab), результат домножается на гармонику (переносится на промежуточную частоту), что в свою очередь фильтруется ФНЧ (опять же matlab'овском) с предварительной децимацией (в 8 раз).
То есть, fifo не используется, но clk'ов в проекте два - один на входе, другой в 8 раз прореженный на выходе.
Последовательное прохождение по коду показало, что расхождение начинается после ФНЧ.

Хотелось бы узнать и как исправить ошибки, и что их вызвало...проект по существу стоит на месте и жутко мучает совесть(
Go to the top of the page
 
+Quote Post
BSV
сообщение Sep 5 2007, 18:38
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Разъяснение дано, но понятнее от него не стало. Как часто говорится, телепаты в отпуске!!!
Если жалко (по каким-то причинам нельзя) привести проблемную часть кода хотя бы наваяйте что-то похожее.

Как вариант - если второй клок получен из первого делением на степень двойки (8), его можно вообще не использовать, а пользоваться сигналом разрешения триггеров и памяти, используя прежний клок. Сэкономите глобальный буфер, увидите что про все это скажет Timing Analyser (если явно не указана связь между клоками в ограничениях или в самом проекте, то переход между клоковыми доменами игнорируется при анализе). А Вы констрейны на проект вообще какие-нибудь кроме залочивания ног назначали?


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
SpellDrive
сообщение Sep 6 2007, 06:14
Сообщение #9





Группа: Новичок
Сообщений: 9
Регистрация: 2-07-07
Пользователь №: 28 829



Файлики выложить нисколько не жалко:


...в ucf'е только распиновка.
Прикрепленные файлы
Прикрепленный файл  f_new_fn4.v ( 123.45 килобайт ) Кол-во скачиваний: 74
Прикрепленный файл  f_new_fv4.v ( 34.71 килобайт ) Кол-во скачиваний: 107
Прикрепленный файл  main.v ( 3.63 килобайт ) Кол-во скачиваний: 86
Прикрепленный файл  main_test.v ( 1.65 килобайт ) Кол-во скачиваний: 36
 
Go to the top of the page
 
+Quote Post
BSV
сообщение Sep 6 2007, 12:13
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



К сожалению исходники на верилоге мне читать сложно, так как пишу в основном на VHDL.
Цитата(SpellDrive @ Sep 6 2007, 10:14) *
...в ucf'е только распиновка.

А вот это зря. При моделировании и в железе частота, которую посчитал ISE не превышается? Моделируете с задержками? Попробуйте помоделировать, не цепляя SDF. Если ошибка пропадет, то проблема в слишком высокой частоте.

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

Возможно (но маловероятно, хотя в моей практике такое было - код (не мой), который не понимал синтезатор, правда, был ужасно кривым), это ошибка синтезатора, встречались с таким, попробуйте помоделировать Post-Map модель. Если повторится история с Post-Route моделью, то попробуйте проанализировать что мог "не понять" синтезатор в той части, где возникает ошибка.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post

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

 


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


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