Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема timingа в timing simulation CPLD - Lattice
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Саша Z
Есть небольшой дизайн логики с 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.

Заранее благодарен.
des00
Цитата(Саша 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. Проект в железе работает ?
Саша Z
Цитата(des00 @ Oct 19 2008, 20:22) *
Думаете верно, это и есть нарушение времянок.

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


Спасибо за быстрый ответ.
Не припомнится ругани на какие-нить проблемы на стадии build, есть единственный клок и он вроде определен как и другие констрейны (которых не много).
А что вы имеете ввиду насчет 3. ? Сорри, опыта у меня маловато в данно области пока.
До железа пока не дошло, вначале хочу довести до ума в симуляторе. Да и железа пока нет, все на стадии разработки еще.
Может дать сорсы и файл констрейнов ?
des00
Цитата(Саша 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 файл могу найти место где у вас возникает нарушение в моделсиме. Но это только завтра. В личку написал мое мыло для связи.
Саша Z
Цитата(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 ? пытаюсч вспомнить как делать, читал где-то не так давно..
des00
Цитата(Саша 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', вроде все работает, под альтеру правда. Либо что-то не так запускаете под альдек, либо где то, какой то глюк.
Саша Z
Цитата(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 ? Куда смотреть и как анализировать ? Это на будущее..
des00
Цитата(Саша Z @ Oct 20 2008, 05:47) *
А вообще, как анализируются подобные timingовые проблемы в среде FPGA/CPLD ? Куда смотреть и как анализировать ? Это на будущее..


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

А вообще что касается Timing Simulation уже говорил что это пустая трата времени для фпга. Если функционал работает, проблем при синтезе не было (читаем логи), STA проходит, то все должно работать.
Саша Z
Цитата(des00 @ Oct 22 2008, 07:58) *
Ну перво наперво читайте логи, обычно когда есть нарушение тригер выкидывает ассерт. В котором пишет кто он и где стоит. Ну а дальше как обычно по колхозному, поиск начинается с его входа. %)

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


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

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


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


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

сегодня ответили с саппорта Латиса - обещали до пятницы разобраться с проблемой и рассказать в чем дело...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.