18.luck新利
的意见

节省电力和区域通过消除多余的重置

为什么深序贯分析很有价值。

受欢迎程度

重置初始化硬件,迫使它到一个已知状态,对设计启动或从错误中恢复。在今天的SoC设计,设计不是少见重置的数以百万计的寄存器。不幸的是,许多这些重置都是多余的。离开这些不必要的寄存器复位的设计会导致能耗增加,多余的区域,和路由拥塞。找出其中寄存器实际上不需要重置极具挑战性。传统上,设计师使用手工技术来识别冗余的寄存器。但真正需要的是一个自动化的方法。

为什么担心多余的重置吗?

低功耗设计是今天的主要设计目标之一。寄存器与重置需要较大的技术细胞,进而增加设计的面积和功耗。比较寄存器的简单的例子,有或没有重置功能:

simple_flops

添加预设和明确要求3-input NAND盖茨寄存器添加大量的面积和功耗。现在,乘以一百万,它可以看到重置如何影响设计的功率和面积统计。因此,对于低功耗设计,有明显的动机来发现和消除冗余的重置。

手工技术

一个常见的方法来检测冗余重置是使用模拟:

  1. 强制复位寄存器的值。
  2. 在这个寄存器的扇出表现持续传播。
  3. 确定注册,导致多余的地区。

然而,这种方法需要多个寄存器和排列的非常耗时。另一种方法是采用X-propagation:

  1. 迭代地从寄存器中删除重置。
  2. 使用一个X-propagation技术,以确保设计的功能。

X-propagation技术,没有重置注册未初始化状态X设计师使用仿真评估X是否可以达到主要输出。如果X无法输出,复位是多余的。然而,这种技术患有长期运行时,它是不切实际的soc包含数以百万计的寄存器。

自动化技术

自动化技术的关键技术是深序列分析,发现在导师PowerPro RTL低功耗平台。这多循环分析的RTL设计检查寄存器的逻辑关系来生成所有可能的支持条件。然后,分析交易区域,时机,找到最佳的支持条件。

sequential_analysis

检测冗余重置可观测性的关键。特别是,该工具可观测性不在乎形式(ODC)表达式定义条件复位信号的值没有影响设计的主要输出。这意味着复位信号从来不是可观测的。ODC表达式必须分析工具,以确定它是否“安全”删除寄存器复位。例如,如果我们有一个简单的电路,两个寄存器驱动MUX通过组合逻辑的选择信号MUX由寄存器控制,该工具必须评估安全ODC表达式以确定任何重置是否冗余:

redundant_sample

在这个例子中,安全ODC的表达式G1F1注册:

SafeODC (G1) = (S1 = = 1) SafeODC (F1) = (S1 = = 0)

这个工具适用于寄存器的复位值S1。为G1登记,ODC表达式的求值结果为总是错误:SafeODC (G1) =(0 = = 1),所以重置不是多余的。为注册F1,ODC表达式的结果在一个同义反复:SafeODC (F1) =(0 = = 0),复位是多余的,它可以被删除。

然后,可以修改原始的RTL占注册的冗余重置F1通过删除重置和过速作业和插入一个总是声明不包含rst信号的灵敏度列表:

code_adjustment

总之,该工具执行一系列的活动以识别冗余RTL的寄存器以便生成优化的代码:

optimization_flow

自动化的影响

为了测量自动化冗余消除复位的效果,许多大型的设计进行了分析,测量和区域的影响。六真正的设计,例如,寄存器包含冗余的寄存器的百分比(重置减负荷)从10%变化到72%:

result_table1

额外的测试表明,这些设计冗余重置清除可以减少面积高达3%。通过分析工具报告,分析显示减少连续功率高达22%。收集额外的布线后的指标来测量利用率、缓冲数,线的长度,和通过的数量,结果是显著的:

result_table2

采用一种新颖的算法,利用observability-based顺序分析冗余消除复位,设计师可以减少顺序功耗和面积,并提高设计的布局来最小化路由拥塞。

想要了解更多关于消除冗余的重置,查看按需网络研讨会



1评论

J.Chonan 说:

冗余重置将使用在许多客户设计! !

留下一个回复


(注意:这个名字会显示公开)

Baidu