DC High Fanout Nets

本文介绍 DC 综合阶段 High-Fanout Nets 可能遇到的相关问题

问题描述

综合时候可能出现 TIM-134 Warning

Design ‘Test’ containts 2 high-fanout nets. A fanout number of 1000 will be used for delay calculations involving these nets. (TIM-134)

使用man查看相关信息,发现 high-fanout nets的delay在综合时候,使用简化的delay model。该方法特别对于一些没有约束的网络(global reset nets, scan enable nets, and so o)有比较好的作用。

与此相关的,有两个参数。high_fanout_net_threshold,默认为1000, 当fanout的值超过该阈值时,net会被认为是high-fanout net,使用简化delay model。 high_fanout_net_pin_capacitance,默认为1, high-fanout nets使用该值作为单个fanout的pin capacitance.

问题在于,high-fanout nets的默认load为以上两个参数相乘,为1000,远远超过大部分电路的实际情况。造成功耗估计的巨大偏差。

问题实例

create_clock 命令建立的时钟,本身被认为是 ideal_network,不计算功耗。但综合时使用 clock_gating,门控时钟之后的时钟网络的功耗会包括在最后的power report中。以lna_readout模块为例,由于使用了大量的寄存器(>10000),而这些寄存器被同一个时钟门控,DC使用1000作为门控时钟net的capacitance,导致power report里时钟网络的 switching power > 4mW。

解决方法

因此,我们修改 high_fanout_net_pin_capacitance为一个合理的值,例如 0.002-0.004.重新综合后,得到 switching power 为 1.46e-02mW.

Notes

  • 如果不使用门控时钟,则clock net本身是ideal_network,power reoprt里功耗为0,不会产生该问题。
  • 如果门控时钟net的fanout不大,小于high_fanout_net_threshold,也不会产生该问题。
  • 在大型设计中,由于整体功耗偏大, 该问题产生的多余功耗的估计,可能因为不明显而不被发现。

Categories:

Updated:

Leave a comment