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

 
 
> Непредсказуемые результаты синтеза?, Проект перестает работать
Cont
сообщение Jul 7 2010, 17:08
Сообщение #1


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

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



Имеется проект для ПЛИС Virtex4 на базе встроенного процессора PowerPC.
По мере роста проекта и обвешивания процессора различной периферией
результаты синтеза(по-моему предположению) стали непредсказуемыми.

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

Констрейнты указаны на тактовый сигнал, на шины памяти, результаты синтеза удовлетворительные.
Процессорная система является подмодулем в ISE.
Еще возникает вопрос, нужно ли указывать констрейнты в самом EDK?

Как можно найти причину и решить эту проблему?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 22)
Дмитрий Мазунин
сообщение Jul 8 2010, 07:13
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 259
Регистрация: 19-09-05
Из: Екатеринбург
Пользователь №: 8 715



Какой версии у Вас ISE ?
Почему не собираете прямо в EDK ?
Go to the top of the page
 
+Quote Post
Cont
сообщение Jul 8 2010, 12:02
Сообщение #3


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

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



ISE 11.5
Когда pcore разрастается до больших размеров, включает в себя много файлов и корок из coregen, работать в EDK становится очень сложно
Go to the top of the page
 
+Quote Post
Mad_max
сообщение Jul 8 2010, 12:18
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 377
Регистрация: 23-12-06
Из: Зеленоград
Пользователь №: 23 811



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

Go to the top of the page
 
+Quote Post
Дмитрий Мазунин
сообщение Jul 8 2010, 12:26
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 259
Регистрация: 19-09-05
Из: Екатеринбург
Пользователь №: 8 715



Если XMD не цепляется, БРАМ не при чем.
Бывало такое, основная причина - не стартуют DCM. Проверьте чипскопом LOCKи DCM, на них завязан ресет проца. Проверьте конфиграцию и режимы работы DCM.
Попробуйте по-другому построить блок формирования сетки частот.

100% рецепта нет, но мы выходили из ситуации таким образом.

PS кореген не рекомендую использовать, очень избыточно и непонятно что внутри. Неудобно в EDK.
Go to the top of the page
 
+Quote Post
Cont
сообщение Jul 8 2010, 16:49
Сообщение #6


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

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



Спасибо за советы!
1) С блочной памятью все в порядке
2) DCM обязательно проверю завтра на роботе.
Под сеткой частот Вы понимаете частоты, заводимые на PLB/CPU?
Если действительно дело в DCM то какие могут быть альтернативные варианты настройки DCM и по какой причине, настройки предлагаемые по-умолчанию в EDK не работают?
Go to the top of the page
 
+Quote Post
disel
сообщение Jul 8 2010, 20:07
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Цитата(Cont @ Jul 8 2010, 20:49) *
Если действительно дело в DCM то какие могут быть альтернативные варианты настройки DCM и по какой причине, настройки предлагаемые по-умолчанию в EDK не работают?


По причине того, что частоты (входные, выходные) находятся на границе допустимого диапазона или за его пределами. EDK такое допускает ( по крайней мере 10,3). У V4 все достаточно грустно с DCM, пределы частотных диапазонов его работы очень маленькие. Также если частота на входе DCM отсутствует при включении питания, то он может не лочиться, или же лочиться на произвольной частоте. Для корректной работы в этом случае нужен ресет.
Go to the top of the page
 
+Quote Post
Дмитрий Мазунин
сообщение Jul 9 2010, 06:51
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 259
Регистрация: 19-09-05
Из: Екатеринбург
Пользователь №: 8 715



Да, согласен с предыдущим постом.
Автор темы, пожалуйста, отпишитесь - как решилась Ваша проблема.
Go to the top of the page
 
+Quote Post
Cont
сообщение Jul 28 2010, 09:55
Сообщение #9


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

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



Извиняюсь за задержку. Проблему решить не удалось. DCM лочиться и частота на его выходе правильная. В чем же причина?
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jul 29 2010, 06:16
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



По симптомам я бы предположил 50% вероятности проблем с матчастью.
Если проект не перекомпилировать, а одной и той же прошивкой ("рабочей") прошить несколько раз - запускаться будет стабильно?
Go to the top of the page
 
+Quote Post
SFx
сообщение Jul 29 2010, 06:29
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



А попробуйте загрузить старую прошивку, может проблема в железе ?
Go to the top of the page
 
+Quote Post
Cont
сообщение Jul 30 2010, 04:42
Сообщение #12


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

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



Цитата
Если проект не перекомпилировать, а одной и той же прошивкой ("рабочей") прошить несколько раз - запускаться будет стабильно?

Да, запускается стабильно.
Go to the top of the page
 
+Quote Post
Дмитрий Мазунин
сообщение Jul 30 2010, 06:22
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 259
Регистрация: 19-09-05
Из: Екатеринбург
Пользователь №: 8 715



Вы проверили - ВСЕ DCM, задействованные в проекте, лочатся ?
Нет ли предупреждений по частотам DCM при сборке проекта ?
Go to the top of the page
 
+Quote Post
SFx
сообщение Jul 30 2010, 07:34
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



неплохо бы Timing Error глянуть wink.gif
Go to the top of the page
 
+Quote Post
Cont
сообщение Jul 30 2010, 07:37
Сообщение #15


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

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



DCM лочаться.
Единственное, я не написал раньше(а надо было бы), что у меня тактовый сигнал заходит не на global clock input, а на user pin. Возможно из-за этого.

DCM_AUTOCALIBRATION_CPU/clock_generator_0/clock_generator_0/DCM0_INST/Using_D
CM_ADV.DCM_ADV_INST/CPU/clock_generator_0/clock_generator_0/DCM0_INST/Using_D
CM_ADV.DCM_ADV_INST/cd/CLK<6> is sourced by a combinatorial pin. This is not
good design practice. Use the CE pin to control the loading of data into the
flip-flop.

Ошибка уже не поправимая, но с ней как-то нужно бороться.

Сообщение отредактировал Cont - Jul 30 2010, 07:48
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Aug 2 2010, 06:58
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Доводилось работать с платой, где тактовые приходили куда попало.
Ничего, работало вроде...

На мой взгляд, гораздо критичнее, чтобы все выходные сигналы DCM (с которых собственно работает схема) были подключены через BUFG.
Если так не сделать, то глюки возможны, даже если конкретный тактовый "питает" относительно немного логики.
И констрейны здесь не очень помогают (по крайней мере, констрейны на период клока).
Go to the top of the page
 
+Quote Post
Cont
сообщение Sep 20 2010, 08:50
Сообщение #17


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

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



Проблема из той же оперы:
не работает конечный автомат.
Начинаю искать причину: подключаю
к выходам автомата schipscope.
Автомат начинает работать!
Удаляю из проекта schipscope -
автомат не работает!
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 20 2010, 12:07
Сообщение #18


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Cont @ Sep 20 2010, 03:50) *
Начинаю искать причину: подключаю
к выходам автомата schipscope.
Автомат начинает работать!
Удаляю из проекта schipscope -
автомат не работает!

асинхра на входах управления?


--------------------
Go to the top of the page
 
+Quote Post
Cont
сообщение Sep 20 2010, 18:29
Сообщение #19


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

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



Асинхра есть, но ее я протактировал через триггер.
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 21 2010, 02:27
Сообщение #20


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Cont @ Sep 20 2010, 12:29) *
Асинхра есть, но ее я протактировал через триггер.

а надо было через два минимум


--------------------
Go to the top of the page
 
+Quote Post
YVA
сообщение Sep 21 2010, 03:58
Сообщение #21





Группа: Новичок
Сообщений: 9
Регистрация: 22-04-09
Пользователь №: 48 071



Цитата(Cont @ Jul 8 2010, 01:08) *
Имеется проект для ПЛИС Virtex4 на базе встроенного процессора PowerPC.
По мере роста проекта и обвешивания процессора различной периферией
результаты синтеза(по-моему предположению) стали непредсказуемыми.

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

Констрейнты указаны на тактовый сигнал, на шины памяти, результаты синтеза удовлетворительные.
Процессорная система является подмодулем в ISE.
Еще возникает вопрос, нужно ли указывать констрейнты в самом EDK?

Как можно найти причину и решить эту проблему?

Это не простая задача, к томуже мало информации:
какая частота на входе?
сколько частот используется для синхронизации проекта и их значения?
сколько DСM и синхронизируется ли их запуск?
сколько модулей на шине и сколько из них с своим интерфейсом?
сколько модулей с возможностью их чтения и не используются ли при этом BUFT?
есть ли модули с выработкой сигналов прерывания и сколько?
используется ли DMA?
память внешняя или BRAM, если внешняя какого типа?
используется ли FPU и CACHE?
есть ли констрейнты на все тактовые сигналы или только на один и при этом на входной?

В зависимости от ответов потребуется дальнейшая конкретизация.
Как получилось что системный клок не глобальный и нельзя использовать отладчик?
Такой проект как мне кажется лучше похоронить иначе или рак мозга будет или станеш
супер специалистом.
В любом случае если нет возможности залезть внутрь, необходимо тщательно и по возможности
полно задать ограничения на все критичные элементы проекта с учётом приоритетов (имеются в виду приоритеты
выполнения операторов в .ucf).
Тогда вы получите максимум информции в Timing Constraints и хотя бы так сможете оценить
критичные задержки и найти решение. Т.к. исходя из "По мере роста проекта и обвешивания процессора различной периферией результаты синтеза(по-моему предположению) стали непредсказуемыми." это
оновная причина.
Хотя как мне кажется ещё могут быть версии.
Люди подскажут.

По поводу констрейнов в EDK:
Если проект ISE, в версиях до 9-ой было без разницы использовался только ISE-овый .ucf
с 9-ой я не работал, а вот начиная с 10 - ой ISE стал цеплять EDK-й .ucf и информацию прописанную
в нём переносить в ISE в файл <имя файла>.ncf и использовать в проекте.
Но как мне показалось исходя из Timing Constraints приоритет остаётся за ISE .ucf.
Возможно кто-то подробнее сможет осветить данный вопрос.





Go to the top of the page
 
+Quote Post
YVA
сообщение Sep 21 2010, 05:54
Сообщение #22





Группа: Новичок
Сообщений: 9
Регистрация: 22-04-09
Пользователь №: 48 071



Цитата(YVA @ Sep 21 2010, 11:58) *
Это не простая задача, к томуже мало информации:
какая частота на входе?
сколько частот используется для синхронизации проекта и их значения?
сколько DСM и синхронизируется ли их запуск?
сколько модулей на шине и сколько из них с своим интерфейсом?
сколько модулей с возможностью их чтения и не используются ли при этом BUFT?
есть ли модули с выработкой сигналов прерывания и сколько?
используется ли DMA?
память внешняя или BRAM, если внешняя какого типа?
используется ли FPU и CACHE?
есть ли констрейнты на все тактовые сигналы или только на один и при этом на входной?

В зависимости от ответов потребуется дальнейшая конкретизация.
Как получилось что системный клок не глобальный и нельзя использовать отладчик?
Такой проект как мне кажется лучше похоронить иначе или рак мозга будет или станеш
супер специалистом.
В любом случае если нет возможности залезть внутрь, необходимо тщательно и по возможности
полно задать ограничения на все критичные элементы проекта с учётом приоритетов (имеются в виду приоритеты
выполнения операторов в .ucf).
Тогда вы получите максимум информции в Timing Constraints и хотя бы так сможете оценить
критичные задержки и найти решение. Т.к. исходя из "По мере роста проекта и обвешивания процессора различной периферией результаты синтеза(по-моему предположению) стали непредсказуемыми." это
оновная причина.
Хотя как мне кажется ещё могут быть версии.
Люди подскажут.

По поводу констрейнов в EDK:
Если проект ISE, в версиях до 9-ой было без разницы использовался только ISE-овый .ucf
с 9-ой я не работал, а вот начиная с 10 - ой ISE стал цеплять EDK-й .ucf и информацию прописанную
в нём переносить в ISE в файл <имя файла>.ncf и использовать в проекте.
Но как мне показалось исходя из Timing Constraints приоритет остаётся за ISE .ucf.
Возможно кто-то подробнее сможет осветить данный вопрос.

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

Go to the top of the page
 
+Quote Post
Cont
сообщение Sep 21 2010, 11:31
Сообщение #23


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

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



1)сколько частот используется для синхронизации проекта и их значения?
Два тактовых сигнала заходят в ПЛИС: 50Mhz и 65Mhz.
50 идет на вход EDK-ой системы, где данный сигнал с помощью DCM(который мне вставил сам визард) умножается на 2 и на 4. (100 Mhz на шину PLB, а 200 на CPU). 65Mhz используется в модуле(там задействован еще один DCM), который вне EDK. Но эта же частота является входом в модуль на шине PLB. На этой частоте принимаются данные. С PLB синхронизация выполнена с помощью FIFO.

2)сколько DСM и синхронизируется ли их запуск?
И того - DCM в EDK и еще один вне EDK. Запуск никак не синхронизируется.

3) сколько модулей на шине и сколько из них с своим интерфейсом?
на шине 11 модулей. из них 3 - custom.

4) сколько модулей с возможностью их чтения и не используются ли при этом BUFT?
все с возможностью чтения. BUFT в моих модулях нет, а вот в Xilinx-их скорее всего есть.

5) есть ли модули с выработкой сигналов прерывания и сколько?
есть. не думаю, что проблема в этом. проблемы с зависаниями по причине прерываний я успешно не решил,
( до CPU то ведь при этом можно достучаться с отладчиком)

6) используется ли DMA?
нет

7) память внешняя или BRAM, если внешняя какого типа?
Внешняя DDR 256Mbit, и внутренняя BRAM 64k

8)используется ли FPU и CACHE?
Используются

9)есть ли констрейнты на все тактовые сигналы или только на один и при этом на входной?
только на входной. Наверное, вот здесь нужно что-то доработать.

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

Такой проект как мне кажется лучше похоронить иначе или рак мозга будет или станеш
супер специалистом.

Похоронить никак нельзя, остается только последний вариант! :-)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:35
Рейтинг@Mail.ru


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