代码编写过程中应该考虑的时序优化(笔记)

    xiaoxiao2021-03-25  100

    1.通过减少关键路径上的组合逻辑单元数来优化时序

    FPGA逻辑设计中时序路径上的组合逻辑都会给路径增加延时,从而影响设计性能的往往只有几条关键的路径而已,所以可以通过减少关键路径上的组合逻辑单元数来减小该路径上的延时,从而达到优化的目的。关键路径重组是常用技术,多用于关键路径由多个路径组合而成的场合,而且这些被组合的路径之间又可以重组互相之间的相互顺序。

    2.适当进行逻辑复制以优化设计速度

    逻辑复制是指当某个信号扇出比较大时,会造成该信号到各个目的逻辑节点的路径变得过长,从而成为设计中的关键路径,为了解决这个问题,可以通过在书写代码时对该信号进行复制,已达到分担该信号扇出过多的目的。

    例如: assign a=b &c; 而在代码中多处用到a,可以改写为如下

        assign a1=b&c; 

                        assign a2=b&c;在代码中使用a1 a2来分担a,从而减小了a的扇出,缩短布线延时!

    3.在组合逻辑中插入寄存器优化时序

    在同步设计中,设计节点大多都是参考时钟沿,那么如果寄存器和寄存器之间的逻辑路径过长,就会成为拖累设计的关键路径,这时就可以考虑在该路径上插入额外的寄存器,一般把这额外的寄存器插在逻辑路径中间位置。也称为插入流水线,额外插入的寄存器时钟周期延时并不会违反整个设计的规范,也不影响吞吐量,并改善了设计的时序性能。在关键路径上插入寄存器可以将关键路径分成两个更小的路径,以此来改善关键路径上的时序。

    转载请注明原文地址: https://ju.6miu.com/read-6935.html

    最新回复(0)