FPGA扇出过多导致的时序问题

2021-10-25 17:16 来源:电子说

1.扇出过多导致的时序问题。

信号驱动非常大,扇出非常大,因此有必要增加驱动能力。如果只考虑驱动能力,我们可以尝试增加缓冲区来解决驱动能力。但是在插入缓冲区时,路由的延迟增加,容易出现时间序列报告的评分问题。

解决这一问题的常用方法是复制驱动信号逻辑,即多次复制扇出较大的信号发生逻辑,产生多个频率和相位相同的信号来驱动低级逻辑电路。保证了延时,提高了驾驶能力。但是,这种方法可以与缓冲区一起使用,以平衡资源利用率和延迟,并防止资源分配不均或时序考虑不佳。

解决这一问题的常用方法是复制驱动信号逻辑,即多次复制扇出较大的信号发生逻辑,产生多个频率和相位相同的信号来驱动低级逻辑电路。保证了延时,提高了驾驶能力。但是,这种方法可以与缓冲区一起使用,以平衡资源利用率和延迟,并防止资源分配不均或时序考虑不佳。

2.由于对时钟频率要求高,上升沿和下降沿在不同寄存器上工作的问题。

首先,分析了产生这一问题的原因。如果同时使用上升沿和下降沿,则相当于电平触发。电平触发比时钟沿触发更容易受到干扰,因此通常不同的寄存器不会同时在时钟的上升沿和下降沿工作。

1)通过MMC或PLL将时钟移位180产生新的时钟,新的始终上升沿为原时钟的下降沿,从而由上升沿触发。

2)全局时钟资源中的INV用于反转原始时钟信号,然后新时钟信号的上升沿就是原始时钟的下降沿。

此外,还应考虑其他方法,例如将原始时钟信号的频率加倍,以实现上升沿和下降沿都是上升沿。这种方法直接将系统时钟速率提高了一倍。如果时钟速度不太高,就不会出现这种上升沿和下降沿的问题,所以暂时不考虑这种方法。此外,时钟的使用必须由特殊的时钟内核产生,如锁相环或主时钟。

此外,还应考虑其他方法,例如将原始时钟信号的频率加倍,以实现上升沿和下降沿都是上升沿。这种方法直接将系统时钟速率提高了一倍。如果时钟速度不太高,就不会出现这种上升沿和下降沿的问题,所以暂时不考虑这种方法。此外,时钟的使用必须由特殊的时钟内核产生,如锁相环或主时钟。

3.布局不良导致的布线延迟过高。

布线延迟一般有两种情况:

2)就是今天要说的问题,就是各种信号扇出不多,逻辑时间不是很大,但是布线延迟很大,就是布局不好的问题。

相应的解决方案如下:通过ISE布局工具中布局调整的努力水平、额外努力和MPPR选项,如果不起作用,尝试使用Flootplanner重新规划具有相对区域约束的设计布局。

4.逻辑级数太多。

即逻辑计算时间比较大,一般不是时序问题,而是编程问题。尽量不要嵌套IF ELSE语句或CASE语句,使用CASE语句时尽量不要使用IF ELSE语句,使用IF语句和CASE语句时注意防止不必要的锁存。

延伸 · 阅读