系统设计中时钟、时序相关问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CLK
2006.4
21
时钟树分布简介2
Routed RC Tree 考虑布局 后的个单 元长度, 根据时钟 的负载来 优化网络
2006.4
22
内容 1,跟时钟相关的参数概念与分析 2,时钟树 3,PLL与DLL 4,基于Latch进行设计与Time Borrow 5,ASIC设计中的时钟使用的基本原则 6,门控时钟设计的相关技术 7,改善系统时钟性能以及提高性能速度 的几种方法
2006.4 15
Clock Skew和Jitter的来源
4 Power Supply 3 Interconnect Devices 2
6 Capacitive Load 7 Coupling to Adjacent Lines
5 Temperature 1 Clock Generation
2006.4
2006.4 23
PLL(Phase Locked Loop)
两个同频时钟信号,就可以通过相 位差来描述他们的关系,或者由一 个时钟得到另外一个时钟
压控振荡器
2006.4
24
PLL2
Altera中的 PLL
2006.4
25
PLL3
Altera中的 PLL
某CycloneII芯 片上面的PLL 资源
D Q Clk T Clk D tc-q PWm thold td-q tsu
Q
2006.4
3
Register的参数
T D Q Clk Clk D tsu Q thold tc-q
tsu:建立时间,在时钟有效沿到来之前寄存器数据输入应保持稳定的时 间,它间接约束了组合逻辑的最大延时 thold:保持时间,在寄存器数据输入的引脚的数据在系统有效时 钟沿到来后需要保持稳定的时间,它间接约束了组合逻辑的最 小延时 tc-q:寄存器从有效时钟沿到来到输出有效的最大时间
2006.4 12
利用Skew提高电路性能
延时 8 延时 12
关键路径为组合逻辑2,影响了系统速度
调整:提前C2时钟到达时间(人为增加Clock Skew),使 其比C1,C3提前2个时间单位(相当于有2个时间单位的 Clock Skew)到达,如此就给出组合逻辑2更多的计算时 间,使关键路径延时为10,提高系统能够工作频率 这需要在后端物理设计的时候进行调整
2006.4 32
DLL6
可以选择不同 的时钟反馈来 进行相位对齐
2006.4
33
ASIC中的PLL和DLL
在ASIC中,PLL是非常重要的一个部件,常使用PLL在片 内产生高的系统时钟、减少Clock skew、减少Clock jitter 等,但是由于PLL的模拟特性,不论是对数字工程师还是模 拟工程师来说都是一个挑战 PLL可以自己进行设计也可以购买IP核,它是一个模数混 合设计,其loop filter和VCO部分是模拟,其分频部分是数 字,至少都是针对具体的工艺和生产线,也就是说是硬核或 者每次都要进行自己设计 当前也有公司开发出来全数字可以在CMOS上面实现的 IP核,(一家德国公司) DLL和PLL在ASIC设计中有着相似的问题
2006.4 8
时钟参数满足的条件
时钟周期应大于寄存器延时、组合逻辑延时、和 目标寄存器建立时间的和
本寄存器有效输出通过组合逻辑的延时应该大于 目的寄存器的保持时间要求
2006.4
9
正负Clock Skew
In CLK R1 D Q tCLK1 delay (a) Positive skew R1 D Q tCLK1 delay (b) Negative skew
2006.4 18
• Simple Register to Register Analysis with Numbers
reg1 in 2.993 clk
µtco 0.11
p2p 2.266 2.521 clk’
reg2 out
µtsu 0.082
setup relationship = latch edge – launch edge = 5.0 – 0.0 = 5.0 clock skew = clk’ – clk = 2.521 - 2.993 = -0.472 p2p required = setup relationship + clock skew – µtCO – µtSU = 5.0 + (-0.472) – 0.11 – 0.082 = 4.336 slack = p2p required – p2p delay = 4.336 – 2.266 = 2.07
2006.4 10
Combinational Logic
R2 D Q tCLK2 delay Combinational Logic
R3 D Q tCLK3
•••
In
Combinational Logic
R2 D Q tCLK2 delay Combinational Logic
R3 D Q tCLK3 CLK
CLK
tc-q:寄存器从有效时钟沿到来到输出有效的最大时间 tc-q,cd:时钟沿到来到输出有效的最小时间 tsu:建立时间,在时钟有效沿到来之前寄存器数据输入应保持稳定的 时间,它间接约束了组合逻辑的最大延时 thold:保持时间,在寄存器数据输入的引脚的数据在系统有效时钟沿 到来后需要保持稳定的时间,它间接约束了组合逻辑的最小延时 tlogic:组合逻辑最大延时 tlogic,cd:组合逻辑最小延时
Time borrow
2006.4 36
基于Latch进行设计2
LATCH工作 过程
LATCH等效的寄存器 工作时序
CLk1
2006.4
CLB_A + CLB_B
CLB_C… CLk1
37
基于Latch进行设计3
由上页Slide可以看出基于Latch设计和基于寄存 器设计,其在数据输入与数据输出接口上可以获得 相同的效果 但是,在基于Latch的设计中,组合逻辑被电平 敏感的Latch分离,它可以使一个组合逻辑使用前 一个组合逻辑剩余的时间,也就是Time Borrow或 者Slack borrowing Time Borrow可以使电路时钟边界处的逻辑使用 超过一个时钟周期宽度的时间,从而可以使电路运 行速率高于关键路径的所约束的时钟频率!
•••
正Clock Skew对电路性能的影响
正的Skew减少了时钟周 期宽度,可以提高系统 的时钟频率 CLK1相对于CLK2提前,由 于第二级寄存器对保持时间 的要求,很容易发生使建立 时间得不到满足
2006.4 11
负Clock Skew对电路性能的影响
δ 为负
负的Skew要求正常工作 时的时钟周期变宽 负的Skew时,第二级寄存 器的保持时间肯定能够得到 满足
2006.4 13
Clock Jitter对电路性能的影响
tjitter是两个相邻时 钟周期宽度之差 由此可见,Clock Jitter要求正常工作的系统时钟 宽度增加,从而也就降低了系统工作频率
2006.4 14
Clock Skew和Jitter对电路性能的影响
δ 为负
由此可见,Skew和Jitter要求系统时钟宽度增加,从而系 统频率降低,性能变差
17
• Simple Register to Register Analysis
reg1 in clk clk’ p2p reg2
本张slide和下一张 slide来自Altera公司 培训资料,版权归原 作者所有
out
setup relationship = latch edge – launch edge clock skew = clk’ – clk p2p required = setup relationship + clock skew – µtCO - µtSU slack = p2p required – p2p delay launch clk latch clk’
2006.4
26
PLL4
Altera中的 PLL
2006.4
27
DLL(Delay Locked Loop)
原始时钟输入 Phase Detector Charge pump
VCDL: Voltage-controlled delay line
VCDL 时钟输出
基本思想是通过控制线延时来调整时钟相位,使其相位对齐
系统设计中时钟、时序相关问题
2006.4
1
内容 1,跟时钟相关的参数概念与分析 2,时钟树 3,PLL与DLL 4,基于Latch进行设计与Time Borrow 5,ASIC设计中的时钟使用的基本原则 6,门控时钟设计的相关技术 7,改善系统时钟性能以及提高性能速度 的几种方法
2006.4 2
Latch的参数
4
34
内容 1,跟时钟相关的参数概念与分析 2,时钟树 3,PLL与DLL 4,基于Latch进行设计与Time Borrow 5,ASIC设计中的时钟使用的基本原则 6,门控时钟设计的相关技术 7,改善系统时钟性能以及提高性能速度 的几种方法
2006.4 35
基于Latch进行设计
基于时钟沿触发的寄存器进行设计是当前主流且 稳健的设计方法,但两个寄存器之间的Worst Case Logic Path会限制系统的最高运行频率;在 本Worst Case Logic Path限制系统频率的同时, 而在其他寄存器之间的路径却可能处于空闲状态 基于Latch的设计方法拥有更为灵活的时序特 性,它允许在数据的一个锁存阶段(stage)将多余的 时间借给下一个阶段或者从下一个阶段借用时间
2006.4 19
内容 1,跟时钟相关的参数概念与分析 2,时钟树 3,PLL与DLL 4,基于Latch进行设计与Time Borrow 5,ASIC设计中的时钟使用的基本原则 6,门控时钟设计的相关技术 7,改善系统时钟性能以及提高性能速度 的几种方法
2006.4 20
时钟树分布简介
H-树 最基本的时钟 树结构,比较 适合于规则阵 列网络
2006.4
28
DLL2
DLL的一个典型应用时是用在时钟分布时
2006.4
29
DLL4
Xilinx中的DLL
Xilinx中的DLL 的一个应用
2006.4
30
DLL3
Xilinx中的DLL
Xilinx中DCM的结构图
2006.4 31
DLL7
Xilinx中的DLL
CLK0通过时钟网络驱动寄存器,然 后通过反馈线至CLKFB,进行相位 检测,调整相位 Xilinx中DLL的简单功能框图
2006.4 4
Clock Skew
在同一个时钟域或者两个时钟域之间时钟信号到 达寄存器的最大时间差别 产生原因主要有:时钟源到达各端点的路径长度 不同,各端点负载不同,时钟网络中插入的缓冲器 不同等 在两个点之间,可以大体认为Skew是固定的值 注意:Clock Skew影响的是时钟的到达时间不 同,也就是时钟发生相移,并不影响时钟的周期宽 度
2006.4 38
Time Borrow示例
由图中可以看出,通 过Latch对关键路径 进行Time Borrow设 计,可以是逻辑在超 过一个时钟周期的范 围内运行,从而降低 或者消除其对时钟频 率的限制
借得的时间
Time Borrow时逻辑 可以利用的时间
寄存器设计逻辑可以利用的时间
2006.4 39
16
Time Slack
From synopsys
slack = 期望数据到达时间 – 数据实际到达时间 Slack为正,表示数据提前到达,此时组合逻辑 延迟满足条件,Register有足够的建立时间; Slack为负,表示数据比预期的时间晚到达,此 时显然不满足Register的建立时间,不满足约束 ; 2006.4
2006.4 5
Clock Skew2
2006.4
6
Clock Jitter
在某一给定点上,时钟周期宽度的变化,不同的 时钟周期其持续时间可能缩短或者变宽 一般用两个相邻时钟周期之间其周期宽度的最大 变化来表示Clock Jitter
变窄 变宽
2006.4 7
同步设计的时间约束参数
In R1 D Q tCLK1 tc − q, cd tsu, thold tc − q tlogic tlogic, cd Combinational Logic R2 D Q tCLK2
内容 1,跟时钟相关的参数概念与分析 2,时钟树 3,PLL与DLL 4,基于Latch进行设计与Time Borrow 5,ASIC设计中的时钟使用的基本原则 6,门控时钟设计的相关技术 7,改善系统时钟性能以及提高性能速度 的几种方法
2006.4
21
时钟树分布简介2
Routed RC Tree 考虑布局 后的个单 元长度, 根据时钟 的负载来 优化网络
2006.4
22
内容 1,跟时钟相关的参数概念与分析 2,时钟树 3,PLL与DLL 4,基于Latch进行设计与Time Borrow 5,ASIC设计中的时钟使用的基本原则 6,门控时钟设计的相关技术 7,改善系统时钟性能以及提高性能速度 的几种方法
2006.4 15
Clock Skew和Jitter的来源
4 Power Supply 3 Interconnect Devices 2
6 Capacitive Load 7 Coupling to Adjacent Lines
5 Temperature 1 Clock Generation
2006.4
2006.4 23
PLL(Phase Locked Loop)
两个同频时钟信号,就可以通过相 位差来描述他们的关系,或者由一 个时钟得到另外一个时钟
压控振荡器
2006.4
24
PLL2
Altera中的 PLL
2006.4
25
PLL3
Altera中的 PLL
某CycloneII芯 片上面的PLL 资源
D Q Clk T Clk D tc-q PWm thold td-q tsu
Q
2006.4
3
Register的参数
T D Q Clk Clk D tsu Q thold tc-q
tsu:建立时间,在时钟有效沿到来之前寄存器数据输入应保持稳定的时 间,它间接约束了组合逻辑的最大延时 thold:保持时间,在寄存器数据输入的引脚的数据在系统有效时 钟沿到来后需要保持稳定的时间,它间接约束了组合逻辑的最 小延时 tc-q:寄存器从有效时钟沿到来到输出有效的最大时间
2006.4 12
利用Skew提高电路性能
延时 8 延时 12
关键路径为组合逻辑2,影响了系统速度
调整:提前C2时钟到达时间(人为增加Clock Skew),使 其比C1,C3提前2个时间单位(相当于有2个时间单位的 Clock Skew)到达,如此就给出组合逻辑2更多的计算时 间,使关键路径延时为10,提高系统能够工作频率 这需要在后端物理设计的时候进行调整
2006.4 32
DLL6
可以选择不同 的时钟反馈来 进行相位对齐
2006.4
33
ASIC中的PLL和DLL
在ASIC中,PLL是非常重要的一个部件,常使用PLL在片 内产生高的系统时钟、减少Clock skew、减少Clock jitter 等,但是由于PLL的模拟特性,不论是对数字工程师还是模 拟工程师来说都是一个挑战 PLL可以自己进行设计也可以购买IP核,它是一个模数混 合设计,其loop filter和VCO部分是模拟,其分频部分是数 字,至少都是针对具体的工艺和生产线,也就是说是硬核或 者每次都要进行自己设计 当前也有公司开发出来全数字可以在CMOS上面实现的 IP核,(一家德国公司) DLL和PLL在ASIC设计中有着相似的问题
2006.4 8
时钟参数满足的条件
时钟周期应大于寄存器延时、组合逻辑延时、和 目标寄存器建立时间的和
本寄存器有效输出通过组合逻辑的延时应该大于 目的寄存器的保持时间要求
2006.4
9
正负Clock Skew
In CLK R1 D Q tCLK1 delay (a) Positive skew R1 D Q tCLK1 delay (b) Negative skew
2006.4 18
• Simple Register to Register Analysis with Numbers
reg1 in 2.993 clk
µtco 0.11
p2p 2.266 2.521 clk’
reg2 out
µtsu 0.082
setup relationship = latch edge – launch edge = 5.0 – 0.0 = 5.0 clock skew = clk’ – clk = 2.521 - 2.993 = -0.472 p2p required = setup relationship + clock skew – µtCO – µtSU = 5.0 + (-0.472) – 0.11 – 0.082 = 4.336 slack = p2p required – p2p delay = 4.336 – 2.266 = 2.07
2006.4 10
Combinational Logic
R2 D Q tCLK2 delay Combinational Logic
R3 D Q tCLK3
•••
In
Combinational Logic
R2 D Q tCLK2 delay Combinational Logic
R3 D Q tCLK3 CLK
CLK
tc-q:寄存器从有效时钟沿到来到输出有效的最大时间 tc-q,cd:时钟沿到来到输出有效的最小时间 tsu:建立时间,在时钟有效沿到来之前寄存器数据输入应保持稳定的 时间,它间接约束了组合逻辑的最大延时 thold:保持时间,在寄存器数据输入的引脚的数据在系统有效时钟沿 到来后需要保持稳定的时间,它间接约束了组合逻辑的最小延时 tlogic:组合逻辑最大延时 tlogic,cd:组合逻辑最小延时
Time borrow
2006.4 36
基于Latch进行设计2
LATCH工作 过程
LATCH等效的寄存器 工作时序
CLk1
2006.4
CLB_A + CLB_B
CLB_C… CLk1
37
基于Latch进行设计3
由上页Slide可以看出基于Latch设计和基于寄存 器设计,其在数据输入与数据输出接口上可以获得 相同的效果 但是,在基于Latch的设计中,组合逻辑被电平 敏感的Latch分离,它可以使一个组合逻辑使用前 一个组合逻辑剩余的时间,也就是Time Borrow或 者Slack borrowing Time Borrow可以使电路时钟边界处的逻辑使用 超过一个时钟周期宽度的时间,从而可以使电路运 行速率高于关键路径的所约束的时钟频率!
•••
正Clock Skew对电路性能的影响
正的Skew减少了时钟周 期宽度,可以提高系统 的时钟频率 CLK1相对于CLK2提前,由 于第二级寄存器对保持时间 的要求,很容易发生使建立 时间得不到满足
2006.4 11
负Clock Skew对电路性能的影响
δ 为负
负的Skew要求正常工作 时的时钟周期变宽 负的Skew时,第二级寄存 器的保持时间肯定能够得到 满足
2006.4 13
Clock Jitter对电路性能的影响
tjitter是两个相邻时 钟周期宽度之差 由此可见,Clock Jitter要求正常工作的系统时钟 宽度增加,从而也就降低了系统工作频率
2006.4 14
Clock Skew和Jitter对电路性能的影响
δ 为负
由此可见,Skew和Jitter要求系统时钟宽度增加,从而系 统频率降低,性能变差
17
• Simple Register to Register Analysis
reg1 in clk clk’ p2p reg2
本张slide和下一张 slide来自Altera公司 培训资料,版权归原 作者所有
out
setup relationship = latch edge – launch edge clock skew = clk’ – clk p2p required = setup relationship + clock skew – µtCO - µtSU slack = p2p required – p2p delay launch clk latch clk’
2006.4
26
PLL4
Altera中的 PLL
2006.4
27
DLL(Delay Locked Loop)
原始时钟输入 Phase Detector Charge pump
VCDL: Voltage-controlled delay line
VCDL 时钟输出
基本思想是通过控制线延时来调整时钟相位,使其相位对齐
系统设计中时钟、时序相关问题
2006.4
1
内容 1,跟时钟相关的参数概念与分析 2,时钟树 3,PLL与DLL 4,基于Latch进行设计与Time Borrow 5,ASIC设计中的时钟使用的基本原则 6,门控时钟设计的相关技术 7,改善系统时钟性能以及提高性能速度 的几种方法
2006.4 2
Latch的参数
4
34
内容 1,跟时钟相关的参数概念与分析 2,时钟树 3,PLL与DLL 4,基于Latch进行设计与Time Borrow 5,ASIC设计中的时钟使用的基本原则 6,门控时钟设计的相关技术 7,改善系统时钟性能以及提高性能速度 的几种方法
2006.4 35
基于Latch进行设计
基于时钟沿触发的寄存器进行设计是当前主流且 稳健的设计方法,但两个寄存器之间的Worst Case Logic Path会限制系统的最高运行频率;在 本Worst Case Logic Path限制系统频率的同时, 而在其他寄存器之间的路径却可能处于空闲状态 基于Latch的设计方法拥有更为灵活的时序特 性,它允许在数据的一个锁存阶段(stage)将多余的 时间借给下一个阶段或者从下一个阶段借用时间
2006.4 19
内容 1,跟时钟相关的参数概念与分析 2,时钟树 3,PLL与DLL 4,基于Latch进行设计与Time Borrow 5,ASIC设计中的时钟使用的基本原则 6,门控时钟设计的相关技术 7,改善系统时钟性能以及提高性能速度 的几种方法
2006.4 20
时钟树分布简介
H-树 最基本的时钟 树结构,比较 适合于规则阵 列网络
2006.4
28
DLL2
DLL的一个典型应用时是用在时钟分布时
2006.4
29
DLL4
Xilinx中的DLL
Xilinx中的DLL 的一个应用
2006.4
30
DLL3
Xilinx中的DLL
Xilinx中DCM的结构图
2006.4 31
DLL7
Xilinx中的DLL
CLK0通过时钟网络驱动寄存器,然 后通过反馈线至CLKFB,进行相位 检测,调整相位 Xilinx中DLL的简单功能框图
2006.4 4
Clock Skew
在同一个时钟域或者两个时钟域之间时钟信号到 达寄存器的最大时间差别 产生原因主要有:时钟源到达各端点的路径长度 不同,各端点负载不同,时钟网络中插入的缓冲器 不同等 在两个点之间,可以大体认为Skew是固定的值 注意:Clock Skew影响的是时钟的到达时间不 同,也就是时钟发生相移,并不影响时钟的周期宽 度
2006.4 38
Time Borrow示例
由图中可以看出,通 过Latch对关键路径 进行Time Borrow设 计,可以是逻辑在超 过一个时钟周期的范 围内运行,从而降低 或者消除其对时钟频 率的限制
借得的时间
Time Borrow时逻辑 可以利用的时间
寄存器设计逻辑可以利用的时间
2006.4 39
16
Time Slack
From synopsys
slack = 期望数据到达时间 – 数据实际到达时间 Slack为正,表示数据提前到达,此时组合逻辑 延迟满足条件,Register有足够的建立时间; Slack为负,表示数据比预期的时间晚到达,此 时显然不满足Register的建立时间,不满足约束 ; 2006.4
2006.4 5
Clock Skew2
2006.4
6
Clock Jitter
在某一给定点上,时钟周期宽度的变化,不同的 时钟周期其持续时间可能缩短或者变宽 一般用两个相邻时钟周期之间其周期宽度的最大 变化来表示Clock Jitter
变窄 变宽
2006.4 7
同步设计的时间约束参数
In R1 D Q tCLK1 tc − q, cd tsu, thold tc − q tlogic tlogic, cd Combinational Logic R2 D Q tCLK2
内容 1,跟时钟相关的参数概念与分析 2,时钟树 3,PLL与DLL 4,基于Latch进行设计与Time Borrow 5,ASIC设计中的时钟使用的基本原则 6,门控时钟设计的相关技术 7,改善系统时钟性能以及提高性能速度 的几种方法