没有完全弄清,记下一些疑惑如下:
0, setup与violation理解:
- T0 时刻,数据从D 1的C端入、Q端出、穿过logic到达D2的D端,到达时间记作T0';此后数据在D2的D端保持稳定,直到下一时钟,即T1时刻到来;
- T1时刻后,来自D1的新数据经过C端入、Q端出、穿过logic到达D2的D端,到达时间记作T1';从T1时刻到下一周期T2时刻到来,只会变化这一次;
- T0'时刻与T1时刻的时间间隔,即为数据从到达D2起,已经维持的时间,该时间大于等于Tsu,即可满足建立时间条件; T1时刻与T2'时刻的时间间隔,即为数据从T1时刻起(T1时刻新数据才从D1开始传播),到达D2的时间,该时间大于等于Thold,即可满足保持时间条件;
- 同时满足建立时间和保持时间的组合逻辑延时范围可以表达为:
(Tclk - Tcq-max - Tsu) > Tcomb > (Th - Tcq-min) 考虑skew后,可描述为
(Tclk - Tco-max - Tsu)-Tskew > Tcomb > (Th - Tco-min)+ Tskew
1,通常setup的公式是Tcq+Tcomb+Tsu < Tclk,但是在vivado的报告中为甚么把setup时间以“+”的形式放在require time中,不应该是arrive time+Tsu < require time吗? (用下图描述,vivado报告中是Ta-b < Ta-c+Tc-b,左边他们成为arrive time,右边称为require time,Tc-b即Tsu;我预想的是Ta-b+Tb-c < Ta-c)
2,clock pessimism的概念理解不知道是否正确?
在vivado进行时序分析时,会在不同corner下并行进行,并选取其中最差的情况报告出来,这样得出的数据相比真实情况更为苛刻,因此产生了clock pessimism这个参数,进行补偿修正,在setup检查时用“+”,给逻辑处理留出更多的处理时间;在hold检查时用“-”,使得数据在采集沿的hold时间可以缩短,允许信号可以变化翻转的更快些。
3,采集沿capture edge是否就是指时钟信号到达DFF总的C引脚时刻,对应DFF门级实现中的C与C非脚,而D则是数据的输入脚,在1问题的描述中vivado的报告呈现方式,个人理解成他们认为DFF的D引脚就是采集判定沿,而非C引脚 ,待确认?