同步电路时钟分布的挑战与应对策略
1. 时钟分布的难题
在数字电路设计中,我们通常假设电路中的状态能同时更新,但实际情况并非如此。以同步设计中的触发器或其他时钟子电路为例,理想状态下,它们应在同一时刻对时钟信号做出响应。然而,由于时钟分布网络中驱动器和导线的延迟,各个触发器的切换时间会有所不同,这种时间上的分散被称为时钟偏移(clock skew)。而且,这些延迟在不同时钟周期会略有变化,从而产生时钟抖动(clock jitter)。
时钟信号时间分散的原因众多,主要包括:
- 扇出和负载电容分布不均。
- 不同分支上缓冲器和/或反相器数量不同。
- 时钟缓冲器的驱动强度和时序特性不同。
- 布局寄生效应导致的互连延迟不平衡(如导线长度、厚度、过孔数量,以及平板、边缘和横向电容)。
- 双稳态器件的切换阈值不同。
- 工艺、温度、电压(PTV)以及片上变化(OCV)。
- 地弹和电源压降引起的电源噪声。
- 周围电路开关活动产生的串扰。
过度的时钟信号分散会影响数字电路的正常运行,设计工程师会尽力消除时钟到达时间的系统差异,但由于制造深度和设计水平的限制,仍会存在一定的不均匀性。
1.1 设计目标
设计可靠电路时,需要解决两个问题:
- 了解并降低设计的脆弱性。
- 通过合理的时钟信号分布方式,减少时钟信号的分散。
1.2 相关时序参数
为了研究同步电路的时钟问题,引入以下三个与时钟分布网络相关的时序参数:
-
时钟分布延迟(tdi)
:从时钟源出现时钟沿到电路状态因该时钟沿发生转换的时间间隔。对于集成电路,通常以封装引脚作为时钟源。
-
时钟偏移(tsk)
:同一时钟沿在时钟域内不同位置到达时间的误差。从局部看,指通过信号传播路径连接的两个子电路时钟端的时间差;从全局看,是时钟域内任意两个时钟端到达时间的最大差值,即 max|tsk| = max(tdi) - min(tdi)。
-
时钟抖动(tjt)
:连续时钟沿在同一位置到达时间的变化。
2. 电路对时钟偏移和抖动的容忍度
2.1 基本原理
多年来,人们设计了多种驱动同步数字电路的方案,不同方案对时钟偏移和抖动的敏感性不同,所需硬件资源和对性能的影响也各异。在进行数据传输时,接收子电路的数据调用窗口(由建立时间和保持时间定义)必须完全包含在发送子电路的数据有效窗口内,这是数据正确传输的基本要求。
2.2 单边缘触发单相时钟
2.2.1 硬件资源与工作原理
单边缘触发单相时钟是自动机理论或抽象系统设计中最自然的方法。寄存器由触发器实现,所有触发器由同一时钟沿(即有效沿)触发。每个计算周期从有效时钟沿开始,到下一个有效时钟沿结束,所有瞬态现象必须在一个时钟周期内消失。
2.2.2 详细分析
- 建立条件 :对于一对通过单向数据传播路径连接的触发器,接收触发器的建立条件可表示为 tdi_xmt + tpd_ff_xmt + tpd_c ≤ Tclk + tdi_rcv - tsu_ff_rcv,经转换可得 tpd_ff_xmt + tpd_c + tsu_ff_rcv ≤ Tclk + tsk。从更广泛的角度看,为确保整个时钟域内的建立时间得到满足,需满足 max|tsk| ≤ Tclk - max(tpd_ff + tpd_c + tsu_ff) = Tclk - tlp,其中 tlp 为最长信号传播路径的延迟。这表明时钟偏移和抖动会限制电路的最高时钟频率。
- 保持条件 :根据数据传输的保持要求,可得 tdi_xmt + tcd_ff_xmt + tcd_c ≥ tdi_rcv + tho_ff_rcv,即 tsk ≤ tcd_ff_xmt + tcd_c - tho_ff_rcv。从电路角度看,应满足 max|tsk| ≤ min(tcd_ff + tcd_c - tho_ff) = tsp,其中 tsp 为最短路径的延迟。当两个相邻触发器之间没有组合逻辑时,时钟偏移容限会减小,如移位寄存器。
2.2.3 影响与注意事项
- 时钟偏移会降低单边缘触发单相时钟电路的最大性能,在流水线中,时钟偏移会导致计算时间的浪费,称为时序开销。
- 移位寄存器和扫描路径对时钟偏移特别敏感,扫描路径通常用于测试 VLSI 电路,但由于其触发器之间没有逻辑,容易出现保持时间违反的问题。
- 混合使用不同逻辑系列的单元会增加保持时间的风险,应确保最短污染延迟大于或等于最长保持时间。
- 现代 EDA 工具支持自动保持时间修复,但会增加电路尺寸和能耗。建议在布线阶段进行保持时间修复,并根据最短路径的保持裕量确定延迟缓冲器的插入位置。
以下是单边缘触发单相时钟电路中时序问题及解决方法的表格:
| 时序问题 | 设计过程中发现的解决方法 | 原型制造后发现的解决方法 |
| — | — | — |
| 长路径问题 | 重新设计电路以减少最大传播延迟;延长时钟周期或重新协商 PTV 条件(可能较困难) | 延长时钟周期或重新协商 PTV 条件(可能不可接受) |
| 短路径问题 | 在连续触发器之间插入延迟缓冲器(相对容易) | 调整时钟波形或 PTV 无济于事(致命) |
2.3 双边缘触发单相时钟
2.3.1 硬件资源与工作原理
双边缘触发时钟在计算机内存和主板设计中得到应用,可在不提高时钟频率的情况下提高数据传输速率。它使用特殊的存储元件,在时钟的两个边缘都能触发状态更新,每个计算周期由两个连续的有效时钟沿界定,时钟频率减半,即 Tcp = 1/2Tclk ≥ tlp。
2.3.2 影响
双边缘触发时钟与单边缘触发时钟的分析结果相似,但在时钟频率和能源效率方面有所不同。理论上,双边缘触发时钟可减少时钟网络的充放电能量,但由于其较高的电容负载和电路复杂性,实际节能效果可能有限,通常可降低 10% - 20% 的总功耗。目前,双边缘触发时钟在单元库和 EDA 工具中尚未广泛应用,设计时需先按单边缘触发进行建模,合成后再替换为双边缘触发触发器。
以下是单边缘触发和双边缘触发单相时钟的对比表格:
| 对比项目 | 单边缘触发单相时钟 | 双边缘触发单相时钟 |
| — | — | — |
| 触发方式 | 单边缘触发 | 双边缘触发 |
| 时钟频率 | Tcp = Tclk | Tcp = 1/2Tclk |
| 能源效率 | 时钟网络每计算周期切换两次 | 理论上每计算周期切换一次,实际节能有限 |
| 应用现状 | 广泛应用 | 在 DDR RAM 接口中得到应用,但在单元库和 EDA 工具中未普及 |
mermaid 流程图如下:
graph LR
A[同步电路时钟问题] --> B[时钟分布难题]
B --> C[时钟偏移和抖动的原因]
B --> D[相关时序参数]
A --> E[电路对时钟偏移和抖动的容忍度]
E --> F[单边缘触发单相时钟]
F --> G[硬件资源与工作原理]
F --> H[详细分析]
H --> I[建立条件]
H --> J[保持条件]
F --> K[影响与注意事项]
E --> L[双边缘触发单相时钟]
L --> M[硬件资源与工作原理]
L --> N[影响]
3. 主从触发器时钟方案
3.1 硬件资源与工作原理
主从触发器时钟方案使用主从触发器,它由主锁存器和从锁存器组成。主锁存器在时钟的一个相位(如高电平)接收数据,从锁存器在时钟的另一个相位(如低电平)将主锁存器的数据输出。这样,数据在两个锁存器之间分两个阶段传输,有效地将一个时钟周期分为两个子周期。
3.1.1 工作阶段
- 主锁存阶段 :当时钟为高电平时,主锁存器打开,接收输入数据并锁存。
- 从锁存阶段 :当时钟为低电平时,主锁存器关闭,从锁存器打开,将主锁存器的数据输出。
3.2 详细分析
3.2.1 建立条件
主从触发器的建立条件与单边缘触发和双边缘触发有所不同。由于数据分两个阶段传输,建立时间的要求相对宽松。主锁存器在时钟高电平期间接收数据,只要数据在高电平期间稳定,就可以被正确锁存。假设主锁存器的建立时间为 tsu_m,从锁存器的建立时间为 tsu_s,时钟周期为 Tclk,主锁存阶段的时间为 Thigh,从锁存阶段的时间为 Tlow,则建立条件可表示为:
tdi_xmt + tpd_ff_xmt + tpd_c ≤ Thigh + tdi_rcv - tsu_m
同时,从锁存器的建立条件为:
tdi_xmt + tpd_ff_xmt + tpd_c + Tlow ≤ Tclk + tdi_rcv - tsu_s
3.2.2 保持条件
保持条件也需要考虑两个阶段。主锁存器的保持时间要求在时钟高电平结束后,数据仍需保持稳定一段时间,以确保数据被正确锁存。从锁存器的保持时间要求在时钟低电平结束后,数据保持稳定。假设主锁存器的保持时间为 th_m,从锁存器的保持时间为 th_s,则保持条件可表示为:
tdi_xmt + tcd_ff_xmt + tcd_c ≥ tdi_rcv + th_m
tdi_xmt + tcd_ff_xmt + tcd_c + Tlow ≥ tdi_rcv + th_s
3.3 影响与注意事项
- 优点 :主从触发器时钟方案对时钟偏移和抖动的容忍度较高,因为数据分阶段传输,减少了时钟信号变化对数据传输的影响。
- 缺点 :电路复杂度增加,需要额外的锁存器,增加了硬件资源的消耗。同时,由于分两个阶段传输数据,时钟周期相对较长,可能会影响电路的性能。
- 注意事项 :在设计主从触发器时钟方案时,需要合理分配主锁存阶段和从锁存阶段的时间,以确保数据的正确传输。同时,要注意时钟信号的占空比,避免因占空比不合适导致数据传输错误。
以下是主从触发器时钟方案与其他时钟方案的对比表格:
| 对比项目 | 单边缘触发单相时钟 | 双边缘触发单相时钟 | 主从触发器时钟方案 |
| — | — | — | — |
| 触发方式 | 单边缘触发 | 双边缘触发 | 分阶段触发 |
| 时钟频率 | Tcp = Tclk | Tcp = 1/2Tclk | 需合理分配阶段时间 |
| 对时钟偏移和抖动容忍度 | 较低 | 一般 | 较高 |
| 硬件资源消耗 | 较少 | 一般 | 较多 |
| 应用场景 | 简单电路 | DDR 相关电路 | 对时钟稳定性要求高的电路 |
4. 多相时钟方案
4.1 硬件资源与工作原理
多相时钟方案使用多个相位不同的时钟信号,将一个时钟周期分为多个子周期。每个子周期对应一个时钟相位,不同的电路模块在不同的时钟相位下工作。例如,在一个四相时钟方案中,时钟信号被分为四个相位,每个相位相差 90 度。
4.1.1 工作模式
- 并行工作模式 :不同的电路模块可以在不同的时钟相位下并行工作,提高了电路的整体性能。例如,在一个处理器中,指令译码模块可以在一个相位工作,数据读取模块可以在另一个相位工作。
- 流水线工作模式 :数据可以在不同的时钟相位下依次通过多个电路模块,形成流水线。这样可以提高数据处理的效率,减少数据处理的延迟。
4.2 详细分析
4.2.1 建立条件
多相时钟方案的建立条件需要考虑每个时钟相位的时间和数据传输的延迟。假设时钟周期为 Tclk,分为 n 个相位,每个相位的时间为 Tphase = Tclk / n。对于两个相邻的电路模块,数据从一个模块传输到另一个模块需要满足建立时间的要求。假设前一个模块的输出延迟为 tpd_prev,后一个模块的建立时间为 tsu_next,则建立条件可表示为:
tdi_xmt + tpd_prev + tpd_c ≤ Tphase + tdi_rcv - tsu_next
4.2.2 保持条件
保持条件同样需要考虑每个时钟相位的时间。数据在传输过程中,需要在接收模块的时钟相位内保持稳定。假设前一个模块的污染延迟为 tcd_prev,后一个模块的保持时间为 th_next,则保持条件可表示为:
tdi_xmt + tcd_prev + tcd_c ≥ tdi_rcv + th_next
4.3 影响与注意事项
- 优点 :多相时钟方案可以提高电路的性能和效率,通过并行工作和流水线工作模式,减少了数据处理的延迟。同时,它对时钟偏移和抖动的容忍度也相对较高,因为不同的电路模块在不同的时钟相位下工作,减少了时钟信号变化对数据传输的影响。
- 缺点 :硬件资源消耗较大,需要多个时钟信号生成电路和相位控制电路。同时,时钟信号的相位同步要求较高,如果相位偏差过大,会导致数据传输错误。
- 注意事项 :在设计多相时钟方案时,需要精确控制时钟信号的相位和占空比。同时,要考虑电路模块之间的相互影响,避免因相位冲突导致数据传输错误。
以下是几种时钟方案的综合对比表格:
| 对比项目 | 单边缘触发单相时钟 | 双边缘触发单相时钟 | 主从触发器时钟方案 | 多相时钟方案 |
| — | — | — | — | — |
| 触发方式 | 单边缘触发 | 双边缘触发 | 分阶段触发 | 多相位触发 |
| 时钟频率 | Tcp = Tclk | Tcp = 1/2Tclk | 需合理分配阶段时间 | 灵活分配相位时间 |
| 对时钟偏移和抖动容忍度 | 较低 | 一般 | 较高 | 较高 |
| 硬件资源消耗 | 较少 | 一般 | 较多 | 最多 |
| 应用场景 | 简单电路 | DDR 相关电路 | 对时钟稳定性要求高的电路 | 高性能电路 |
mermaid 流程图如下:
graph LR
A[同步电路时钟问题] --> B[时钟分布难题]
B --> C[时钟偏移和抖动的原因]
B --> D[相关时序参数]
A --> E[电路对时钟偏移和抖动的容忍度]
E --> F[单边缘触发单相时钟]
E --> G[双边缘触发单相时钟]
E --> H[主从触发器时钟方案]
E --> I[多相时钟方案]
F --> F1[硬件资源与工作原理]
F --> F2[详细分析]
F --> F3[影响与注意事项]
G --> G1[硬件资源与工作原理]
G --> G2[影响]
H --> H1[硬件资源与工作原理]
H --> H2[详细分析]
H --> H3[影响与注意事项]
I --> I1[硬件资源与工作原理]
I --> I2[详细分析]
I --> I3[影响与注意事项]
综上所述,不同的时钟方案各有优缺点,在实际设计中,需要根据电路的具体需求和性能要求,选择合适的时钟方案。同时,要充分考虑时钟偏移和抖动对电路的影响,采取相应的措施来减少这些影响,确保电路的稳定运行。
超级会员免费看
564

被折叠的 条评论
为什么被折叠?



