1、首先要学会看vivado中的时序报告

Vivado时序报告中涉及到的参数:
1)setup建立
WNS(Worst negative Slack):最坏负松弛,所有时序路径上的最坏松弛,用于分析最大延迟。WNS为负数的时候表示有问题,为正时表示没有冲突。
TNS(Total Negative slack):总的负松弛,当只考虑每个时序路径端点最坏的冲突时,所有WNS的和。当满足所有的时序约束时,为0ns;否则,有冲突时,为负数。
Number of Failing Endpoints(失败端点的个数):有冲突(WNS<0ns)的端点总个数。
2)hold
Worst Hold Slack(WHS):最坏保持松弛,用于分析最小延时。WHS可以为正数也可以为负数,为正时表示没有冲突。
3)Pluse Width(脉冲宽度)
Worst Pulse Width Slack(WPWS):最坏脉冲宽度松弛,当使用最小和最大延迟时,对应于以上所列出的所有时序检查中最坏的松弛。

2、
要想学会修改就先得明白静态时序分析的重要参数,比如建立时间和保持的计算,最高时钟频率的计算。还得熟悉vivado的常用操作,比如典型的约束。这样之后,我才能更好的采取措施,解决时序违例。
时序路径:在数字系统中,时序路径是由相同时钟或两个不同时钟控制的一对时序元器件构成。
2.1时钟约束文件可以通过:I/O planning GUI的方式自动配置。当然也可以直接输入命令。
2.2时序报告及时序改善策略例子
如果时序报告不对,也就是建立时间和保持时间为负,就需要进行优化。常见的通过观察时序报告分析问题,并进行时序改善的方法:

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210529232454380.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4Mzc0NDkx,size_16,color_FFFFFF,t_70


2.3时序例外
Set false path :指明在设计中不进行分析的路径,比如跨时钟域的路径,静态时序分析是针对同步电路的。

set_false_path -from [get_clocks sys_clk_p] -to [get_clocks -of_objects [get_pins clk_wiz_0/inst/mmcm_adv_inst/CLKOUT0]]


2.4

该图片来源于博客:https://blog.csdn.net/techdiary/article/details/107410739
个人感觉只有先能看懂时序报告、能分析各个参数、知道怎么设置时钟约束(以及其他VIVAO软件中的操作)才能更好的对时序优化。这篇文章写的比较浅,如果有不对的地方,希望大家能够指正。