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

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

3天内不再提示

FPGA布线拥塞主要原因及解决方法

微云疏影 来源:FPGA算法工程师 作者:FPGA算法工程师 2022-12-07 10:22 次阅读

FPGA开发设计中,我们可能会经历由于资源占用过高的情况,例如BRAM、LUT和URAM等关键资源利用率达到或超过80%,此时出现时序违例是常有的事,甚至由于拥塞导致布线失败,整个FPGA工程面临无法生成bit文件的危险。

那么,有没有办法来解决这类问题呢?

此类问题是FPGA设计实现中比较棘手的问题,Xilinx针对7系列及以后的UltraScale/UltraScale+等,提出了UltraFast设计方法论,用于指导该系列器件的成功设计和实现,完成复杂系统设计。

时序收敛是指设计满足所有的时序要求。针对综合采用正确的 HDL 和约束条件就能更易于实现时序收敛。通过选择更合适的 HDL、约束和综合选项,经过多个综合阶段进行迭代同样至关重要,如下图所示。

poYBAGOP-PmAGzyEAAEnrEwmNOQ542.jpg

Xilinx提出的实现快速收敛的设计方法论

FPGA布线拥塞怎么办?

如果关键路径在拥塞区域内或者紧邻拥塞区域,或者是资源利用率较高,都会导致时序收敛困难。在很多情况下,拥塞会消耗大量的布线时间,甚至布线失败。如果布线延迟显著大于预期值,那么我们就得考虑降低设计的拥塞程度。

在确保时序约束和物理约束正确的情况下,我们可以通过以下方法解决拥塞问题。

1.拥塞类型

Xilinx FPGA布线结构包括东、南、西、北共4个方向不同长度的互联资源。拥塞区域以最小的正方形体现,这个正方形覆盖了相邻的互联资源或CLB单元。

pYYBAGOP-PqAbOnOAANBm99fwnM627.jpg

“Device”视图中的拥塞等级和拥塞区域

拥塞包括3种类型:全局拥塞、短线拥塞和长线拥塞。

拥塞类型

poYBAGOP-PuAEbSgAABBkfsFtKA792.png

2.生成设计拥塞报告

为了检查拥塞程度,我们可以基于布局之后生成的DCP,通过以下Tcl命令生成设计拥塞报告。

report_design_analysis -congestion -name cong

分析拥塞时,工具报告的等级可按下表所示方式进行分类。拥塞等级为 5 或更高时,通常会影响 QoR 并且必然会导致布线器运行时间延长。

pYYBAGOP-PuAXLBGAABeLVl4tp4898.png

为帮助识别拥塞,Report Design Analysis命令支持生成拥塞报告以显示器件的拥塞区域,以及这些区域内存在的设计模块的名称。此报告中的拥塞表会显示布局器和布线器算法发现的拥塞区域。下图显示了拥塞表示例。

poYBAGOP-PyACFMuAAC48PTtcgw932.jpg

拥塞表

“Placed Maximum”、“Initial Estimated Router Congestion”和“Router Maximum”拥塞表可提供有关东西南北四个方向上拥塞最严重的区域的信息。选中该表中的窗口时,在“Device”窗口中会突出显示对应的拥塞区域。

3.生成设计复杂性报告

我们也可以通过设计复杂性报告来预判是否出现拥塞。我们可以对布局生成的DCP,通过以下Tcl命令生成设计复杂度报告。

report_design_analysis -complexity -name comp

复杂性报告 (Complexity Report) 可按顶层设计和/或层级单元的叶节点单元的类型显示 Rent 指数 (Rent Exponent)、平均扇出 (Average Fanout) 和分布方式。Rent 指数是指在使用min-cut算法以递归形式对设计进行分区时,网表分区的端口数量和单元数量之间的关系。其计算方法与在全局布局期间布局器所使用的算法类似。因此,它可准确表明布局器所面临的困难,当设计的层级与在全局布局期间所发现的物理分区匹配良好时尤其如此。

Rent 指数较高的设计表示此类设计中包含逻辑紧密相连的分组,并且这些分组与其它分组同样连接紧密。这通常可理解为全局布线资源利用率较高并且布线复杂性也更高。此报告中提供的 Rent 指数是根据未布局和未布线的网表来计算的。完成布局后,相同设计的 Rent 指数可能改变,因为它基于物理分区而不是逻辑分区。

pYYBAGOP-PyAP2v4AAFi7kACK90397.jpg

复杂性报告

Rent 指数的典型范围

poYBAGOP-P2AHD4TAACDP18NotA966.jpg

“平均扇出”典型范围

pYYBAGOP-P2ABLXhAACwBtaZ9XE247.jpg

4.解决拥塞问题

根据前文所述造成拥塞的原因,我们可以采用以下办法解决布线拥塞问题。

拥塞原因1:过多的MUXF(将MUXF转化为LUT)

方法1:利用模块化综合技术,对特定模式设置MUXF_REMAPPING:

set_property BLOCK_SYNTH.MUXF_MAPPING 1 [get_cells top/instance]

方法2:在opt_design阶段使用-remap选项:

opt_design -mux_remap -remap

方法3:针对特定MUXF设置MUXF_REMAP属性为ture

set_property MUXF_REMAP 1 [get_cells -hier-filter {NAME=~ cpu*&& REF_NAME=~MUXF*}]

拥塞原因2:过长的进位链(将进位链转化为LUT)

方法1:在opt_design阶段使用-remap选项:

opt_design -carry_remap -remap

方法2:针对特定MUXF设置CARRY_REMAP属性

set_property CARRY_REMAP 2 [get_cells -hier-filter { REF_NAME==CARRY8}]

拥塞原因3:过多的控制集(合并控制集)

方法1:利用模块化综合技术,对特定模式设置CONTROL_SET_THRESHOLD:

set_property BLOCK_SYNTH. CONTROL_SET_THRESHOLD 10 [get_cells top/instance]

方法2:在opt_design阶段,使用-control_set_merge合并等效控制集

opt_design -control_set_merge

方法3:在opt_design阶段,使用merge_equivalent_drivers合并等效控制集,包括非控制逻辑

opt_design -merge_equivalent_drivers

拥塞原因4:过多的LUT整合(阻止LUT整合)

方法1:利用模块化综合技术,对特定模式设置LUT_COMBINING:

set_property BLOCK_SYNTH. LUT_COMBINING 0 [get_cells top/instance]

方法2:设定LUT的LUTNM属性为空:

set_property LUTNM “”[get_cells hier-filter {REF_NAME =~LUT*&& NAME=~inst}]

在综合阶段,除了使用以上的方法外,对于IP,我们最好采用OOC的综合方式。

在实现阶段,可以选择适当的实现策略来缓解拥塞。对于UltraScale系列芯片,可尝试采用“Congestion_*”策略缓解拥塞;对于UltraScale+系列芯片,可尝试采用“performance_NetDelay_*” 策略缓解拥塞。如下图所示。

poYBAGOP-P6AFb9UAAGGfcq2PUg197.jpg

实现时解决拥塞策略

当然,我们也尝试采用“performance_ExtraTimingOpt” 策略进行时序优化,但可能无法解决拥塞问题。

FPGA算法工程师

审核编辑 :李倩

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

    关注

    1629

    文章

    21729

    浏览量

    603013
  • Xilinx
    +关注

    关注

    71

    文章

    2167

    浏览量

    121305
  • 时序
    +关注

    关注

    5

    文章

    387

    浏览量

    37318
收藏 人收藏

    评论

    相关推荐

    华纳云:企业迁移到云端的主要原因是什么?

    企业迁移到云端的主要原因是什么?原因不止一个。削减成本通常被认为是主要原因——但尽管通过云迁移降低成本无疑是一种诱人的可能性,但创新潜力才是更大的奖励。云计算通过支持企业创新而产生的价值是仅仅通过 降低 IT 成本所能实现的价值
    的头像 发表于 09-14 17:38 285次阅读

    服务器错误是怎么回事?常见错误原因解决方法汇总

    服务器错误是怎么回事?最常见的原因分有六个,分别是:硬件问题、软件问题、网络问题、资源耗尽、数据库、文件权限问题。可以根据以下具体错误原因进行辨别,并选择适合的解决方法。关于常见服务器原因
    的头像 发表于 08-12 10:11 1457次阅读

    接地网阻值偏大的原因解决方法

     地网接地电阻测试仪是保障电气设备安全运行的重要组成部分,但在实际使用中,我们可能会遇到接地网阻值偏大的情况。接下来,鸿蒙小小编介绍造成这种情况的原因,并提供一些解决方法。   1、接地体积不足
    发表于 06-17 09:19

    SMT贴片加工物料损耗的各种因素、原因与相应的解决方法

    损耗的原因以及解决方法对提升生产效率和降低成本非常重要。接下来为大家介绍SMT贴片加工物料损耗的常见原因解决方法。 SMT加工物料损耗原因
    的头像 发表于 06-03 10:39 683次阅读

    焊接质量缺陷产生的主要原因

    创想焊缝跟踪小编将与大家一起探讨焊接质量缺陷产生的主要原因。 材料选择不当 焊接质量缺陷的主要原因之一是材料选择不当。焊接材料包括焊条、电极、焊丝、焊剂等,如果选择的焊接材料与基材不匹配,或者焊接材料的质量
    的头像 发表于 05-15 09:41 648次阅读
    焊接质量缺陷产生的<b class='flag-5'>主要原因</b>

    Tektronix示波器无法检测到探头的可能原因解决方法

    在使用 Tektronix 示波器进行测量时,有时可能会遇到无法检测到探头的情况。这可能是由多种因素引起的,下面将详细介绍可能的原因以及解决方法。 1. 探头连接问题 原因: 探头未正确连接到示波器
    的头像 发表于 05-08 11:09 734次阅读
    Tektronix示波器无法检测到探头的可能<b class='flag-5'>原因</b>及<b class='flag-5'>解决方法</b>

    谐波引起电缆损坏的主要原因

    谐波是指在电力系统中出现的频率为整数倍于基波频率的波动现象。在电缆中传输的电能中,谐波存在的情况是很常见的。然而,谐波也是导致电缆损坏的主要原因之一。
    的头像 发表于 03-14 14:20 692次阅读
    谐波引起电缆损坏的<b class='flag-5'>主要原因</b>

    PCB产生串扰的原因解决方法

    PCB产生串扰的原因解决方法  PCB(印刷电路板)是电子产品中非常重要的组成部分,它连接着各种电子元件,并提供电气连接和机械支撑。在 PCB 设计和制造过程中,串扰是一个常见的问题,它可
    的头像 发表于 01-18 11:21 2027次阅读

    PCB焊盘脱落的原因解决方法

    PCB焊盘脱落的原因解决方法? PCB(印刷电路板)焊盘的脱落是一个常见的问题,它会导致电子设备无法正常工作。本文将详细介绍焊盘脱落的原因以及解决方法。 一、焊盘脱落的
    的头像 发表于 01-18 11:21 6749次阅读

    辊压机轴承位磨损主要原因

    电子发烧友网站提供《辊压机轴承位磨损主要原因.docx》资料免费下载
    发表于 01-10 14:10 0次下载

    现代独立显卡电力消耗的主要原因

    现代独立显卡电力消耗的主要原因 近年来,随着科技的不断发展和人们对高画质游戏和图形处理需求的增加,独立显卡已经成为电脑的必备硬件之一。然而,独立显卡的电力消耗问题也逐渐浮出水面。本文将详细探讨现代
    的头像 发表于 01-09 13:52 549次阅读

    电流探头干扰的原因解决方法

    电流探头干扰的原因解决方法  电流探头干扰是指电流传感器(也称电流探头或电流传感器)在测量过程中,由于外界原因引起的测量值的误差或干扰。这些干扰可能来自电源线、电磁辐射、接地线、相邻传感器等。本文
    的头像 发表于 01-08 16:08 1330次阅读

    电阻屏触摸失灵的原因解决方法

    电阻屏触摸失灵是指在使用电阻屏时,手指或触摸笔无法正常识别触摸操作,导致无法进行正常的操作。这种情况可能是由于多种原因引起的,下面将介绍一些常见的原因解决方法。 屏幕表面脏污:电阻屏的工作原理
    的头像 发表于 12-28 17:34 7834次阅读

    WLAN显示不可上网的原因分析及解决方法

    WLAN显示不可上网的原因分析及解决方法  WLAN(无线局域网)是一种无线通信技术,可以使设备通过无线方式连接互联网。然而,有时我们可能会遇到WLAN显示不可上网的问题。 起初,要明确
    的头像 发表于 12-28 11:15 2589次阅读

    以太网阻塞的常见原因解决方法

    以太网阻塞的常见原因解决方法 以太网阻塞是指在以太网中数据流量增加超过网络设备处理能力的情况下,导致网络性能下降、延迟增加、丢包率上升等问题。下面将详细讨论以太网阻塞的常见原因解决方法
    的头像 发表于 12-27 13:58 1249次阅读