0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

降低时序报告中逻辑延迟的方法

CHANBAEK 来源:FpgaHome 作者:太阳井的小鱼儿 2023-09-26 11:31 次阅读

1. 引言

FPGA逻辑电路设计中,FPGA设计能达到的最高性能往往由以下因素决定:

▪ 工作时钟偏移和时钟不确定性;

▪ 逻辑延迟:在一个时钟周期内信号经过的逻辑量;

网络或路径延迟:Vivado布局布线后引入的延迟量。

Vivado软件完成布局布线后,我们可以打开时序分析报告,来查看时序没有过的路径是由哪些因素导致的时序违规。Vivado会通过列表形式展示每条时序违规路径的信息,如下图所示。

图片

双击上面表中的其中一条路径,会展开关于该路径更详细的时序报告,如下图:

图片

上图这个时序违例的例子,可以看到,该路径逻辑延迟贡献了11.934%的延迟量、路径延迟贡献了88.066%延迟量。该路径逻辑级数为5,经过了2个CARRY4、1个LUT4和2个LUT6。

2. 降低逻辑延迟的方法

如果逻辑延迟大,我们需要查看该路径是不是只包含CLB器件,还是说该路径还经过了如DSPRAMB、URAM、FIFO或GT等器件。

2.1 路径只包含CLB器件

常规布线路径是在寄存器(FD*)或移位寄存器(SRL*)之间的路径,它们经过一些 LUT、MUXF 和 CARRY 元件。通常会遇到以下几种情形导致逻辑延迟过大:

(1)较高逻辑层数(logic levels)的组合电路。用户在两个寄存器之间插入的组合逻辑过于复杂,级联了过多的LUT、CARRY等元件,导致逻辑延迟过高时序过不了。如下图中,两个寄存器之间有一个logic levels为5层的组合逻辑。

图片

建议的解决方案: 在设计的早期阶段,通过TCL命令“report_qor_assessment”,早些识别出逻辑层数较高组合逻辑,通过代码优化手段来降低逻辑层次。或者,在综合的时候,将“-retiming”全局变量勾选上。

(2)路径上有很多小的级联LUT(LUT1-LUT4)。这些多个小的级联查找表是可以被合并成数量更少的LUT的。阻止这些级联LUT合并的原因可能如下:

  • 有些小的LUT表存在一些扇出(扇出为10,或者更高);
  • 用户使用了一些properties语法,比如:KEEP、KEEP_HIERARCHY、DON’T_TOUCH或MARK_DEBUG。

建议的解决方案: 移除掉这些properties语法,重新编译综合工程。

(3)路径上有单个CARRY(非级联)限制了LUT的优化,导致vivado布局也不是最优。

建议的解决方案: 在综合的时候,使用“FewerCarryChains”综合指令。或者对该CELL在opt_design阶段设置CARRY_REMAP属性。(具体使用方法可以查看UG904)

2.2 路径包含其他复杂器件(DSP、RAM等)

如果时序路径上会经过宏原语元件(macro primitives)如DSP、RAM、URAM、FIFO或GT_CHANNEL等元件,布局布线的难度会加大,也会导致更高的布局布线延迟。降低这些路径的逻辑延迟方法如下:

(1)在进出宏原语元件电路周围,增加额外的流水结构。比如:

  • 原设计是用的一个大位宽RAM缓存数据,把这个大位宽RAM拆分成多个并行的小位宽RAM实现相同的功能。
  • 原设计乘法器为2级流水乘法器,把它改为2级以上的流水乘法器。
  • 数据进出宏原语元件时,都用寄存器打一拍等。

(2)在包含宏原语元件的路径上减少逻辑层数,这点对改善整个设计的性能提升很明显。

Tips: 在修改RTL之前,可以尝试把DSP、RAM、URAM的自带流水寄存器使能都打开,然后重新编译工程,看时序是否能有改善。比如将下面这条路径:

图片

设置如下属性:

set_property -dict {DOA_REG 1 DOB REG 1} [get_cells xx/ramb18_inst]

注意,由于使能这些寄存器后,逻辑时序会有变动,此时的RTL功能和你原先设计是有出入的,所以不用生成bitstream,这样操作的目的只是为了看时序能如何改善。

3. 总结

本文主要介绍了如何减少时序报告中的逻辑延迟,下期文章我们将向大家介绍如何降低路径延迟的方法。如果觉得我们原创或引用的文章写的还不错,帮忙点赞和推荐吧,谢谢您的关注。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21736

    浏览量

    603238
  • 逻辑电路
    +关注

    关注

    13

    文章

    494

    浏览量

    42617
  • FPGA设计
    +关注

    关注

    9

    文章

    428

    浏览量

    26514
  • 时序
    +关注

    关注

    5

    文章

    387

    浏览量

    37330
  • Vivado
    +关注

    关注

    19

    文章

    812

    浏览量

    66509
收藏 人收藏

    评论

    相关推荐

    FPGA何时用组合逻辑时序逻辑

    数字逻辑电路分为组合逻辑电路和时序逻辑电路。时序逻辑电路是由组合
    发表于 03-21 09:49 886次阅读

    soc的组合逻辑时序逻辑应用说明

    芯片设计是现代电子设备的重要组成部分,其中组合逻辑时序逻辑是芯片设计中非常重要的概念。组合逻辑时序
    的头像 发表于 08-30 09:32 1226次阅读

    FPGA实战演练逻辑篇65:CMOS摄像头接口时序设计5时序报告

    CMOS摄像头接口时序设计5时序报告(特权同学版权所有)本文节选自特权同学的图书《FPGA设计实战演练(逻辑篇)》(特权同学版权所有)配套例程下载链接:http://pan.baidu
    发表于 08-19 21:58

    在FPGA何时用组合逻辑时序逻辑

    的。话不多说,上货。 在FPGA何时用组合逻辑时序逻辑 在设计FPGA时,大多数采用Verilog HDL或者VHDL语言进行设计(本文重点以verilog来做介绍)。设
    发表于 03-06 16:31

    同步时序逻辑电路

    同步时序逻辑电路:本章系统的讲授同步时序逻辑电路的工作原理、分析方法和设计方法。从同步
    发表于 09-01 09:06 0次下载

    规模集成时序逻辑设计

    规模集成时序逻辑设计:计数器:在数字逻辑系统,使用最多的时序电路要算计数器了。它是一种对输入
    发表于 09-01 09:09 13次下载

    异步时序逻辑电路

    异步时序逻辑电路:本章主要从同步时序逻辑电路与异步时序逻辑电路状态改变方式不同的特殊性出发, 系
    发表于 09-01 09:12 0次下载

    时序逻辑电路的分析方法

    时序逻辑电路的分析方法 1. 时序逻辑电路的特点 在时序
    发表于 04-07 23:18 8755次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路的分析<b class='flag-5'>方法</b>

    降低移动设计功耗的逻辑技术方法

    降低移动设计功耗的逻辑技术方法 本文将探讨在混合电压供电的移动设计,混合电压电平如何提高ICC电源电流及逻辑门如何
    发表于 04-15 15:00 859次阅读
    <b class='flag-5'>降低</b>移动设计功耗的<b class='flag-5'>逻辑</b>技术<b class='flag-5'>方法</b>

    时序逻辑电路分析有几个步骤(同步时序逻辑电路的分析方法

    分析时序逻辑电路也就是找出该时序逻辑电路的逻辑功能,即找出时序
    发表于 01-30 18:55 12.7w次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路分析有几个步骤(同步<b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路的分析<b class='flag-5'>方法</b>)

    时序逻辑电路由什么组成_时序逻辑电路特点是什么

    本文开始介绍了时序逻辑电路的特点和时序逻辑电路的三种逻辑器件,其次介绍了时序
    发表于 03-01 10:53 11.1w次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路由什么组成_<b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路特点是什么

    时序逻辑电路的分析方法

      时序逻辑电路分析和设计的基础是组合逻辑电路与触发器,所以想要分析和设计,前提就是必须熟练掌握各种常见的组合逻辑电路与触发器功能,尤其是各种触发器的特征方程与触发模式,因此前几文的基
    的头像 发表于 05-22 18:24 3891次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路的分析<b class='flag-5'>方法</b>

    时序逻辑电路的描述方法有哪些

    时序逻辑电路是数字电路的一种重要类型,它具有存储功能,能够根据输入信号和内部状态的变化来改变其输出。时序逻辑电路广泛应用于计算机、通信、控
    的头像 发表于 08-28 11:37 586次阅读

    时序逻辑电路的五种描述方法

    时序逻辑电路是数字电路的一种重要类型,它具有存储和处理信息的能力。时序逻辑电路的描述方法有很多
    的头像 发表于 08-28 11:39 1289次阅读

    时序逻辑电路的功能表示方法有哪些

    时序逻辑电路是数字电路的一种重要类型,其特点是电路的输出不仅取决于当前的输入,还取决于电路的状态。时序逻辑电路广泛应用于计算机、通信、控制
    的头像 发表于 08-28 11:41 639次阅读