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

 
 
> Quartus Design assistant. Ошибки., Ругается Design assistant на то, чего нет
Flip-fl0p
сообщение May 30 2018, 08:31
Сообщение #1


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Приветствую Уважаемые посетители форума !
При синтезировании прошивки я столкнулся с тем, что в Quartus "Design assistant" ругается на неправильную передачу сигналов между клоковыми доменами.
Но проблема в том, что он обнаружил клоковые домены, которых нет wacko.gif .

Код
Critical Warning (308067): (High) Rule D103: Data bits are not correctly synchronized when transferred between asynchronous clock domains. (Value defined:2). Found 4 asynchronous clock domain interface structure(s) related to this rule.
    Critical Warning (308012): Node  "Buff_controller:Buff_controller_comp|pres_state.buff3"
    Critical Warning (308012): Node  "Buff_controller:Buff_controller_comp|pres_state.buff2"
    Critical Warning (308012): Node  "Buff_controller:Buff_controller_comp|KAA_shreg_debouncer:KAA_shreg_debouncer_comp|data_out"
    Critical Warning (308012): Node  "Buff_controller:Buff_controller_comp|KAA_edge_dtct:DE_Fedge_detect|edge_detector"


Проверял в Quartus 13.1 Web Edition, Quartus 15.0 Web Edition, Quartus Prime 17.1 Lite Edition. Все они ругаются на одно и тоже.
Либо у меня крыша едет и я действительно в упор ошибку не вижу. Либо это врет "Design assistant".
Прикладываю полностью весь модуль, который вызывает параною у "Design assistant".
Верхний уровень проекта - SCALER
Имя модуля в котором обнаруживаются "ложные" клоковые домены - Buff_controller.

Прикрепленный файл  SCALER.zip ( 9 мегабайт ) Кол-во скачиваний: 17
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Burenkov Sergey
сообщение May 31 2018, 18:35
Сообщение #2


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

Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145



Ему не нравится что у вас между регистрами которые формируют сигнал row_ready и регистром внутри синхронизатора есть логика. Добавьте либо триггер на выходе Buff_controller, либо в синхронизаторе сделайте вход для исходной частоты и защелкните data_async в регистр по его родной частоте прежде чем подавать на сдвиговый регистр.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение May 31 2018, 18:44
Сообщение #3


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(Burenkov Sergey @ May 31 2018, 21:35) *
Ему не нравится что у вас между регистрами которые формируют сигнал row_ready и регистром внутри синхронизатора есть логика. Добавьте либо триггер на выходе Buff_controller, либо в синхронизаторе сделайте вход для исходной частоты и защелкните data_async в регистр по его родной частоте прежде чем подавать на сдвиговый регистр.

Я так и сделал, и проблема с мерцанием изображения ушла. Но непонятно почему ему не нравится изначальный вариант. Ведь по сути передача данных идет из одного домена в другой. Да и в констрейнах я указал не анализировать пути между доменами. Хотя констрейны он вроде проверяет на самом последнем этапе.
Ведь никто не запрещает комбинационный сигнал формируемый в одном домене передать в другой через синхронизатор...
Но всё равно спасибо за совет cheers.gif
Go to the top of the page
 
+Quote Post
Burenkov Sergey
сообщение May 31 2018, 19:45
Сообщение #4


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

Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145



Цитата(Flip-fl0p @ May 31 2018, 21:44) *
Ведь никто не запрещает комбинационный сигнал формируемый в одном домене передать в другой через синхронизатор...

Вот тут, страница 10-12, объясняется почему так не надо делать
http://www.sunburst-design.com/papers/Cumm...8Boston_CDC.pdf
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 23:22
Рейтинг@Mail.ru


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