一.同步电路的组成
1.
组合逻辑电路:用来实现各种逻辑计算
2.
时序逻辑电路:用来存储由时序电路计算得到的逻辑值
3.
时钟分布网络:向整个电路中的时序逻辑提供正确的时钟信号
二.clock skew问题的提出
1.clock skew
的产生
延时与时钟线的长度及被时钟线驱动的时序单元的负载电容、个数有关
由于时钟线长度及负载不同,导致时钟信号到达相邻两个时序单元的时间不同
于是产生所谓的clock skew
2.
有关的概念
Setup Time(Ts):
建立时间
即要求数据端信号在时钟信号触发沿到来之前到达的最小时间
Hold Time(Th):
保持时间
即要求在时钟信号触发沿到来之后,数据端信号仍然维持的最小时间
Dcq:
时钟端到触发器输出端Q的延时
三.对同步电路中clock skew的分析
设 Dp: 组合逻辑电路部分的延时
Tcp:
时钟周期
TC1:
时钟信号沿时钟树到达寄存器R1的延迟时间
TC2:
时钟信号沿时钟树到达寄存器R2的延迟时间
(1)
第K个时钟周期的时钟信号到达R1的时间为KTcp+TC1
第K+1个时钟周期的时钟信号到达R2的时间为(K+1)*Tcp+Tc2
第K个时钟周期数据信号经R1锁存后到达R2数据端的时间为K*Tcp+Tc1+Dcq+Dp
考虑到建立时间(Ts)的要求
这个时间应比第K+1个时钟周期的时钟信号到达R2的时间提前Ts
所以有下式:K*Tcp+Tc1+Dcq+Dp<=(K+1)*Tcp+Tc2-Ts
整理得:Tskew<=Tcp-Dcp-Dp-Ts (1)
(2)
考虑到保持时间(Th)的要求
第K个时钟周期数据信号经R1锁存后到达R2数据端的时间
应比第K个时钟信号到达R2的时间晚Th
有下式:K*Tcp+Tc1+Dcp+Dp>=K*Tcp+Tc2+Ts
整理得:Tskew>=Th-Dcp-Dp (2)
要使电路正常运行,相邻两个触发器之间的CLOCK SKEW必须满足(1)(2)两式
当式(1)不满足时,称发生了setup violation
当式(2)不满足时,称发生了hold violation
当发生了setup violation时可以通过延长时钟周期,即降低系统频率来解决
而当发生了hold violation时,电路一定无法正确工作
因此hold violation是一定要避免的
四.对clock skew的优化方法
插入时钟树时设法使时钟信号同时到达芯片上所有触发器,
虽然可以保证整个电路正确工作,但却不一定使电路工作在最优性能下
针对具体的路径延时,特别是关键路径的延时
合理地调整时钟信号到达各个触发器(或锁存器)的时序
也就是合理调整CLOCK SKEW
可以大幅度提高电路的工作频率