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

 
 
> Не работает отлаженный код, При малейшем изменении проекта
TABKP
сообщение May 19 2011, 13:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 19-05-11
Пользователь №: 65 130



Исходные данные:
- ПЛИС Xilinx Virtex4, среда ISE 12.2
- мини проект состоит из 8-ми больших FIR - фильтров и небольшой программы на vhdl по обработке выходных данных фильтров. Фильтры занимают процентов так 70 ресурсов ПЛИС.
- работоспособность этого мини проекта полностью проверена в моделсиме
- непосредственно при загрузке в ПЛИС этот проект не заработал. При помощи логического анализатора и многократного переписывания кода (код изначально без ошибок - просто разными способами одно и тоже делается) удалось добиться стабильной правильной работы мини проекта.

Суть проблемы:
- при установке моего проекта в более крупный проект - он опять перестает работать
- более того - часть сигналов выведены на контрольные контакты платы и при удалении любого из этих сигналов из проекта с последующей перекомпиляцией - проект снова перестает работать.
- при отладке есть ощущение что ходишь по кругу - исправишь что-то в одном куске коде, перестает правильно работать другой кусок - и так до бесконечности

Подозреваю что все это результат неких "гонок" сигналов, каких-то проблем синхронизации и пр. в результате значительного заполнения ресурсов ПЛИС. Код полностью работоспособен, ибо при уменьшении количества фильтров проект начинает стабильно работать.

Вопросы к форумчанам:
1. Из-за чего возможно такое поведение проекта
2. Возможно ли победить данную проблему путем настроек компилятора
3. Возможно ли сохранить конфигурацию аппаратных средств ПЛИС после единственной работоспособной компиляции проекта и вставить ее уже в более крупный проект.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TABKP
сообщение May 25 2011, 16:12
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 19-05-11
Пользователь №: 65 130



Благодарю и прошу прощения за задержку с ответом.
Свой мини проект я победил. Достаточно было убрать ibuf с одной из цепей и все заработало стабильно.
Временных ошибок не было - это проверил в первую очередь.
Клоков в проекте действительно несколько, но весь проект синхронный. В UCF файле на каждую клоковую цепь стояла запись вида NET xxx PERIOD=19.56ns HIGH 50%. Обычно этого хватало. А здесь видимо сказывалось соотношение фаз клоков.

Крупный проект с моим куском тоже работает, но правда на 20-30 раз включения питания работает не стабильно. В самом проекте разных клоков еще больше и влияние рассогласования их фаз сильнее. Поэтому сижу читаю мануал Xilinx Timing
Constraints User Guide. Надо хорошенько разобраться.
Go to the top of the page
 
+Quote Post
Джеймс
сообщение May 26 2011, 22:01
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399



Цитата(TABKP @ May 25 2011, 20:12) *
В самом проекте разных клоков еще больше и влияние рассогласования их фаз сильнее. Поэтому сижу читаю мануал Xilinx Timing Constraints User Guide. Надо хорошенько разобраться.

Раз так много клоков, значит наверное есть и переходы между "доменами". Предпринимаются ли специальные меры для перехода из домена в домен?
Например - везде связь идет через FIFO, и флаги empty/full дополнительно тактируются в соответствующем домене.
Go to the top of the page
 
+Quote Post



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

 


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


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