加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

组合时钟门控Vs顺序时钟门控

2021/01/07
425
阅读需 13 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

关于 clock gating 已经写过:《clock gating | 从 ICG cell 在 library 中的定义说起》《clock gating | Gating 的插入与验证》《clock gating | clock gating 的 timing check》《clock gating | ODC-based Clock Gating》。最近在学习 Joules 20.1 update training 时又接触到了两个新概念:combinational clock gating 跟 sequential clock gating, 觍着老脸去问研发大爷这是啥,大爷说:你丫不能自己谷歌一下吗?于是在 ElectronicDesign 上找到了一篇好文章,深入简出地描述了两者的区别。

概括来说,combinational clock gating 就是通常所说的 clock gating, 它不改变电路的逻辑功能,对设计实现影响没有,但是它只能省掉 clock 的多余 toggle. 

Sequential clock gating 的搜索空间更大,在时序路径多级寄存器之间进行分析,找到所有冗余的翻转,该类 Gating 通常有两种:

  • 基于可观察性的时钟门控,对寄存器的写操作在下游是不可观察的。以下是第一种类型的示例,在某些情况下,在设计输出端永远不会观察到对寄存器的写操作。如果信号 vld_2 在特定周期中为低电平,则寄存器 dout 会保留其较早的值。这意味着在寄存器 d_2(回退一个周期,在 d_1,两个回退周期)中发生的写操作是多余的。基于可观察性的时钟门控可识别此冗余写入,并基于 vld 信号添加合适的门控条件。

 

  • 基于稳定性的时钟门控,写入要求对设计进行多周期分析。以下显示了第二种类型的冗余写入的示例。这是在连续的时钟周期内将相同的值写入寄存器的地方。当信号 vld_1 和 vld_2 为低电平时,寄存器 f_1 和 g_1 保持其先前保持的值。因此,在下一个时钟周期写入寄存器 f_2 和 g_2 的值与在前一个周期写入寄存器 f_2 和 g_2 的值相同。基于稳定性的时钟门控可识别冗余写入,并使用针对 f_2 的 vld_1 的一个周期延迟版本(以及类似地针对 g_2 的 vld_2 的一个周期延迟版本)来添加合适的门控条件。

 

下面一部分原文照办,包括:

如何分析设计找到可以插入 Sequential clock gating 的点。

Sequential clock gating 可以多省哪些 power.

Sequential clock gating 对设计验证有哪些影响。

目前业界如何做 Sequential clock gating.

识别顺序时钟门控机会

组合时钟门控已成为 RTL 综合工具的一部分,并已成为优化功率的可靠工具。综合工具很少会错过组合的时钟门控机会。但是,在某些情况下,对寄存器的自分配使用复杂的逻辑(跨越多个设计层次结构或编写为单独的函数),这可能会导致 RTL 综合工具难以识别组合时钟门控。在这种情况下,设计人员可以简化复杂的逻辑,并将其重写为寄存器分配的“ if”语句,从而简化 RTL 综合工具的工作。但是,确定顺序时钟门控机会不在 RTL 综合工具的范围内。具有功耗意识的设计人员尝试分析寄存器的冗余访问(不可观察或稳定的写入),并寻找可以关闭此类访问的条件。没有一个已知的方法可以实现这一目标,并且随着时间的推移,设计师大多会发展这种专业知识。即使这样,在没有适当帮助的情况下,该过程也可能非常繁琐且容易出错。向市场推出的顺序时钟门控工具可以帮助手动探索顺序时钟门控机会,也可以自动进行。设计人员可以根据自己的计划和工具的舒适性来选择所需的方法(手动还是自动)。该工具必须满足一些要求,以使 RTL 设计人员的工作更轻松,无论它是在自动还是手动探索模式下使用:

  • 通过消除对寄存器的冗余写入来获得关于可能的总节电的早期反馈时钟门控表达式以及有关如何将其放入 RTL 的说明,此外,还提供了一种更改表达式的方式,以便用户可以对其进行配置以满足自己的要求(易于时钟门控表达式的节电和面积成本的准确估算如果工具错过了创建一些时钟门控表达式的时间,则必须向用户提供有关潜在节电和更改的信息(RTL,工具约束等),用户可以用来帮助实现这些表达式

这样的流程将使设计人员尽早通知设计中是否存在巨大的功耗优化潜力。如果不是这样,则设计人员可以只专注于目标,例如面积和性能。范围级别还将指示应该为功耗优化付出多少努力。由于设计人员了解每种潜在更改的功率影响(包括时钟门控表达式,RTL 或约束更改,具有最大节电潜力的寄存器等),因此设计人员可以根据交货时间表确定更改的优先级。在顺序时钟门控工具运行完成后,设计人员将知道该设计已实现了多少潜在的总功耗节省。

顺序时钟门控对功率的影响

估计组合时钟门控表达式的省电潜力相对容易。在降低驱动寄存器的时钟网络的开关活动之后,计算时钟门控寄存器的功率变化。设计中存在禁用时钟网络的信号,通过使用组合开关活动传播技术,很容易计算出其对时钟网络开关的影响。但是,顺序时钟门控会改变设计的顺序特性。例如,为了对图 2 所示的电路执行基于可观察性的时钟门控,信号 vld_1 将用于选通即将进入寄存器 d_2 的时钟。这不仅会改变时钟切换,而且还会改变寄存器 d_2 输出上的切换活动,进而会影响寄存器 d_2 整个扇出的切换活动。下图显示了由于时序时钟门控寄存器 d_2 而开关活动将改变的区域(阴影)。如果仅报告对寄存器功率的影响,则可能会拒绝潜在的良好时钟门控表达式(因为它可以节省大量的数据路径功率)。

因此,为了计算准确的功率,需要计算所有受影响信号和新信号的开关活动。在做出优化决策或向用户展示机会时,该工具必须考虑到连续时钟门控更改对实际节电的影响。自动化工具必须评估成千上万个这样的门控表达式,因此功效计算必须非常快,同时不应影响计算的准确性。

验证影响

组合时钟门控的行为不会改变设计中寄存器的功能,因此,传统的逻辑等效检查器(LEC)可用于验证此类时钟门控变换的正确性。另一方面,顺序时钟门控会改变设计的顺序特性。例如,如果使用信号 vld_1 对图 2 中的寄存器 d_2 进行门控,则其输出将不再与原始设计相同。但是,设计输出保持不变。传统的 LEC 工具无法验证这些更改的等效性,因为它们要求被验证的两个设计的寄存器行为相同。市场上的顺序逻辑等效检查器(SLEC)可以帮助验证对设计进行的顺序更改的正确性(例如流水线,重新定时,重新计划,时钟门控等)。)。可以部署此类工具来验证顺序时钟门控更改的正确性。用户必须了解以下要求,以验证时钟选通更改的正确性:

优化工具本身无法声称其所做更改的正确性

验证工具应能够独立验证对设计进行的顺序更改的正确性(通过自动化或手动方式)

验证应快速而正式

基于仿真矢量的验证不能保证顺序更改的正确性,因为该错误可能会深入几个周期,并且可能未被发现

设计流程支持

在所有 RTL 综合工具中,组合时钟门控已作为内部优化步骤出现。RTL 综合工具本身支持各种设计流程要求:自下而上,工程变更单(ECO)等。但是,顺序时钟门控仍然是设计流程的中间阶段。设计人员是手动执行此操作,还是自动化工具正在对 RTL 进行此类更改。对于自动化工具,编写更改的 RTL 的要求包括:全面支持所有 HDL(SystemVerilog,Verilog,VHDL 等)及其混合;对 RTL 的最小更改(保留所有用户注释,格式和预处理程序)指令,例如宏,定义,包含等);书面 RTL 的全面可配置性,以支持特定于各个设计公司的 Lint 规则要求;

如果顺序时钟门控工具处于自动化设计流程中,则它需要为 ECO 提供完整的支持。RTL 中的 ECO 更改可能会使自动化工具进行的某些优化无效。用于 ECO 支持的自动化工具的要求是​​:

只删除无效的那些优化,不再更多

输出 RTL 应该与上一次运行的 RTL 输出相同(除了使某些优化无效所需的更改之外)

关于如何在门级网表中实现某些优化无效的明确指令

与 RTL 综合工具配合使用,以在门级实现所需的 ECO

其他一些注意事项也很重要。例如,优化必须了解时序,并且必须有一种方法可以将所使用的特定 RTL 综合工具的反馈考虑在内。

优化不应引入任何违反时钟域的行为。最后,必须有自动化来覆盖优化的各个方面,例如发现时钟门控表达式,评估其节能效果并将其自动插入 RTL 中,以及处理设计流程中的其他阶段。后者包括验证,时钟域检查以及顺序时钟门控工具与主流 RTL 综合工具的集成。

 

结论

顺序时钟门控可节省大量功率,因为​​它不仅可以关闭去往寄存器的时钟,而且可以关闭门控寄存器的扇出中的数据路径逻辑。但是,RTL 综合工具无法识别顺序的时钟门控机会。幸运的是,最近推出的顺序时钟门控工具可以自动执行此过程,或者有助于手动探索顺序时钟门控机会,从而帮助 RTL 设计人员实现低功耗设计。时序时钟门控在功耗估算,验证和设计流程支持方面都面临着独特的挑战,而自动工具必须解决所有这些挑战,以在最短的时间内提供最佳的节能效果。

相关推荐

电子产业图谱

公众号陌上风骑驴看IC号主,EDA 老油条,热衷于调侃EDA ,钻研数字实现流程,江湖人称老驴。