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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Симуляция функциональная Vs временная, Мой вопрос вот в чем...
3.14
сообщение Sep 12 2005, 10:33
Сообщение #31


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Цитата(Gorby @ Sep 12 2005, 13:00)
А вот с этого места подробнее, пожалуйста. Мне пришлось применить переход к другому клоковому домену с близкой частотой (100 -> 85 МГц). Как сделать, чтобы Моделсим не выдавал неопределенность, после которой все дальнейшее поведение становится тоже неопределенным?
Другими словами, какие они, Ваши специальные меры?

Цитата(3.14 @ Sep 8 2005, 14:37)
По умолчанию симуляторы, в случае нарушения setup/hold для регистра устанавливают его в X значение. После этого весь автомат рушится. Иногда это становится (твкой способ обработки ошибок) занозой в з...  В случае, если симулируете в VHDL, ModelSim может глобально отключить подстановку Х, взамен оставляет старое значение регистра. В случае с Verilog возможно только указать через файл ограничений какие регистры не учитывать при нарушения зазоров (предполагается, что они первые в цепи антиметастабильности).


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
Gorby
сообщение Sep 12 2005, 10:34
Сообщение #32


Местный
***

Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002



Цитата(3.14 @ Sep 12 2005, 13:33)
Цитата(Gorby @ Sep 12 2005, 13:00)
А вот с этого места подробнее, пожалуйста. Мне пришлось применить переход к другому клоковому домену с близкой частотой (100 -> 85 МГц). Как сделать, чтобы Моделсим не выдавал неопределенность, после которой все дальнейшее поведение становится тоже неопределенным?
Другими словами, какие они, Ваши специальные меры?

Цитата(3.14 @ Sep 8 2005, 14:37)
По умолчанию симуляторы, в случае нарушения setup/hold для регистра устанавливают его в X значение. После этого весь автомат рушится. Иногда это становится (твкой способ обработки ошибок) занозой в з...  В случае, если симулируете в VHDL, ModelSim может глобально отключить подстановку Х, взамен оставляет старое значение регистра. В случае с Verilog возможно только указать через файл ограничений какие регистры не учитывать при нарушения зазоров (предполагается, что они первые в цепи антиметастабильности).

*



DefaultForceKind = freeze

Это оно? Или где?


--------------------
Умею молчать на 37 языках...
Go to the top of the page
 
+Quote Post
3.14
сообщение Sep 12 2005, 10:42
Сообщение #33


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Цитата
DefaultForceKind = freeze
Это оно? Или где?
*
Когда моделька рождается в VHDL, галка глобального отключения "Global disable X-generation for simulation".
Ну а констрейн называется ASYNC_REG, например INST "I_MK_module/WEa[*]" ASYNC_REG = TRUE;


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
Gorby
сообщение Sep 12 2005, 10:50
Сообщение #34


Местный
***

Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002



Цитата(3.14 @ Sep 12 2005, 13:42)
Цитата
DefaultForceKind = freeze
Это оно? Или где?
*
Когда моделька рождается в VHDL, галка глобального отключения "Global disable X-generation for simulation".
Ну а констрейн называется ASYNC_REG, например INST "I_MK_module/WEa[*]" ASYNC_REG = TRUE;
*



Спасибо. Нашел. В детстве шарады у меня хорошо разгадывать получалось...
Это ж ведь и не в Моделсиме вовсе. a14.gif


--------------------
Умею молчать на 37 языках...
Go to the top of the page
 
+Quote Post
EugeneS
сообщение Sep 22 2005, 08:45
Сообщение #35


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

Группа: Свой
Сообщений: 181
Регистрация: 28-08-04
Пользователь №: 557



Цитата(Gorby @ Sep 12 2005, 13:50)
Цитата(3.14 @ Sep 12 2005, 13:42)
Цитата
DefaultForceKind = freeze
Это оно? Или где?
*
Когда моделька рождается в VHDL, галка глобального отключения "Global disable X-generation for simulation".
Ну а констрейн называется ASYNC_REG, например INST "I_MK_module/WEa[*]" ASYNC_REG = TRUE;
*



Спасибо. Нашел. В детстве шарады у меня хорошо разгадывать получалось...
Это ж ведь и не в Моделсиме вовсе. a14.gif
*



Возможно, что это то самое...

--8<---
To prevent "x" from propagating in your simulation, use the "+no_notifier" option to vsim command when using ModelSim Simulator (MTI)
--8<---
Go to the top of the page
 
+Quote Post
3.14
сообщение Sep 22 2005, 15:04
Сообщение #36


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Цитата(EugeneS @ Sep 22 2005, 11:45)
Возможно, что это то самое...

--8<---
To prevent "x" from propagating in your simulation, use the "+no_notifier" option to vsim command when using ModelSim Simulator (MTI)
--8<---
*
Оно самое. Но сами понимаете, что этим лучше пользоваться только в исключительных случаях.


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
popeye
сообщение Sep 26 2005, 15:51
Сообщение #37


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

Группа: Свой
Сообщений: 92
Регистрация: 18-08-05
Пользователь №: 7 750



Цитата(3.14 @ Sep 8 2005, 15:37)
По умолчанию симуляторы, в случае нарушения setup/hold для регистра устанавливают его в X значение. После этого весь автомат рушится. Иногда это становится (твкой способ обработки ошибок) занозой в з... smile.gif В случае, если симулируете в VHDL, ModelSim может глобально отключить подстановку Х, взамен оставляет старое значение регистра. В случае с Verilog возможно только указать через файл ограничений какие регистры не учитывать при нарушения зазоров (предполагается, что они первые в цепи антиметастабильности).

Получается, что работу собственно схемы борьбы с метастабильностью проверить в симуляторе нельзя. Либо мы запрещаем метастабильность для входных регистров этих схем путем игнорирования нарушения setup/hold, либо неопределенное состояние так и пройдет дальше, нарушая работу модели, чего в железе как раз и не произойдет.

И еще возникает вопрос: а разве в модели регистра невозможно учесть время метастабильности и передавать его через SDF? Я понимаю, что это время не посчитать точно, но можно было бы задать какую-то оценку, и симулятор работал бы более наглядно: вот состояние неопределено, а вот устаканилось...
Go to the top of the page
 
+Quote Post
3.14
сообщение Sep 26 2005, 17:27
Сообщение #38


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Цитата(popeye @ Sep 26 2005, 18:51)
Получается, что работу собственно схемы борьбы с метастабильностью проверить в симуляторе нельзя. Либо мы запрещаем метастабильность для входных регистров этих схем путем игнорирования нарушения setup/hold, либо неопределенное состояние так и пройдет дальше, нарушая работу модели, чего в железе как раз и не произойдет.
Дык вот в том то и дело, что в железе это будет работать (например 999 раз из 1000), а симулятор это сразу заметит и укажет. И потом, мы ведь выключаем детектор метастабильности только для первого регистра, так что все "чинно, благородно".

Цитата(popeye @ Sep 26 2005, 18:51)
И еще возникает вопрос: а разве в модели регистра невозможно учесть время метастабильности и передавать его через SDF? Я понимаю, что это время не посчитать точно, но можно было бы задать какую-то оценку, и симулятор работал бы более наглядно: вот состояние неопределено, а вот устаканилось...
*
Может я чего не понял, но в симуляторах все так и работает.


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
popeye
сообщение Sep 26 2005, 21:58
Сообщение #39


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

Группа: Свой
Сообщений: 92
Регистрация: 18-08-05
Пользователь №: 7 750



3.14:
Наверно, это я чего-то недопонял. smile.gif
Поясните, пожалуйста, это:

Цитата(3.14 @ Sep 26 2005, 21:27)
Дык вот в том то и дело, что в железе это будет работать (например 999 раз из 1000), а симулятор это сразу заметит и укажет.

Что нам сразу заметит и укажет симулятор, что нарушено время setup/hold? И выставит "x" или просто напишет "Error..."? Так ведь мы и планируем нарушить времянку и посмотреть что будет, если хотим бороться с метастабильностью. Так что в железе должно работать 1000 раз из 1000, а иначе грош цена схеме антиметастабильности. Здорово было бы, если бы ножки ПЛИС делались красного цвета (как в ModelSim'е "x" по умолчанию), а тестер/осциллограф писали бы "x", как бы тогда отладка упростилась. smile.gif

Цитата(3.14 @ Sep 26 2005, 21:27)
Может я чего не понял, но в симуляторах все так и работает.

Насколько я понимаю, если триггер встал в неопределенное состояние, то он в нем так и останется по крайней мере до следующего фронта клока. У меня ModelSim так работает с альтеровскими "атомами", может у Xilinx'а иначе, но что-то не верится. А ведь в железе триггер в состоянии метастабильности пробудет какое-то конечное время, порядка 1 нс, насколько я представляю, а потом станет стабильным.
Go to the top of the page
 
+Quote Post
3.14
сообщение Sep 27 2005, 18:59
Сообщение #40


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



2 popeye
Когда я говорил "Дык вот в том то и дело, что в железе это будет работать (например 999 раз из 1000), а симулятор это сразу заметит и укажет." я подразумевал работу схемы без антиметастабилизатора. Говорим то об одном и том же smile.gif, просто меня смутило, почему нельзя считать, что можно симулировать работу антиметастабилизатора при отключенном детекторе метастабильности на первом регистре. Это и работать будет и симулировать можно без угрызения совести если тактовый сидит на глобальной линии.

Далее по тексту, сори, это я упустил Вашу фразу "учесть время метастабильности и передавать", мне то же не понятно, что производителю мешает это сделать, наверное большаея нестабильность времени метастабильности от кучи факторов (время нарушения, температура, питание и т.п.).


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
popeye
сообщение Sep 28 2005, 13:11
Сообщение #41


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

Группа: Свой
Сообщений: 92
Регистрация: 18-08-05
Пользователь №: 7 750



Возвращаясь к теме. Недавно прочитал довольно интересную доку по поводу несовпадения функциональной модели и логики после синтеза. Вещи там на мой взгляд написаны довольно очевидные, но все равно полезные.

RTL Coding Styles That Yield Simulation and Synthesis Mismatches
Go to the top of the page
 
+Quote Post

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

 


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


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