|
Проблема timingа в timing simulation CPLD - Lattice, hold time violation репорт симулятора, выходы мертвы в X |
|
|
|
 |
Ответов
|
Oct 19 2008, 16:22
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 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. Проект в железе работает ?
--------------------
|
|
|
|
|
Oct 19 2008, 16:36
|
Знающий
   
Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822

|
Цитата(des00 @ Oct 19 2008, 20:22)  Думаете верно, это и есть нарушение времянок.
1. STA проходит? 2. При сборке проекта не было ругани на неопределенные клоки, констрейны и т.д.? 3. Верификационное окружение корректно описывает поведение логики IO буферов? 4. Проект в железе работает ? Спасибо за быстрый ответ. Не припомнится ругани на какие-нить проблемы на стадии build, есть единственный клок и он вроде определен как и другие констрейны (которых не много). А что вы имеете ввиду насчет 3. ? Сорри, опыта у меня маловато в данно области пока. До железа пока не дошло, вначале хочу довести до ума в симуляторе. Да и железа пока нет, все на стадии разработки еще. Может дать сорсы и файл констрейнов ?
|
|
|
|
|
Oct 19 2008, 16:46
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 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 файл могу найти место где у вас возникает нарушение в моделсиме. Но это только завтра. В личку написал мое мыло для связи.
--------------------
|
|
|
|
|
Oct 19 2008, 20:22
|
Знающий
   
Группа: Свой
Сообщений: 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 ? пытаюсч вспомнить как делать, читал где-то не так давно..
|
|
|
|
|
Oct 20 2008, 03:25
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 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', вроде все работает, под альтеру правда. Либо что-то не так запускаете под альдек, либо где то, какой то глюк.
Эскизы прикрепленных изображений
--------------------
|
|
|
|
|
Oct 20 2008, 10:47
|
Знающий
   
Группа: Свой
Сообщений: 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 ? Куда смотреть и как анализировать ? Это на будущее..
|
|
|
|
|
Oct 22 2008, 04:35
|
Знающий
   
Группа: Свой
Сообщений: 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 для уверенности..
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|