一.Setup time和hold time对频率的影响
setup time和hold up time是由器件cell决定的,一般小于1~2ns,并不随着电路设计的改变而改变。
时钟频率计算方法如下:在不考虑时钟延时抖动等条件下,理想的说:一个信号从触发器的D端到Q端的延时假设是Tcell,从Q端出来之后会经过组合逻辑电路combinational logic或者network的延时称作Tdata,经过Tdata信号将到达下一个触发器D端,而且必须要满足触发器的建立时间Tsetup。
需满足:
Tcd+Tdelay+Tsetup<=T
否则数据无法打入下一个触发器,就会进入亚稳态。
时钟频率f=1/T,周期越短频率越高,最短周期Tmin= Tcell+Tdata+Tsetup。而Tcell和Tsetup都是由器件决定,我们唯一能减小的就是Tdata,在电路中Tdata有很多条,最长的路径(关键路径Critical path)直接决定了主频能跑多快。因此做时序优化总是要从关键路径Critical path下手。
反过来Setup time和hold time对Tdata也有约束作用。
在实际设计中如果主频给定了,设计时也必须保证性能要求。在这种情况下,Tcell+Tdata+Tsetup<=T要满足,所以setup time决定了最长路径的上限。
Tcell+Tdata>=Thold也要满足,hold time则决定了最短路径的下限。
具体到SDC中,这个主要和output constraints相关 ,具体参见<STA for Nanometer Design>Capter 7中7.5节。
总结:理想情况下,主频给定后,setup time约束频率的最小值,hold time约束频率的最大值。主频未给定的情况下,频率主要由Tdata决定。
二.jitter对频率的影响
我看过对jitter有定义有两种版本中,本质相同:
(1)The deviation from the ideal timing of clock transition events
(2) A window within which a clock edge can occur
Jitter对频率的影响如下图所示: