#FPGA
#vivado
#sta
首先,从理论上讲,Hold Time违例,是因为时钟绕的太远,到达时间太晚。而且综合之后给出的时序报告都是估计值,因此综合之后可以不考虑Hold Time,只考虑Setup Time;即便此时Hold Time违例,我们也不需要去理会。在Place Design之后再去看Hold Time,如果此时Hold Time的违例比较小(比如-0.05ns),还是不需要理会的,因为工具在布线时会修复Hold,但如果Slack太大了,无法修复了,就会牺牲setup来弥补hold。如果出现了hold的违例,我们首先要分析时序报告,看是不是clock的skew太大了,hold违例一般都是时钟的skew太大导致,如果skew太大,就要检查原因了,是不是时钟路径上有buffer导致的,或者是因为时钟跨SLR这种路径太长导致。如果时钟路径上并没有什么多余的buffer或者逻辑,那使用全局时钟网络带来的skew是最小的。