提高 IC 设计中数字逻辑速度的六种方法

时间:2023-02-25
    在设计芯片时,设计人员需要在开发逻辑之前考虑许多权衡。例如,如果正在为移动应用开发芯片,功率就成为一个非常重要的因素。在这种情况下,需要低功耗逻辑。低功耗逻辑,顾名思义,有助于降低功耗,但会影响芯片的性能方面。同样,如果正在为数据中心应用开发芯片,则需要高性能,而功耗相对不太重要。
    综上所述,芯片的功耗和性能成反比,设计人员在为芯片编写逻辑时需要找到功耗和性能的平衡点。如前所述,芯片的速度方面对于某些应用来说是必不可少的。因此,在为此类应用程序开发逻辑时,某些方法可以通过小的逻辑优化来提高设计速度。在本文中,我们将介绍可以提高芯片设计速度的提示和技巧。
    重新格式化逻辑表达式

    有时,我们可以通过改变我们编写逻辑的方式来提高电路的性能。下面的图 1显示了一个这样的例子。尽管这两种代码执行相同的功能,但合成器工具以不同的方式合成这两种代码。它会影响电路的延迟。

    图 1在代码 1(左)和代码 2(右)中,可以在第 4 行看到差异。

    Xilinx ISE和Spartan6系列FPGA被用来分析时序性能。

    图 2代码 1 的原理图显示在顶部,代码 2 的原理图显示在底部。

    图 3这是代码 1(左)和代码 2(右)的延迟比较。电路 2 的速度优于电路 1 的速度。
    结论:图 3的时序分析表明,对于相同的逻辑,我们通过在右侧放置括号获得的总延迟减少了电路延迟。因此,它将提高电路的速度。
    使用流水线寄存器

    提高电路时序性能的另一种方法是使用流水线寄存器。通过在它们之间添加寄存器,将长组合逻辑分解为多个单元。由于数据路径逻辑中的附加寄存器

    图 4代码 3(左)和代码 4(右)具有相同的功能,但代码 4 具有流水线寄存器而代码 3 没有。

    图 5在代码 3(左)和代码 4(右)的延迟比较中,电路 4 的速度优于电路 3 的速度。

    图 6顶部显示代码 3 的原理图,底部显示代码 4 的原理图,其中包含流水线寄存器。
    结论:从图 5中可以明显看出,带有流水线寄存器的电路的速度远远高于没有流水线寄存器的电路的速度。流水线增加了延迟和面积,但也增加了操作频率。因此,当性能是标准时,它应该是。
    将慢速信号放在数据路径逻辑的末尾
    解决长路径问题的另一种方法是将慢的信号带到逻辑的所有路径。例如,Z = A & B & C & D 可以重新排列为 Z = ( A & C & D ) & B。这确保了信号 B 在合成完成后一路回到逻辑,有助于减少逻辑的整体延迟。
    高层代码
    将加法器和乘法器等算术运算留给综合工具在设计中实现通常是个好主意。在较低级别进行设计可能会导致时序问题,因此应尽可能留给合成器。
    当在高层编写 RTL 代码时,加法器、时钟域交叉单元、乘法器和时钟门控单元等常用逻辑块是在使用 Synopsys DC 的 DesignWare 库的帮助下实现的。并且应该注意合成器很容易理解编写的 RTL 代码。这将产生高质量的网表。在设计中使用状态机并实现良好的层次结构将使综合结果更好。
    执行合成时放宽区域限制
    减少区域限制将有助于合成器工具在提供的库信息中查找与标准 VT (SVT) 单元不同的单元。更快的单元 (LVT) 有助于减少逻辑延迟,但会增加面积和功耗。在综合期间增加编译器工作将允许综合工具在生成网表之前尝试不同的组合和替换。的缺点是它增加了编译时间。
    在严格的时序约束下执行综合
    综合的周期时间比目标周期时间短,以确保综合工具更加努力地优化长数据路径。由于金属电容在布局和布线之前无法获得,因此综合后获得的时序分析只是一种估计。在较低的时钟周期时间运行综合可抵消后端过程中后期获得的金属电容和其他寄生效应。
    遵循这些方法将有助于减少设计中的延迟并使设计以更高的频率运行。
    Deekshith Krishnegowda 是 Marvell Technology 圣克拉拉办事处的 IC 设计工程师。他拥有圣何塞州立大学电气和电子工程硕士学位。
上一篇:IO口紧张?挤一挤还是有的
下一篇:用于密集、在轨、基于边缘的计算的微处理器和 FPGA

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料