FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用

这篇具有很好参考价值的文章主要介绍了FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


声明:本文章转载自FPGA开源工坊,作者xiaotudou


在开始之前,有个预备知识:当时序不满足下列给出的图的要求时,STA分析(静态时序分析)会报错,在低频时可能忽略不计可以正常运行,但是频率上去之后很有可能会导致电路功能的错误。因此我们不能忽略,要对logic修改或者修改频率以满足STA要求。FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发


        本篇介绍了一次时序调优的过程,也就是重新修改代码逻辑,解决时序瓶颈(本文是缩小Logic delay)。在设计初期就应该考虑到这个问题,比如DSP的流水线寄存器,BRAM的输出寄存器这些在设计初期就考虑使用到它们,来获取更好的时序。

        因此,良好的编码习惯和风格有助于我们避免时序违例。


        在FPGA上完成了Canny算法(一种图像处理算法)的实现时,遇到了时序不收敛的问题,记录一下。

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

可以看到时序的建立时间不满足。

我们在约束的主时钟频率是200MHz,也就是5ns,但是建立时间是-2.12ns,也就是说这个工程只能跑到7.12ns也就是140.45MHz,远远不能满足我们预先的设计。

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

怎么根据时序约束和建立保持时间裕量来分析工程能跑到的最大频率可以参考下面:

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

首先来看一下PR之后是哪条路径不收敛,究竟是同一时钟域下的还是跨时钟域的路径,两者的处理方式不一样。

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

可以看到是Intra-clock paths爆红了,也就是同一时钟域下的路径时序不收敛。接下来看具体的时序路径:

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

可以看到logic delay远远比net delay大,那么我们就需要去降低logic delay,也就是要把我们的组合逻辑搞简单一点。如果是net delay比较大就要考虑是不是布线拥塞的问题了,两者的处理方式不太一样。

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

再来看一下它的电路图,可以看到在左边的寄存器输出之后经过LUT,Carry等组合逻辑之后,给到DSP的输入端。一般来说DSP的几级pipline最好的都用上,这样DSP可以跑到更高的频率。

再来看一下具体的路径报告:

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

可以看到logic的延时占到了82%,因此如果要解决这个时序为例,就必须要把logic delay给降低。

两者的比例可以参考,七系列的FPGA和UltraScale系列的FPGA不太一样:

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

来看一下这一个时序为例对应的代码:

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

可以看到其实挺复杂的,有减法,有乘法。其中减法是被vivado用LUT+Carry搭了起来,乘法用的DSP。

要解决这个问题,就是把这一大段代码进行流水拆开嘛,把减法拆一级流水,乘法器拆为三级流水。

将代码修改为以下的样子,再来综合一下

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

可以看到时序就收敛了。

再来看一下生成电路结构:

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

可以看到FDCE之后仍然是LUT+Carry的形式,用于做减法运算,然后再接入DSP的输入,在源码里面做完减法之后还有这两级寄存器,但是在电路图里面看不到他们了,这是因为这两级寄存器被DSP给吸收掉了,用于提高DSP的时钟频率,这两级寄存器会利用DSP单元内部的寄存器来实现,并不会增加我们的资源占用,DSP核里面的资源不用也是浪费。

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用,FPGA,fpga开发

上图为DSP单元里面的寄存器排布,可以看到有六级。

细心的朋友可能看到,上图的电路结构不仅有DSP和LUT模块,还有FDCE+CARRY4进位链,这些对时序影响同样不可忽视,我们将在下一篇中讨论。文章来源地址https://www.toymoban.com/news/detail-797355.html

到了这里,关于FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【FPGA】时序逻辑电路——基于计数器实现一个以1秒频率闪烁的LED灯

    1 D触发器 分析: 特性:输出端Q只在CK处于上升沿的时候变化 图中波形的形成过程: 当D处于高电平时,CK未处于上升沿时,Q仍处于低电平 当CK来到上升沿,Q需要根据D发生变化,由于D是高电平,所以Q要从低电平变化成高电平 D从高电平变化成低电平,但是此时CK未来到上升沿

    2024年02月09日
    浏览(43)
  • FPGA时序分析与约束(2)——时序电路时序

            在之前的内容中,我们介绍了组合电路的时序问题和可能导致的毛刺,强烈推荐在阅读前文的基础上再继续阅读本文, 前文链接:FPGA时序分析与约束(1)——组合电路时序         这篇文章中,我们将继续介绍FPGA时序分析相关内容,本文介绍的是时序电路的时序

    2024年02月10日
    浏览(39)
  • FPGA时序分析与时序约束(四)——时序例外约束

    目录 一、时序例外约束 1.1 为什么需要时序例外约束 1.2 时序例外约束分类 二、多周期约束 2.1 多周期约束语法 2.2 同频同相时钟的多周期约束 2.3 同频异相时钟的多周期约束 2.4 慢时钟域到快时钟域的多周期约束 2.5 快时钟域到慢时钟域的多周期约束 三、虚假路径约束 四、最

    2024年01月20日
    浏览(41)
  • FPGA时序分析与约束(5)——时序路径

            在之前的文章中我们分别介绍了组合电路的时序,时序电路的时序和时钟的时序问题,我们也对于时序分析,时序约束和时序收敛几个基本概念进行了区分,在这篇文章中,我们将介绍时序约束相关的最后一部分基本概念,带领大家了解什么是时序路径。       

    2024年02月09日
    浏览(41)
  • FPGA时序分析与时序约束(Vivado)

    后缀L的这个单元中,会生成锁存器 查看布线 定位线路 时间分析,还要考虑数据变化的建立时间与保持时间 经过图上计算可得公式 : Tsu裕量 = (Tskew + 时钟周期 - Tsu) - (Tco + Tdelay) Thd裕量 = Tco + Tdelay - Thd 两个时间都大于0,才能保证系统不产生亚稳态。 建立时间裕量、组

    2024年01月19日
    浏览(43)
  • FPGA时序分析与约束(8)——时序引擎

            要想进行时序分析和约束,我们需要理解时序引擎究竟是如何进行时序分析的,包括时序引擎如何进行建立分析(setup),保持分析(hold),恢复时间分析(recovery)和移除时间分析(removal)。         发起沿(launch edge,源时钟产生数据的有效时钟沿),捕获沿(capture

    2024年02月07日
    浏览(41)
  • FPGA时序分析与约束(1)——组合电路时序

            关于时序分析和约束的学习似乎是学习FPGA的一道分水岭,似乎只有理解了时序约束才能算是真正入门了FPGA,对于FPGA从业者或者未来想要从事FPGA开发的工程师来说,时序约束可以说是一道躲不过去的坎,所以从这篇文章开始,我们来正式进行FPGA时序分析与约束的学

    2024年02月10日
    浏览(37)
  • FPGA时序分析与时序约束(二)——时钟约束

    目录 一、时序约束的步骤 二、时序网表和路径 2.1 时序网表 2.2 时序路径  三、时序约束的方式 三、时钟约束 3.1 主时钟约束 3.2 虚拟时钟约束 3.3 衍生时钟约束 3.4 时钟组约束 3.5 时钟特性约束 3.6 时钟延时约束         上一章了解了时序分析和约束的很多基本概念(FP

    2024年02月03日
    浏览(69)
  • FPGA时序约束与分析(1) --- 时序约束概述

    本系列参考文献 — FPGA时序与约束分析-吴厚航 FPGA从综合到实现需要的过程如下:synth_design - opt_design - place-design - phys_opt_design - route_design 1、时序约束的理解 2、时序约束的基本路径 3、时序约束的步骤 4、时序约束的主要方法 5、查看相关时序信息 FPGA的设计约束分为物理约束

    2024年02月16日
    浏览(31)
  • FPGA的时序分析、约束和收敛(1)----什么是时序分析?什么是时序约束?什么又是时序收敛?

    文章目录         写在前面         磨刀不误砍柴工         什么是时序分析?         什么是时序约束?         什么是时序收敛?         时序约束与分析是FGPA开发过程中一项必备的技能,同时也是设计开发中相对较难的部分。很多人一谈起FPGA开

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包