为什么深序贯分析很有价值。
重置初始化硬件,迫使它到一个已知状态,对设计启动或从错误中恢复。在今天的SoC设计,设计不是少见重置的数以百万计的寄存器。不幸的是,许多这些重置都是多余的。离开这些不必要的寄存器复位的设计会导致能耗增加,多余的区域,和路由拥塞。找出其中寄存器实际上不需要重置极具挑战性。传统上,设计师使用手工技术来识别冗余的寄存器。但真正需要的是一个自动化的方法。
低功耗设计是今天的主要设计目标之一。寄存器与重置需要较大的技术细胞,进而增加设计的面积和功耗。比较寄存器的简单的例子,有或没有重置功能:
添加预设和明确要求3-input NAND盖茨寄存器添加大量的面积和功耗。现在,乘以一百万,它可以看到重置如何影响设计的功率和面积统计。因此,对于低功耗设计,有明显的动机来发现和消除冗余的重置。
一个常见的方法来检测冗余重置是使用模拟:
然而,这种方法需要多个寄存器和排列的非常耗时。另一种方法是采用X-propagation:
X-propagation技术,没有重置注册未初始化状态X设计师使用仿真评估X是否可以达到主要输出。如果X无法输出,复位是多余的。然而,这种技术患有长期运行时,它是不切实际的soc包含数以百万计的寄存器。
自动化技术的关键技术是深序列分析,发现在导师PowerPro RTL低功耗平台。这多循环分析的RTL设计检查寄存器的逻辑关系来生成所有可能的支持条件。然后,分析交易区域,时机,找到最佳的支持条件。
检测冗余重置可观测性的关键。特别是,该工具可观测性不在乎形式(ODC)表达式定义条件复位信号的值没有影响设计的主要输出。这意味着复位信号从来不是可观测的。ODC表达式必须分析工具,以确定它是否“安全”删除寄存器复位。例如,如果我们有一个简单的电路,两个寄存器驱动MUX通过组合逻辑的选择信号MUX由寄存器控制,该工具必须评估安全ODC表达式以确定任何重置是否冗余:
在这个例子中,安全ODC的表达式G1和F1注册:
SafeODC (G1) = (S1 = = 1) SafeODC (F1) = (S1 = = 0)
这个工具适用于寄存器的复位值S1。为G1登记,ODC表达式的求值结果为总是错误:SafeODC (G1) =(0 = = 1),所以重置不是多余的。为注册F1,ODC表达式的结果在一个同义反复:SafeODC (F1) =(0 = = 0),复位是多余的,它可以被删除。
然后,可以修改原始的RTL占注册的冗余重置F1通过删除重置和过速作业和插入一个总是声明不包含rst信号的灵敏度列表:
总之,该工具执行一系列的活动以识别冗余RTL的寄存器以便生成优化的代码:
为了测量自动化冗余消除复位的效果,许多大型的设计进行了分析,测量和区域的影响。六真正的设计,例如,寄存器包含冗余的寄存器的百分比(重置减负荷)从10%变化到72%:
额外的测试表明,这些设计冗余重置清除可以减少面积高达3%。通过分析工具报告,分析显示减少连续功率高达22%。收集额外的布线后的指标来测量利用率、缓冲数,线的长度,和通过的数量,结果是显著的:
采用一种新颖的算法,利用observability-based顺序分析冗余消除复位,设计师可以减少顺序功耗和面积,并提高设计的布局来最小化路由拥塞。
想要了解更多关于消除冗余的重置,查看按需网络研讨会。
冗余重置将使用在许多客户设计! !