同步电路设计中clock skew的分析
来源:互联网 发布:大淘客联盟cms通过 编辑:程序博客网 时间:2024/05/01 02:10
一.同步电路的组成
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
可以大幅度提高电路的工作频率
- 同步电路设计中CLOCK SKEW的分析
- 同步电路设计中clock skew的分析
- fpga 中 clock skew
- gentoo编译中出现‘Clock skew detected’的解决办法
- clock skew
- clock skew
- Linux下Clock skew detected的解决办法
- Linux下Clock skew detected的解决办法
- Linux下Clock skew detected的解决办法
- HEALTH_WARN clock skew detected的解决办法
- Linux下Clock skew detected的解决办法
- Clock Skew问题
- 解决Clock skew detected
- 解决Clock skew detected.
- 解决Clock skew detected.
- clock skew detected.
- Clock skew detected
- 解决Clock skew detected.
- 使用GNU Autoconf/Automake创建Makefile
- UIKit的类层次结构
- 今天遇见的问题
- IdentityHashMap 使用总结
- UML类图中的几个关系:关联、组合、聚合、依赖关系比较
- 同步电路设计中clock skew的分析
- 腰椎保健操
- org.apache.catalina等jar包找不到
- MySQL Infobright 数据仓库快速安装笔记
- 数据库自学笔记1
- 这才是真相!AWT并不是重量级组件!
- JSP中的文件操作(文件流)
- Android Handler处理消息注意事项
- [C]关于用二分法和牛顿迭代法求平方根