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

 
 
 
Reply to this topicStart new topic
> Разумная глубина контроля коректности кода. Сформулируем критерии., Когда начальство страдает перфекционизмом.
Мур
сообщение Jun 27 2017, 08:06
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 762
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Известно, что связка QuartusII с ModelSim не очень гармонична, поскольку КВА позволяет некоторые конструкции с нарушением стандарта. Проект, собранный в КВА для отработки в ModelSim требует правки в тех местах, где этот "волюнтаризм" допущен. Этот прием применяет мое начальство, чтобы очистить код от обильного количества Варнингов. В итоге в проекте только 2 варнинга.
Цитата
Warning (12241): 1 hierarchies have connectivity warnings - see the Connectivity Checks report folder
Warning (13024): Output pins are stuck at VCC or GND
Вполне разумный ход.
НО...
На шаге симуляции начальство визжит от как резаное! Дескать в окне Transcript(ModelSim)сыпятся предупреждения типа
Цитата
# ** Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es).
# Time: 0 ps Iteration: 0 Instance: /adc_tb/UUT/xxxxxx


Это все характерно для момента разгона модели, когда идет первичная инициализация сигналов...
Но задача звучит так,- этого не должно быть!!!! А речь идет о сдаче дизайна в архив.

Что посоветуете?

К тому же есть такие предупреждения, что стоят внимания разработчика. Надо несомненно вчитываться и разбирать каждый случай... Но не до такой степени!?
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Jun 27 2017, 11:37
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 324
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



Simulate/runtime options/ message severity/ галочка vhdl warnings
Должно помочь именно с этим!


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post
Мур
сообщение Jun 27 2017, 11:38
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 762
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(warrior-2001 @ Jun 27 2017, 14:37) *
Simulate/runtime options/ message severity/ галочка vhdl warnings
Должно помочь именно с этим!

Спасибо! Ай да молодец!...
Go to the top of the page
 
+Quote Post
Mad_max
сообщение Jun 27 2017, 13:45
Сообщение #4


Местный
***

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



Можно конечно голову в песок и нет проблемы...
Но лучше разберитесь, может быть не зря оно так визжит насчет Х'ов,
мало ли, что вы там рассчитываете.

http://infocenter.arm.com/help/topic/com.a...ilog_X_Bugs.pdf

Go to the top of the page
 
+Quote Post
iosifk
сообщение Jun 27 2017, 14:36
Сообщение #5


Гуру
******

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



Цитата(Мур @ Jun 27 2017, 11:06) *
К тому же есть такие предупреждения, что стоят внимания разработчика. Надо несомненно вчитываться и разбирать каждый случай... Но не до такой степени!?

Дело конечно не в Моделсиме.
Квартус "знает", что после инициализации регистры и триггера будут по "исходному"...Обычно выходы - по нулям... А Моделсиму об этом никто не сказал. И он не понимает состояния каких-то регистров-триггеров, у которых нет сброса... Напишите начальное значение для этих сигналов...
Если используете сигнал захвата от PLL, то можно в тестбенче вместо PLL сделать такой сигнал и добавить его к сбросу... Можно сделать внутренний блок, сбрасывающий проект в исходное...
У Ксайлинкса есть примитив, который переводит проект в рабочее состояние после загрузки. Наверняка у Альтеры тоже что-то такое есть... Только я такой примитив обычно копирую в ту деректорию, где веду отладку и там "подрезаю" ему время задержки...
В верилоге есть "force". Т.е. можно принудительно заставить какие-то сигналы в тестбенче принять определенное значение. А потом их релизнуть...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Mad_max
сообщение Jun 27 2017, 16:05
Сообщение #6


Местный
***

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



Цитата
А Моделсиму об этом никто не сказал. И он не понимает состояния каких-то регистров-триггеров, у которых нет сброса...

Вообще нормальный симулятор должен это понимать исходя из типа данных.
В SV есть тип данных bit, который может быть либо 0, либо 1, Х состояния вовсе не предполагается.
При начале симуляции (zero time) переменные типа bit будут гарантированно иметь определенное состояние - 0.
То есть, используя bit для синтезируемой логики можно уйти от проблемы X'ов на симуляции.
Цитата
Напишите начальное значение для этих сигналов...

Можно инициализировать перемены при объявлении, но это противоречит многим стандартам кодирования.
Мотивируется тем, что можно получить различный результат при моделирование RTL и netlist.

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

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

Go to the top of the page
 
+Quote Post
Мур
сообщение Jun 27 2017, 19:15
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 762
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(Mad_max @ Jun 27 2017, 16:45) *
Можно конечно голову в песок и нет проблемы...
Но лучше разберитесь, может быть не зря оно так визжит насчет Х'ов,
мало ли, что вы там рассчитываете.

У меня ушки на макушке...
Выгреб кучу проблем с установками, но мне, после Xiulinx, было необычно переводить часть сигналов на асинхронный (Альтеровский) сброс. Выявил отсутствие начального сброса в некоторых местах.
В итоге сократил на 2\3 число предупреждений.
Теперь при симуляции стало меньше красного цвета.. )))

Нет предела совершенству!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st October 2017 - 21:11
Рейтинг@Mail.ru


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