目录

Clock - RTL Design Style Guide

时钟

  • 将时钟电路集中在一个模块

  • 利用时钟树实现时钟均衡

  • 时钟门控

  • 多时钟系统

1.1 将时钟电路集中在一个模块

[1] 时钟电路应单独作为一个模块

[2] 不要在逻辑综合过程中在时钟线中插入buffer

/images/RTL_DESIGN_STYLE/1-4-1.png

时钟模块单独作为一个模块

注意
  • 时钟相关的电路集中在一个模块便于时钟的分配、约束和DFT实现。

1.2 利用时钟树实现时钟均衡

[1] 除了dummy buffer以外,其他的cell不应该出现在时钟树中。

[2] 连接到时钟树的cell数量应当相同

/images/RTL_DESIGN_STYLE/1-4-2.png

时钟布线

注意
  • 时钟树的布置往往是在芯片中心以H型的方式展开
  • 不建议在RTL设计时在时钟线上加入buffer

1.3 时钟门控

[1] 在时钟上应当尽量避免使用非门,或者避免同时使用上升沿和下降沿触发的触发器

[2] 不要将一个触发器的输出作为下一个触发器的时钟

[3] 使用门控来降低功耗

[4] 触发器的输入引脚应当避免和时钟连接(触发器时钟端除外)

[5] 时钟信号不应该连接到blackbox、双向端口和复位线。

[6] 不要使用反沿触发器

注意
  • 当时钟信号与触发器D端连接时,综合工具将难以优化电路,并且时序约束也很困难
  • 尽量不要使用下降沿触发器,上升沿和下降沿触发的混合电路,生成scan chain会有困难。

1.4 多时钟系统

[1] 每个子模块尽量只有一个时钟

[2] 对于多时钟系统,尽量做到时钟周期的公倍数最小。