|
Нестабильные результаты altera EP3C55F, Нестабильные результаты altera EP3C55F |
|
|
|
Jun 25 2012, 10:41
|
Участник

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

|
Коллеги, буду признателен, если подскажете как решить проблему:
получаю нестабильные результаты при имплементацмм дизайна в альтеровскую FPGA EP3C55F. Т.е., например, имплементирую прошивку с подключенным сигналтапом, она работает отлично, отключаю сигналтап, она перестает работать. Или вношу изменения в обдин блок, а отрубается другой, не связанный с ним.
Работаю в 9м квартусе. Дизайн написан на верилоге. Цепи сброса описаны как асинхронные (т.е. always @( posedge clk or posedge rst) Максимальная частота - 125Мгц. Имеются тактовые домены с более низкими частотами.
Возможно, кто-то из вас сталкивался с такой проблемой и знает, как это "лечится"?
|
|
|
|
|
 |
Ответов
|
Jun 25 2012, 11:13
|

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

|
Цитата(FAE @ Jun 25 2012, 14:41)  Возможно, кто-то из вас сталкивался с такой проблемой и знает, как это "лечится"? Лечится изгнанием асинхронщины из проекта и грамотным CDC. Используйте TimeQuest, он покажет, где у Вас узкие места. Также, перед добавлением SignalTap'а, включите полный режим инкрементальной компиляции.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Jun 25 2012, 11:51
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Jun 25 2012, 14:47
|

Лентяй
     
Группа: Свой
Сообщений: 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'а
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Jun 26 2012, 08:49
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Jun 26 2012, 11:44
|
Профессионал
    
Группа: Свой
Сообщений: 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Эти первые три пункта работы на несколько часов. С последним можете провозиться от нуля до бесконечности.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|