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

 
 
 
Reply to this topicStart new topic
> Нестабильные результаты altera EP3C55F, Нестабильные результаты altera EP3C55F
FAE
сообщение Jun 25 2012, 10:41
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 27-04-05
Из: Spb, Russia
Пользователь №: 4 544



Коллеги, буду признателен, если подскажете как решить проблему:

получаю нестабильные результаты при имплементацмм дизайна в альтеровскую FPGA EP3C55F.
Т.е., например, имплементирую прошивку с подключенным сигналтапом, она работает отлично,
отключаю сигналтап, она перестает работать.
Или вношу изменения в обдин блок, а отрубается другой, не связанный с ним.

Работаю в 9м квартусе.
Дизайн написан на верилоге. Цепи сброса описаны как асинхронные (т.е. always @( posedge clk or posedge rst)
Максимальная частота - 125Мгц.
Имеются тактовые домены с более низкими частотами.

Возможно, кто-то из вас сталкивался с такой проблемой и знает, как это "лечится"?
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Jun 25 2012, 11:13
Сообщение #2


Лентяй
******

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



Цитата(FAE @ Jun 25 2012, 14:41) *
Возможно, кто-то из вас сталкивался с такой проблемой и знает, как это "лечится"?

Лечится изгнанием асинхронщины из проекта и грамотным CDC.
Используйте TimeQuest, он покажет, где у Вас узкие места.
Также, перед добавлением SignalTap'а, включите полный режим инкрементальной компиляции.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
FAE
сообщение Jun 25 2012, 11:51
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 27-04-05
Из: Spb, Russia
Пользователь №: 4 544



Цитата(Stewart Little @ Jun 25 2012, 15:13) *
Лечится изгнанием асинхронщины из проекта и грамотным CDC.
Используйте TimeQuest, он покажет, где у Вас узкие места.
Также, перед добавлением SignalTap'а, включите полный режим инкрементальной компиляции.


Спасибо.

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

Кстати, когда подключаю signaltap, результаты почему-то получаются лучше, чем без него. Для меня это странно.

Сообщение отредактировал FAE - Jun 25 2012, 11:53
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Jun 25 2012, 14:47
Сообщение #4


Лентяй
******

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



Цитата(FAE @ Jun 25 2012, 15:51) *
Режим инкрементальной компиляции у меня включен всегда.

Ох, терзают меня смутные сомнения, что Вы таки заблуждаетесь...

Цитата(FAE @ Jun 25 2012, 15:51) *
А насчет асинхронности можно уточнить: вы об асинхронном сбросе или о чем-то еще?
Может быть мне лучше использовать синхронный сброс?

Я и о том, и о другом. Как правило, асинхронный сброс используется только для организации глобального сброса всего проекта целиком. Использовать асинхронный сброс для формирования сигналов - моветон.
Ну и от прочих приемов, которые использовались на рассыпной логике, нужно отказываться.

Цитата(FAE @ Jun 25 2012, 15:51) *
Кстати, когда подключаю signaltap, результаты почему-то получаются лучше, чем без него. Для меня это странно.

Вот это говорит о том, что инкрементальная компиляция у Вас не используется. Иначе бы результат был всегда плохой, не зависимо от подключения SignalTap'а sm.gif


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
novartis
сообщение Jun 26 2012, 04:33
Сообщение #5


Местный
***

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



По поводу асинхронщины почитайте статью http://iosifk.narod.ru/hdl_coding/hdl_coding_12_kit_2_09.pdf, мне очень помогло, и вообще на сайте iosifk.narod.ru много чего интересного можно найти).
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jun 26 2012, 07:04
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(novartis @ Jun 26 2012, 08:33) *
...мне очень помогло, и вообще на сайте iosifk.narod.ru много чего интересного можно найти).

Спасибо!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
FAE
сообщение Jun 26 2012, 08:49
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 27-04-05
Из: Spb, Russia
Пользователь №: 4 544



Цитата(novartis @ Jun 26 2012, 08:33) *
По поводу асинхронщины почитайте статью http://iosifk.narod.ru/hdl_coding/hdl_coding_12_kit_2_09.pdf, мне очень помогло, и вообще на сайте iosifk.narod.ru много чего интересного можно найти).


Спасибо.
Сайт уважаемого Иосифа Григорьевича мне известен. Данную статью я читал. Кроме того, у него есть чудесный рассказ "Записки инженера" о об испытаниях Бурана. Читал и одновременно смеялся и плакал.

Спасибо за разъяснения.
План дальнейших действий:
1. Переписать сорцы под синхронный сброс
2. Проверить, включена ли инкрементальная компиляция. Если нет - включить
3. Написать корректный sdc файл и подключить таймквест.
4. Используя таймквест Убрать узкие места.

Где-то месяца на 2 работы ...

Сообщение отредактировал FAE - Jun 26 2012, 09:17
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jun 26 2012, 11:44
Сообщение #8


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

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(FAE @ Jun 26 2012, 12:49) *
1. Переписать сорцы под синхронный сброс
2. Проверить, включена ли инкрементальная компиляция. Если нет - включить
3. Написать корректный sdc файл и подключить таймквест.
4. Используя таймквест Убрать узкие места.

1. не начинайте холивар по поводу синхронного-асинхронного сброса, если это глобальный сброс - оставьте
2. перевод про инкрементальную компиляцию есть здесь - http://www.naliwator.narod.ru/
если коротко и быстро - использовать галку в incremental compilation -> rapid recompile -> on ну и другие настройки
3. как грамотно пользоваться таймквестом начало здесь http://embedders.org/content/timequest-dly...hast-1-vvedenie
Эти первые три пункта работы на несколько часов. С последним можете провозиться от нуля до бесконечности.
Go to the top of the page
 
+Quote Post
FAE
сообщение Jun 26 2012, 12:33
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 27-04-05
Из: Spb, Russia
Пользователь №: 4 544



Цитата(bogaev_roman @ Jun 26 2012, 15:44) *
1. не начинайте холивар по поводу синхронного-асинхронного сброса, если это глобальный сброс - оставьте

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

Цитата(bogaev_roman @ Jun 26 2012, 15:44) *
2. перевод про инкрементальную компиляцию есть здесь - http://www.naliwator.narod.ru/
если коротко и быстро - использовать галку в incremental compilation -> rapid recompile -> on ну и другие настройки

В 9м квартусе я такой галки не увидел. Там только два кружочка: "off" и "full incremental compilation".
Имеет ли смысл перейти на более новый квартус?


Цитата(bogaev_roman @ Jun 26 2012, 15:44) *
3. как грамотно пользоваться таймквестом начало здесь http://embedders.org/content/timequest-dly...hast-1-vvedenie
Эти первые три пункта работы на несколько часов. С последним можете провозиться от нуля до бесконечности.

Спасибо, нашел сам, уже читаю ...
Go to the top of the page
 
+Quote Post
Flood
сообщение Jun 26 2012, 19:21
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



С альтерой не работал, но на Xilinx подобные ужасы нашего городка возникали, если:
- ошибочно заданы constraint-ы, например, занижена или не указана частота внешнего тактового сигнала;
- неверно сделаны переходы между тактовыми доменами;
- тактовый сигнал низкочастотного домена сделан на пользовательской логике (счетчик/делитель) в высокочастотном домене sm.gif
- существуют локальные асинхронные сигналы сброса.

Как правило эти вызванные асинхронностью эффекты бывают весьма плавающими, т.к. реальная схема зависит от того, "как карта ляжет". И, нередко, подключаемый Chipscope (аналог SignalTap) вместо выявления успешно вылечивал проблему sm.gif
Go to the top of the page
 
+Quote Post
FAE
сообщение Jul 2 2012, 07:06
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 27-04-05
Из: Spb, Russia
Пользователь №: 4 544



Цитата(Flood @ Jun 26 2012, 23:21) *
С альтерой не работал, но на Xilinx подобные ужасы нашего городка возникали, если:
- ошибочно заданы constraint-ы, например, занижена или не указана частота внешнего тактового сигнала;
- неверно сделаны переходы между тактовыми доменами;
- тактовый сигнал низкочастотного домена сделан на пользовательской логике (счетчик/делитель) в высокочастотном домене sm.gif
- существуют локальные асинхронные сигналы сброса.

Как правило эти вызванные асинхронностью эффекты бывают весьма плавающими, т.к. реальная схема зависит от того, "как карта ляжет". И, нередко, подключаемый Chipscope (аналог SignalTap) вместо выявления успешно вылечивал проблему sm.gif

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

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

 


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


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