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

 
 
> Проблема timingа в timing simulation CPLD - Lattice, hold time violation репорт симулятора, выходы мертвы в X
Саша Z
сообщение Oct 19 2008, 16:04
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Есть небольшой дизайн логики с state machine, счетчиком и логикой. Работаю с Латисом, в данном случае с Classic 1.2 ибо нужны небольшие CPLD.
Симулятор: Aldec Active-HDL 8.1 (из ispLever 7.1), CPLD библиотеки инсталлирваны ОК.
Функциональная симуляция проходит ОК, с ожидаемыми результатами. Делаю timing simulation файлы, запускаю timing simulation в Альдеке - получаю warnings насчет hold time violations у FFs state machine и счетчиков. Traces симуляции дают выхода заткнутые в X (неопределенное состояние). Подозреваю что такое состяние естх результат hold time violations о которых докладывает симулятор.
Пока не нашел в ispLever Classic 1.2 возможности посмотреть причину violations и возможности ее исправить.
Может кто более опытный в данных аспектах подскажет куда смотреть ?

При необходимости могу выложить sources (VHDL + test bench) и файл constraints.

Заранее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 10)
des00
сообщение Oct 19 2008, 16:22
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Саша Z @ Oct 19 2008, 11:04) *
Функциональная симуляция проходит ОК, с ожидаемыми результатами. Делаю timing simulation файлы, запускаю timing simulation в Альдеке - получаю warnings насчет hold time violations у FFs state machine и счетчиков. Traces симуляции дают выхода заткнутые в X (неопределенное состояние). Подозреваю что такое состяние естх результат hold time violations о которых докладывает симулятор.
Пока не нашел в ispLever Classic 1.2 возможности посмотреть причину violations и возможности ее исправить.


Думаете верно, это и есть нарушение времянок.

1. STA проходит?
2. При сборке проекта не было ругани на неопределенные клоки, констрейны и т.д.?
3. Верификационное окружение корректно описывает поведение логики IO буферов?
4. Проект в железе работает ?


--------------------
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Oct 19 2008, 16:36
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(des00 @ Oct 19 2008, 20:22) *
Думаете верно, это и есть нарушение времянок.

1. STA проходит?
2. При сборке проекта не было ругани на неопределенные клоки, констрейны и т.д.?
3. Верификационное окружение корректно описывает поведение логики IO буферов?
4. Проект в железе работает ?


Спасибо за быстрый ответ.
Не припомнится ругани на какие-нить проблемы на стадии build, есть единственный клок и он вроде определен как и другие констрейны (которых не много).
А что вы имеете ввиду насчет 3. ? Сорри, опыта у меня маловато в данно области пока.
До железа пока не дошло, вначале хочу довести до ума в симуляторе. Да и железа пока нет, все на стадии разработки еще.
Может дать сорсы и файл констрейнов ?
Go to the top of the page
 
+Quote Post
des00
сообщение Oct 19 2008, 16:46
Сообщение #4


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Саша Z @ Oct 19 2008, 11:36) *
Не припомнится ругани на какие-нить проблемы на стадии build, есть единственный клок и он вроде определен как и другие констрейны (которых не много).


т.е. STA не ругается на нарушение времянок, I/O tsu/th заданы и выполняются ?

Цитата
А что вы имеете ввиду насчет 3. ?
Может дать сорсы и файл констрейнов ?


в тестбенче когда вы задаете внешние воздействия вы случайно не нарушаете tsu/th входных тригеров ? Например

sample_in_data <= #1ns 5;
@(posedge clk);

В функционале это нормально отработается по клоку, но при временной симуляции может вызвать нарушение tsu/th на входном тригере и тогда 'X' пойдет по схеме.

Если нарушаете тогда приходится править например так

sample_in_data <= #2.5ns 5;
@(posedge clk);

у меня под латексы ничего нет, если формат констрейнов не от синопсиса, ничем помочь не смогу %)
правда по хдл модели + sdf файл могу найти место где у вас возникает нарушение в моделсиме. Но это только завтра. В личку написал мое мыло для связи.


--------------------
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Oct 19 2008, 20:22
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(des00 @ Oct 19 2008, 20:46) *
т.е. STA не ругается на нарушение времянок, I/O tsu/th заданы и выполняются ?
в тестбенче когда вы задаете внешние воздействия вы случайно не нарушаете tsu/th входных тригеров ? Например

sample_in_data <= #1ns 5;
@(posedge clk);

В функционале это нормально отработается по клоку, но при временной симуляции может вызвать нарушение tsu/th на входном тригере и тогда 'X' пойдет по схеме.

Если нарушаете тогда приходится править например так

sample_in_data <= #2.5ns 5;
@(posedge clk);

у меня под латексы ничего нет, если формат констрейнов не от синопсиса, ничем помочь не смогу %)
правда по хдл модели + sdf файл могу найти место где у вас возникает нарушение в моделсиме. Но это только завтра. В личку написал мое мыло для связи.


Спасибо, послал.

В tb у меня только начальный Reset и клок. Больше входов нет.
Констрейнами не задавал ts/th, да и честно говоря пока не в курсе как и когда нужно.
STA - static timing analysis ? пытаюсч вспомнить как делать, читал где-то не так давно..
Go to the top of the page
 
+Quote Post
des00
сообщение Oct 20 2008, 03:25
Сообщение #6


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Саша Z @ Oct 19 2008, 15:22) *
STA - static timing analysis ? пытаюсч вспомнить как делать, читал где-то не так давно..


про STA вы правы, по идее он должен запускаться после разводки, для проверки времянок.

Но для ваших 6 КГц думаю что это не критично. Да и входов у вас нет, только выходы.

Ваши файлы получил, т.к. под латекс ничего нет, собрал под альтеру MAX3000A, задал клок 10КГц. Собрал, запустил на моделирование.

Код
vcom NUC_tester_tb.vhd
vcom prj.vho  
vsim -novopt -sdftyp /NUC_tester_tb/uut=prj_vhd.sdo NUC_tester_tb


результат в атаче.

Не видно 'x', вроде все работает, под альтеру правда. Либо что-то не так запускаете под альдек, либо где то, какой то глюк.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Oct 20 2008, 10:47
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(des00 @ Oct 20 2008, 07:25) *
про STA вы правы, по идее он должен запускаться после разводки, для проверки времянок.

Но для ваших 6 КГц думаю что это не критично. Да и входов у вас нет, только выходы.

Ваши файлы получил, т.к. под латекс ничего нет, собрал под альтеру MAX3000A, задал клок 10КГц. Собрал, запустил на моделирование.

Код
vcom NUC_tester_tb.vhd
vcom prj.vho  
vsim -novopt -sdftyp /NUC_tester_tb/uut=prj_vhd.sdo NUC_tester_tb


результат в атаче.

Не видно 'x', вроде все работает, под альтеру правда. Либо что-то не так запускаете под альдек, либо где то, какой то глюк.


Большое спасибо.
Да, странно.Очевидная разница только в симуляторе (Aldec vs. Modelsim) и в библиотеках чипов (Lattice CPLD и Альтера примерно схожей плотности).
Странно....

Послал проэкт на анализ в саппорт Латтиса с пояснительной..посмотрим что скажут.

А вообще, как анализируются подобные timingовые проблемы в среде FPGA/CPLD ? Куда смотреть и как анализировать ? Это на будущее..
Go to the top of the page
 
+Quote Post
des00
сообщение Oct 22 2008, 03:58
Сообщение #8


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Саша Z @ Oct 20 2008, 05:47) *
А вообще, как анализируются подобные timingовые проблемы в среде FPGA/CPLD ? Куда смотреть и как анализировать ? Это на будущее..


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

А вообще что касается Timing Simulation уже говорил что это пустая трата времени для фпга. Если функционал работает, проблем при синтезе не было (читаем логи), STA проходит, то все должно работать.


--------------------
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Oct 22 2008, 04:35
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(des00 @ Oct 22 2008, 07:58) *
Ну перво наперво читайте логи, обычно когда есть нарушение тригер выкидывает ассерт. В котором пишет кто он и где стоит. Ну а дальше как обычно по колхозному, поиск начинается с его входа. %)

А вообще что касается Timing Simulation уже говорил что это пустая трата времени для фпга. Если функционал работает, проблем при синтезе не было (читаем логи), STA проходит, то все должно работать.


Да, спасибо.
Сейхас пытаюсь разбраться по Латтисовсим докам.
STA в данном дизане для конкретного чипа (после PARа) вроде не показывал проблем.
Когда-же для "чистоты эксперемента" менял чип на другой (семейтства смешанного CPLD/FPGA), намноо более емкий - STA после синтеза (до PAR) давал отрицательный hold time триггеров счетчик и state machine, это наверно может быть проблемой, так ? Хотя его еще не симулировал....

Вообще-то хотелось бы видеть и надежную timing симулацию в FPGA/CPLD для уверенности.. smile.gif
Go to the top of the page
 
+Quote Post
des00
сообщение Oct 22 2008, 05:53
Сообщение #10


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Саша Z @ Oct 21 2008, 23:35) *
STA в данном дизане для конкретного чипа (после PARа) вроде не показывал проблем.
Когда-же для "чистоты эксперемента" менял чип на другой (семейтства смешанного CPLD/FPGA), намноо более емкий - STA после синтеза (до PAR) давал отрицательный hold time триггеров счетчик и state machine, это наверно может быть проблемой, так ? Хотя его еще не симулировал....


Не понятно, отрицательный Hold или отрицательный Hold Skew ? Вообще странно на 6кГц можно "слона" разложить %) откуда там нарушения времянок. %))


--------------------
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Oct 22 2008, 19:36
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(des00 @ Oct 22 2008, 09:53) *
Не понятно, отрицательный Hold или отрицательный Hold Skew ? Вообще странно на 6кГц можно "слона" разложить %) откуда там нарушения времянок. %))


Да, и мне очень странно. Говорилось о hold time. На такой астоте оно действительно непонятно...
Может я чего не усек cranky.gif

сегодня ответили с саппорта Латиса - обещали до пятницы разобраться с проблемой и рассказать в чем дело...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 03:38
Рейтинг@Mail.ru


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