Jump to content

    

Vivado: несоответствие данных симулятора и Implementation

Поделитесь пожалуйста опытом, встречались ли вы с таким явлением:

в констрейнтах задан клок;

имплементация выдает "all requirements are met";

при моделировании выдаются предупреждения, что нарушены условия setuphold.

Сообщения относятся к входу адреса блока RAM, адрес поступает с регистра, который тактируется тем же клоком, что и RAM.

Share this post


Link to post
Share on other sites

У меня такое неоднократно с DDR бывало. Обычно я просто игнорирую. Ибо если рулы клоков после синтеза и имплементации совпали, то какой-то там симулятор может писать себе что угодно. Разве только у Вас не временное можелирование пост-имплемент модели. Тогда может стоит задуматься

Share this post


Link to post
Share on other sites

Конечно, я имею ввиду постимплементное временное. Вот и задумался, что может быть не так.

Share this post


Link to post
Share on other sites

Может что-то из констрейнов не было задано, или же клоки с разной частотой и, в итоге, расходятся? 

Share this post


Link to post
Share on other sites
16 hours ago, lexx said:

Может что-то из констрейнов не было задано, или же клоки с разной частотой и, в итоге, расходятся? 

Клок источника и приемника данных один и тот же. Какие еще констрейнты, кроме частоты клока, необходимы в этом случае?

Edited by Dmitry_B

Share this post


Link to post
Share on other sites

Приветствую!

Just now, Dmitry_B said:

Клок источника и приемника данных один и тот же. Какие еще констрейнты, кроме частоты клока, необходимы в этом случае?

Еще этот клок должен быть стабильным -  если клок идет с PLL то на симе вы можете получать  моменты когда это нет так.  Time analizer же видит только статическую картину.

Удачи! Rob.   

Share this post


Link to post
Share on other sites
Just now, RobFPGA said:

Приветствую!

Еще этот клок должен быть стабильным -  если клок идет с PLL то на симе вы можете получать  моменты когда это нет так.  Time analizer же видит только статическую картину.

Удачи! Rob.   

Очень любопытное замечание. Симулятор учитывает джиттер PLL?

Правда, к моему случаю это не относится: сигнал формируется тестбенчем и подается напрямую, то есть - идеальный.

Хотя, если дело дошло до моделирования джиттера, то почему не предположить, что моделируется и джиттер буферного усилителя клока...

Share this post


Link to post
Share on other sites

Приветствую!

1 hour ago, Dmitry_B said:

Правда, к моему случаю это не относится: сигнал формируется тестбенчем и подается напрямую, то есть - идеальный.

Тогда  еще более интересно разобраться - в какой момент симуляции это ошибка возникает,  какая реальная задержки получается на симе между регистром адреса и блоком памяти по клоку и данным и как она соотносится с задержками выдаваемыми  в time analizer для данного пути. Тем более это важно так как ошибки таймингов шины адреса для блоков памяти черноваты еще и тем  что при этом может портится контекст памяти. 

Удачи! Rob.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this