FPGA速度优化

速度优化


文章目录

  • 速度优化
  • 前言
  • 一、时序优化
    • 1.1 减少关键路径上的时序
      • 1.1.1 关键路径重组
      • 1.1.2 解决扇出问题
      • 1.1.3 路径上插入寄存器
      • 1.1.4 寄存器平衡
      • 1.1.5 并行结构
      • 1.1.6 消除代码优先级
  • 总结


前言

速度优化,主要就是设计时序进行优化

  • 吞吐量:每个时钟周期能处理的数据量,多少bit,b/s。为了提高吞吐量,大量的并行的设计被使用,再对数据处理完成之后对外传输,一般使用告诉串行I/O口,使得提高速率的前提又增加了稳定性
  • 设计延时:输入数据和数据被处理后输出的时间间隔。对于吞吐量来说,只关心流水线末端下线产品的数量,很少关系数据被处理的传输延迟。即尽量采用并行操作,减少流水操作。
  • 设计时序:指设计时钟速度,两个时序单元之间的最大延迟,决定了时钟频率(速度),可以得到一个最大时钟频率

一、时序优化

tip:从核心上理解就是关键路径的延迟太大,可以从插入流出、减小扇出(扇出过大会影响布局布线)、组合逻辑重组、操作符平衡(组合逻辑存在流水,如何是这个流水变成并行的,也就是组合逻辑重组)、消除代码优先级(使用case语句,使用 if else语句不超过7级)、

1.1 减少关键路径上的时序

关键路径:时序路径上的组合逻辑都会增加路径延迟,两个寄存器之间的最大延迟就是关键路径,减少了,就优化了时序,增加了时钟频率。也就是说木桶理论。

1.1.1 关键路径重组

多用于多个路径组合的场合,将重组先后的顺序,使得寄存器之间的关键路径被拉的更近

1.1.2 解决扇出问题

**tip:**Fanout即扇出,模块直接调用的下级模块的个数,如果这个数值过大的话,在FPGA直接表现为路径延时(net delay)较大,不利于时序收敛。因此,在写代码时应尽量避免高扇出的情况。

  • 适当的逻辑赋值:信号扇出过大,会造成布局布线困难,从而导致延迟过大。通过对信号的复制(面积换速度),可以分担扇出过大的问题。又分为逻辑复制寄存器复制
    **解决扇出:
    方法一:**组合逻辑复制如下:

在这里插入图片描述
方法二:在代码中可以设置信号属性,将对应信号的max_fanout属性设置成一个合理的值,当实际的设计中该信号的fanout超过了这个值,综合器就会自动对该信号采用优化手段,常用的手段其实就是寄存器复制。属性设置如下代码所示:

(* max_fanout = “3” *)reg signed [15:0] din_d;

方法三:通常BUFG是用于全局时钟的资源,可以解决信号因为高扇出产生的问题。但是其一般用于时钟或者复位之类扇出超级大的信号,此类信号涉及的逻辑遍布整个芯片,而BUFG可以从全局的角度优化布线。而且一块FPGA芯片中BUFG资源也有限,在7k325tffg900上也仅有32个,如果用于普通信号的高扇出优化也不大现实。因此,在时钟上使用BUFG是必须的,但是如果设计中遇到某些复位信号因高扇出产生的时序问题时,可以在此信号上使用BUFG来优化。

1.1.3 路径上插入寄存器

中间插入寄存器,面积换速度(插入流水线);

1.1.4 寄存器平衡

操作符平衡(组合逻辑存在流水,如何是这个流水变成并行的),使用括号来重组组合逻辑 如,z<=abcd变成z<=(ab)(cd)

1.1.5 并行结构

如out1 <= a + b +c + d变成out1 <=( a + b) +(c + d)

1.1.6 消除代码优先级

消除代码优先级(使用case语句,使用 if else语句不超过7级),if语句需要顺序去判断,所以耗时;
如果非要使用 if else 那么当if中的控制线是互斥的,就可以改写为多个if并行的方式

总结

两个ff之间的组合逻辑延迟过大,解决核心就是思考如何让两个ff之间距离更近。导致ff之间延迟的原因有扇出,组合逻辑综合后的电路结构是串形的(尽量用操作符去优化让其综合合成并行的电路),优先级问题。或者去使用插入寄存器去解决(加一级流水)

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值