同步电路时钟控制与门控技术解析
1. 传统带使能的反馈型寄存器
在多数设计中,部分触发器的运行速率低于其他触发器。例如,流水线寄存器与模式寄存器相比,模式寄存器能在数百万个时钟周期内甚至直到断电都保持其状态。这种情况表明可使用使能信号来控制寄存器的操作,以下是相关代码片段:
process (Clk_C)
begin
-- 由时钟上升沿触发的活动
if Clk_C’event and Clk_C=’1’ then
if Ena_S=’1’ then
-- 控制信号
State_P <= State_N;
-- 寄存器更新
end if;
end if;
end process;
always_ff @(posedge Clk_C)
// 由时钟上升沿触发的活动
if (Ena_S)
// 控制信号
State_P <= State_N;
// 寄存器更新
当出现这样的代码时,综合器会调用一个多路复用器,在使能信号的控制下,围绕基本的 D 型触发器闭合和打开一个反馈回路。由于生成的电路简单、健壮,并且符合同步设计规则,这是一种安全且通常合理的选择。一些库确实提供了将触发器和多路复用器组合在单个单元中的 E 型触发器。
不过,这种方法也有缺点。它每位需要一个相当昂贵的多路复用器,并且能源利用效率不高。这是因为禁用的触发器的时钟输入的任何切换都会浪费能量,用于对相关节点电容进行无意义的放电和充电。而且,寄存器越宽,在能量和晶体管数量方面的开销就越大。
2. 时钟门控的不同实现方法
2.1 粗略且不安全的时钟门控方法
使用简单的与门来关闭正边沿触发的 D 型触发器的时钟是很诱人的,但也非常危险。这是因为在时钟输入 Clk_C 为 1 时,使能信号 Ena_S 的任何毛刺都会传递到门控时钟 Ckg_C。所有下游双稳态器件在时钟的第一阶段都面临危险,这可能会危及它们的正确功能。为了使电路正常工作,设计人员需要进行广泛的危险控制,但这会带来许多不良影响,如复杂的时序分析、用于抑制危险的冗余逻辑、精细的延迟调整、布局依赖、困难的设计验证、低设计生产率以及其他临时(即非自定时)异步操作的副作用。
2.2 在特定条件下可能有效的简单时钟门控方案
图 7.27c 所示的电路表现较好,因为时钟网络中的非与非门在时钟的第二阶段而不是第一阶段对毛刺透明。要使这种方法安全运行,需要满足以下条件:
- 时钟 Clk_C 上的被动时钟边沿的时间位置必须始终明确。
- 在任何情况下,使能信号 Ena_S 上的所有瞬态都必须在第一个时钟阶段结束前消失。
- 在布局后重新检查门控时钟 Ckg_C 是否存在危险,在时序分析期间检查使能信号 Ena_S 是否存在危险条件。
- 在时钟分配网络中考虑门引入的额外延迟。
确保始终满足所有这些要求会使设计过程变得复杂。不过,这种方法在时钟保持禁用的期间能最小化电路开销、时钟负载和能量消耗。
2.3 安全的时钟门控方案
更可靠的方案基于特殊的时钟门,这是一种三端口单元,在 ENA 端接受使能信号,在 CLK 端接受主时钟,并在 CKG 端输出间歇性时钟信号,该信号仅在使能信号要求时才会切换。在边沿触发时钟的情况下,这种时钟门的规格如下:
- 无延迟,即使能输入必须影响下一个有效时钟边沿。
- 门控时钟输出 CKG 在所有情况下都必须无危险。
- 使能输入 ENA 必须对危险免疫(假设施加在 CLK 上的输入时钟无毛刺)。
- 施加在使能输入 ENA 上的唯一时序约束必须是遵守合理的建立和保持时间(与普通 E 型触发器完全相同),任何从组合逻辑产生的信号都必须有资格作为使能信号。
- 门控时钟必须与输入时钟具有相同的占空比(仅适用于单边沿触发)。
- 从 CLK 端到 CKG 端的传播延迟必须小且固定。
- 总体功耗必须低,尤其是在时钟禁用时。
- 电路复位后,门控时钟应具有可预测的极性。
以下是单边沿和双边沿触发电路中安全条件时钟控制的真值表:
| ENA | CLK | CKG |
| — | — | — |
| 1 | ↑ | ↑ (转发有效时钟边沿) |
| 0 | - | 钳位输出为零 |
| ↑ | 1 | 保持输出 |
| ↓ | 1 | 保持输出 |
| ↑ | - | 保持输出 |
| ↓ | - | 保持输出 |
| ENA | CLK | CKG |
|---|---|---|
| 1 | ↑ | CKG 切换输出 |
| 1 | ↓ | CKG 切换输出 |
| - | 0 | 保持输出 |
理想情况下,时钟门可从标准单元库中获得。如果没有,应在 HDL 综合开始前添加这些组件。必须通过晶体管级仿真检查是否符合规格,并获得数值时序数据,就像对任何其他库单元一样。
3. 不同时钟门控技术的比较
以下表格比较了单边沿触发时钟的四种条件时钟控制技术:
| 使能/禁用机制 | 反馈 via MUX | AND 门 | NOT - NAND 门 | 基于锁存器的时钟门 |
| — | — | — | — | — |
| 图示 | 图 7.26b | 图 7.27a | 图 7.27c | 图 7.28b |
| 健壮性 | 安全 | 不安全 | 易受影响 | 安全 |
| w 位寄存器的电路开销 [GE] | 1w … 3w
a
| 1.5 | 1.5 | ≈4.5 |
| 能量平衡 | 如果大部分时间禁用则浪费 | 最优 | 最优 | 如果许多触发器一起门控则良好 |
| 对时钟树综合的影响 | 无 | 必须补偿偏斜 | 必须补偿偏斜 | 必须补偿偏斜 |
| 设计工作量 | 最小,仅 HDL | 不可行 | 每个时钟网络都需重复 | 一次性建立单元 |
a 下限指 E 型触发器库单元,上限指单独的 MUX。
在追求最佳能源效率的过程中,设计师面临压力,需要采用多个扇出较小的本地时钟,因此更倾向于非与非型门而不是基于锁存器的时钟门。但要记住,除非你确切知道自己在做什么,否则这是危险的。此外,当需要通过条件层次结构来控制本地时钟时,需要特别注意。最后,要记住扫描测试要求扫描路径中的所有触发器在扫描输入和扫描输出操作期间都被启用。
在选择时钟门控方案之前,建议检查可用的 EDA 工具套件在时钟树生成过程中能够正确处理哪些子电路。
4. 示例警告
为了提高能源效率,一款作为虚拟组件销售的低功耗 DSP 内核的开发者设计了复杂的时钟和时钟门控方案,这些方案在基于单元的 ASIC 中能够正确综合。然而,当他们的一位客户要求使用现场可编程逻辑进行快速原型设计以加速软件开发时,问题就出现了。目标 FPGA 中用于时钟分配的网络和缓冲器相对较少,不足以容纳复杂的细粒度时钟门控方案。更糟糕的是,由于基于锁存器的设计中时钟门控与功能操作在许多地方相互纠缠,恢复到标准 E 型触发器变得极其困难。
5. 良好时钟方案的要求
一个好的时钟方案和 HDL 编码风格必须始终允许在使能控制的双稳态器件和时钟门控之间进行直接转换,而不影响功能行为。此外,它还应与 ASIC 和现场可编程逻辑器件兼容。
6. 时钟工程的总结
时钟工程的主要问题不是缺乏解决方案,而是有太多不同选择。严格遵循一致的时钟纪律对于成功设计大型可靠数字电路至关重要。以下是一些不同时钟纪律的特点:
-
边沿触发时钟纪律
:概念上最简单,但对时钟偏斜和抖动的容忍度小,需要仔细平衡时钟分配网络,直至物理设计。仔细的时序验证至关重要,固定保持时间可能会有所帮助。单边沿触发的单相时钟在 ASIC 设计师和 EDA 供应商中最受欢迎。
-
基于锁存器的时钟纪律
:所有具有非重叠时钟的基于锁存器的时钟纪律对偏斜和抖动具有较大的容忍度,但仅在非对称情况下会牺牲性能。对称的电平敏感两相时钟为优化时钟子系统提供了空间,可用于提高性能或能源效率。将边沿触发的单相设计转换为等效的非对称电平敏感两相设计很简单,这对设计后一类电路非常有帮助。
-
电平敏感单相时钟
:由于其对稳定的污染和互连延迟的致命依赖,几乎不适用于 IC。
此外,由第三方 HDL 代码合成的宏单元、兆单元和子电路往往会表现出意外、不良且通常未记录的时序特征,如过长的保持时间、大量的内部时钟分配延迟、缺乏足够的时钟缓冲器、上升沿和下降沿触发触发器的混合、电平敏感和边沿触发双稳态器件的组合等。需要注意这些特点。
经验表明,任何偏离简单的单相边沿触发触发器方法都会使设计过程变得复杂,并需要更多的工程努力。在存在异步子电路和结构、混合时钟方案、未时钟控制的存储器或其他时序特性与标准触发器不兼容的宏单元、多个时钟域、多周期路径、条件时钟以及基于锁存器的设计和双边沿触发等情况时,从接口设计到时序验证和测试设计(DFT)的几乎所有事情都会变得更加难以处理。
理想情况下,人们可以设想一种综合工具,它接受某种功能模型,并允许设计师在生成电路网表之前从更流行的时钟纪律中进行选择。但商业 HDL 软件并非如此,设计师在选择不同的时钟纪律时必须调整其 RTL 源代码。
一个好的时钟分配网络应具有低时钟偏斜和抖动、快速的时钟斜率、适度的分配延迟以及对工艺、温度和电压变化(PTV)和自动布局布线(P&R)产生的各种电路布置的良好容忍度。虽然分布式树和混合时钟分配网络占主导地位,但在任何情况下,仔细的设计和布局后时序验证都至关重要。
设计时钟分配网络应被视为后端设计的一部分。在分布式时钟缓冲的情况下,使用可靠的时钟树生成器来合成、放置和路由时钟分配网络。切勿将时钟树插入委托给标准逻辑综合工具,因为这些产品通常不是为处理时钟分配而设计的。
电路仿真不足以检测与偏斜相关的问题。相反,电路及其时钟分配网络必须进行静态时序验证。在同步设计中,这基本上意味着检查任意两个双稳态器件之间所有信号传播路径上的建立和保持条件。必须通过使用从布局提取中获得的布局后网表来考虑布局寄生效应,用于此目的的软件工具很常见。
条件时钟需要特别注意,因为它会干扰扫描测试,而且最简单和最有效的时钟门很容易出现故障。在时钟分配网络中存在除缓冲器和反相器之外的逻辑门时,在设计审查期间应始终引起专家的警觉。
大多数单元库在编写时没有考虑特定的时钟纪律或时钟分配方案。因此,在评估时钟策略时,不要被设计环境的任意特征所误导。应首先考虑系统要求,包括与要集成在同一芯片上的其他子系统的兼容性、可用的库元素(如触发器、锁存器、LSSD 元素、存储器、时钟驱动器、时钟门、PLL 等)及其相关的时序数据、用于负载估计、布局提取、电路仿真、时序验证、时钟树生成和电路综合的工具、所使用的时序模型的准确性、用于插入测试结构的软件工具、用于生成和分级测试向量的 EDA 工具、可用的硬件测试设备以及个人经验。
随着特征尺寸和时钟周期的不断缩小,时钟偏斜和抖动问题变得更加严重。幸运的是,如今的半导体制造工艺提供了许多低电阻金属层,设计师可以利用这些层进行更好的时钟分配。
以下是最重要的时钟纪律及其与时钟分配方案的兼容性和使用情况的比较:
| 同步时钟纪律 | 单边沿触发 | 双边沿触发 | 两相(对称) | 两相(非对称) | 电平敏感单相 |
| — | — | — | — | — | — |
| 每个计算阶段的双稳态器件 | SETFF | DETFF | 两个锁存器 | 锁存器 | 锁存器 |
| 时钟网络,布线资源 | 1 | 1 | 2 | 2 | 1 |
| 相对时钟功率(近似) | 1 · 1 · 2 | 1 · 1.3 · 1 | 2 · 1 | 2 · 2 | 2 · 1 |
| 所有时序约束单边 | 是 | 是 | 是 | 是 | 是 |
| 相对容忍偏斜 | 否 | 否 | 是 | 是 | 否 |
| 允许时间借用 | 不适用 | 不适用 | 是 | 否 | 不适用 |
| 时钟周期利用率 | ≤1 | ≤1 | ≤1 | < 1 | ≤1 |
| 功能锁存器 | [0,1] | [0,1] | [0,1,2] | [0,1] | [0,1,2] |
| EDA 支持 | 全面 | 有限 | 有限 | 有限 | 有限 |
| 关键质量 | 简洁、直接 | 较慢的时钟 | 高度灵活 | 易于推导 | 高风险、繁琐 |
| 结合使用 | 过去的 ASIC、DEC Alpha | DDR 电路 | 一些 ASIC | IBM ASIC | 不适用 |
| 结合使用 | 大多数 ASIC | | | | |
7. 问题
以下是一些关于时钟相关的问题,用于进一步思考和实践:
1. 对于本文讨论的所有时钟纪律,在 Anceau 图中可视化其偏斜裕度。使用不同颜色表示以下三种情况的裕度:(a) 与电路运行速度有关;(b) 除非相关组件有非零延迟,否则会消失;(c) 与两者都无关。
2. IC 设计的老手们早就知道边沿触发的移位寄存器特别容易出现故障。作为补救措施,他们在物理设计时通常会使时钟和数据的流向相反,例如在数据从左向右传输的移位寄存器中,让时钟线从右向左运行。解释为什么这样做有帮助。
3. 重新考虑表 7.2 中给出的触发器时序数据。你认为这是一个性能良好的触发器吗?还是它施加了难以满足的时序条件?
4. 一些设计师喜欢在同一时钟域中结合使用上升沿触发的触发器和下降沿触发的触发器。分析这种方案的时序特性,并讨论其优点(如对偏斜的容忍度、性能、扫描路径插入、能源效率、设计验证、工程工作量等)。它是否比本文讨论的时钟纪律有任何优势?
5. 另一种边沿触发时钟的方法使用由三个锁存器而不是两个锁存器构成的触发器。考虑一个将所有标准触发器替换为这种双稳态器件的电路,并进行与之前相同的分析。
6. 图 7.30 所示的电路介于单边沿触发和电平敏感单相时钟之间。用(脉冲时钟)锁存器替换部分触发器的动机是为了提高能源效率。与更复杂的主从触发器相比,锁存器的时钟负载更轻,节点数量和开关活动更少,因此有望节省能源。只有当两个连续双稳态器件之间的组合逻辑能够证明仅由于电路固有的污染延迟就满足接收器的建立和保持时间条件时,才进行替换,即无需额外的门或布线迂回。假设时钟频率与原始电路相同,绘制 Anceau 图,确定所有相关的建立和保持裕度,并以更正式的方式制定适当的替换规则,同时评论这种混合时钟方案的可行性和有效性。
7. 重新考虑图 7.23 中的时序数据,计算 FPGA 数据调用窗口在各种情况下的长度。你观察到了什么?能给出解释吗?
8. 假设你想在一个由标准单元库设计的时钟域中包含一个片上 RAM。边沿触发的同步 RAM 要与一个 14 位地址寄存器和两个 24 位数据寄存器(一个用于读取,一个用于写入)接口。为了简单起见,假设所有触发器都是相同的。RAM 和触发器都在上升沿触发,它们的时序数据如下:
| 单元 | tpd [ns] | tcd [ns] | tsu [ns] | tho [ns] |
| — | — | — | — | — |
| 触发器 | 0.5 | 0.2 | 0.3 | 0.1 |
| RAM 宏单元 | 2.5 | 1.5 | 1.0 | 0.8 |
- (a) 假设偏斜为零,如果电路要以 250 MHz 的时钟频率运行,估计建立和保持裕度。困难在哪里?
- (b) 提出几种解决问题的建议并进行评估。
- (c) 研究在 RAM 宏单元的各种输入和输出线中插入一些延迟 τ 的选项。编制一个表格,列出在以下情况下插入延迟对 RAM 表观时序数据的影响:(α) 在地址和数据输入中;(β) 在数据输出中;(γ) 在时钟输入中。
- (d) 故意设计时钟树,使发送到 RAM 的时钟信号稍微延迟或提前,结果会怎样?其中一种方法有帮助吗?
- (e) 你能想象在哪些情况下应用这些技巧是有意义的吗?通过设计一个精心不平衡的时钟分配网络来提高性能是否可行?
- 一款 20 世纪 90 年代的商业综合工具声称通过在米利型自动机的所有输入和输出线上添加锁存器来构建无危险输出的有限状态机(FSM)。这些额外的锁存器由驱动边沿触发状态寄存器的相同时钟信号控制,以便始终使输入锁存器透明而输出锁存器保持,或者反之。找出输出应该何时切换。由于两组锁存器不允许同时透明,因此认为输出与异步输入变化隔离。证明这并不总是正确的。
- 图 7.22 说明了时钟分配延迟对 I/O 时序的影响。为一个具有寄存器输入和输出的类似电路提出一个修订后的 Anceau 图。
- 图 7.31 显示了两个使用时钟门控的时钟分配树。本地时钟 Ckg1_C、Ckg2_C、Ckg3_C 和 Ckg34_C 是否激活显然取决于电路内部生成的使能信号 Ena1_S 到 Ena4_S。电路测试应通过一个从 Scm_TI 扫描模式终端开启的全扫描路径进行。然而,图 7.31a 包含四个疏忽。找出它们并解释问题所在。
通过对这些问题的思考和解答,可以更深入地理解时钟相关的知识和技术,提高在实际设计中处理时钟问题的能力。
同步电路时钟控制与门控技术解析
8. 各时钟门控技术操作步骤分析
8.1 传统带使能的反馈型寄存器操作
-
代码编写
:在 VHDL 中,使用
process语句结合时钟信号的上升沿判断和使能信号的判断来控制寄存器更新,如代码所示:
process (Clk_C)
begin
-- 由时钟上升沿触发的活动
if Clk_C’event and Clk_C=’1’ then
if Ena_S=’1’ then
-- 控制信号
State_P <= State_N;
-- 寄存器更新
end if;
end if;
end process;
在 Verilog 中,使用
always_ff
块结合时钟的上升沿触发和使能信号判断,代码如下:
always_ff @(posedge Clk_C)
// 由时钟上升沿触发的活动
if (Ena_S)
// 控制信号
State_P <= State_N;
// 寄存器更新
- 综合处理 :综合器会根据代码调用多路复用器,在使能信号控制下围绕基本 D 型触发器闭合和打开反馈回路。若使用 E 型触发器库单元,可简化设计,但需注意其与单独 MUX 实现的开销差异。
8.2 安全时钟门控方案操作
- 选择时钟门 :优先从标准单元库中选择合适的时钟门。若库中没有,需在 HDL 综合开始前添加。
- 规格检查 :通过晶体管级仿真检查时钟门是否符合规格要求,如无延迟、门控时钟输出无危险、使能输入对危险免疫等,并获取数值时序数据。
- 时钟树设计 :在时钟树生成过程中,考虑从 CLK 端到 CKG 端的传播延迟,确保时钟分配网络的正确性。
9. 不同时钟纪律的应用场景分析
9.1 边沿触发时钟纪律应用
- ASIC 设计 :单边沿触发的单相时钟在 ASIC 设计中应用广泛,因其概念简单,便于设计和实现。但由于对时钟偏斜和抖动容忍度小,需要在物理设计阶段仔细平衡时钟分配网络,进行严格的时序验证。
- 高速电路 :在对速度要求较高的电路中,边沿触发时钟纪律能保证信号的准确传输和处理,但需要精确控制时钟信号的质量。
9.2 基于锁存器的时钟纪律应用
- 对偏斜和抖动敏感的电路 :具有非重叠时钟的基于锁存器的时钟纪律对偏斜和抖动具有较大容忍度,适用于对时钟信号质量要求较高的电路。
- 性能与能源效率优化 :对称的电平敏感两相时钟为优化时钟子系统提供了空间,可根据具体需求选择优化性能或能源效率。
9.3 电平敏感单相时钟应用
由于其对稳定的污染和互连延迟的致命依赖,电平敏感单相时钟几乎不适用于 IC 设计,但在某些对延迟要求不高且对电路简单性有需求的场景中可能有一定应用。
10. 时钟分配网络设计要点
10.1 设计原则
- 低偏斜和抖动 :确保时钟信号在传输过程中的偏斜和抖动最小,以保证电路的稳定性和可靠性。
- 快速时钟斜率 :快速的时钟斜率有助于提高电路的响应速度和性能。
- 适度分配延迟 :合理控制时钟信号的分配延迟,避免因延迟过大影响电路的正常工作。
- 耐受 PTV 和 OCV :对工艺、温度和电压变化(PTV)以及自动布局布线(P&R)产生的各种电路布置具有良好的容忍度。
10.2 设计流程
- 规划阶段 :根据电路的需求和特点,选择合适的时钟分配方案,如分布式树或混合时钟分配网络。
- 布局阶段 :使用可靠的时钟树生成器进行时钟分配网络的合成、放置和路由,避免将时钟树插入委托给标准逻辑综合工具。
- 验证阶段 :进行布局后时序验证,通过静态时序分析检查任意两个双稳态器件之间所有信号传播路径上的建立和保持条件,确保时钟分配网络的正确性。
11. 解决时钟相关问题的思路
11.1 偏斜和抖动问题
随着特征尺寸和时钟周期的不断缩小,时钟偏斜和抖动问题变得更加严重。可利用现代半导体制造工艺提供的低电阻金属层进行更好的时钟分配,同时在设计阶段采用合理的时钟分配方案和时序验证方法来解决。
11.2 时钟门控问题
在选择时钟门控方案时,要充分考虑其健壮性、电路开销、能量平衡等因素。对于复杂的时钟门控方案,如细粒度时钟门控,要确保目标硬件平台有足够的资源支持。同时,要注意时钟门控与扫描测试的兼容性,保证扫描路径中的所有触发器在扫描输入和扫描输出操作期间都被启用。
11.3 混合时钟方案问题
当设计中存在混合时钟方案时,如边沿触发与电平敏感时钟的混合,要特别注意不同时钟纪律之间的兼容性和时序关系。在设计过程中,要进行严格的时序分析和验证,确保电路的正确运行。
12. 总结与展望
12.1 总结
同步电路的时钟控制和门控技术是数字电路设计中的关键环节。不同的时钟纪律和时钟门控方案各有优缺点,适用于不同的应用场景。在设计过程中,要严格遵循一致的时钟纪律,综合考虑电路的性能、能源效率、可靠性等因素,选择合适的时钟方案和门控技术。同时,要重视时钟分配网络的设计和时序验证,确保电路的正常运行。
12.2 展望
随着半导体技术的不断发展,时钟相关的问题将面临新的挑战和机遇。未来,可能会出现更先进的时钟分配技术和时钟门控方案,以满足更高性能、更低功耗的电路设计需求。同时,人工智能和机器学习等技术也可能会应用于时钟设计和验证过程中,提高设计的效率和准确性。设计师需要不断学习和掌握新的技术和方法,以应对未来的挑战。
以下是一个简单的 mermaid 流程图,展示时钟分配网络的设计流程:
graph LR
A[规划阶段] --> B[选择时钟分配方案]
B --> C[布局阶段]
C --> D[使用时钟树生成器]
D --> E[合成、放置和路由]
E --> F[验证阶段]
F --> G[布局后时序验证]
G --> H[检查建立和保持条件]
通过以上内容,我们对同步电路的时钟控制和门控技术有了更深入的了解,希望这些知识能帮助设计师在实际工作中更好地处理时钟相关的问题。
超级会员免费看
34

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



