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

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

3天内不再提示

Vivado的“Placement Exploration”配方案例分析

电子设计 来源:Plunify社区 作者:FPGA设计优化 2020-12-31 10:36 次阅读

尽管 Vivado 不支持 “placement cost tale”的功能,InTime 却有一个相似功能叫做“Placement Exploration”配方(Receipe),并且不会对性能产生任何影响。在本文中,我们将通过展示几则用户案例的结果,来了解这个布局配方的作用以及它能对您有哪些帮助。

1. 什么是“Placement Exploration”配方?

Placement Exploration 这种策略可以将非关键的寄存器位置随机化。这样可以让 Vivado 探索更多的可能性,使用不同的布局布线计算来产生不同的结果,同时不会影响设计的功能。

2. 运行原理

这个配方需要设计有一些非关键的单元(单元已经达到时序路径),目标器件要有一些未使用的 slice。设计中未使用的 slice 越多,就有更多的运行组合可以创造出来,从而提升随机性,取得更好的结果。

如果这些需要没有满足,用户在运行配方的时候会看到下面的报错。

这种情况下,您需要重新检验设计,看看是不是没有假路径(false path,适用于 InTime 2.2.1以前的版本)或者是不是器件可用的 slice 数量较少。如果是因为没有假路径,您可以查看是否可以为设计设置假路径。

3. 真实案例
我们继续前面案例。下面的代码可以让您使用FEP Tcl API 来在云端编译:

项目一
· Device 器件: xcvu190

· TNS (ns) : -5841.436

· WNS (ns): -0.725

· WHS (ns): 0.016

· CLB Utilization 利用率 (%): 80.15

· Run Time 运行时间: 04:46

o4YBAF9uKCKAPoBCAADW635s0Hk880.png

本设计优化了两轮。每轮有20-30次编译以及结果。对于 placement exploration,我们从前一轮的结果中选取最好的WNS 结果,在这个案例中,是-0.417ns。然后将它设置成“父版本”来进行探索。在下表(log)中,您可以看到结果中“种子”的作用,WNS 有着非常广泛的分布值。最好 WNS结果的平均值是-0.694ns,产生了高达0.457ns的巨大变化。如果您对比最好 WNS 结果和上一轮的 Placement Exploration,WNS 显著提升了43%。

图一: TNS 盒状图

图一: TNS 盒状图

图二: WNS盒状图

图二: WNS盒状图

项目二
· Device器件: xcvu190-flgb2104

· TNS (ns) : -10229.035

· WNS (ns): -1.203

· WHS (ns): 0.016

· CLB Utilization 使用率(%): 75.71

· Run Time 运行时间: 04:33

o4YBAF9uKCeAbwZvAADqqhg0cjA679.png

与项目一相似,项目二也有两轮优化。在第一轮中,目标是取得最好的WNS。我们使用上一轮最好的 WNS 结果(-0.404),运行一轮 placement exploration。基于 placement exploration 的结果, 平均值是-0.512ns。最好结果是-0.187,对于原父版本的结果来说,325ps是一个高达53%的巨幅提升。

图三: 项目二 TNS

图三: 项目二 TNS

图四: 项目二 WNS

图四: 项目二 WNS

4. 技术总结
结果的提升不言自明。如果您在为最终的300ps提升而奋战,请考虑使用这个方法,它能帮您在截止日期之前达到要求。

最后一点需要说明的是,运行附加的编译需要很多计算能力和运行时间。而最好的解决方案是云计算,您可以使用您自己的云服务,或者注册一个 Plunify Cloud 账户

编辑:hfy


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

    关注

    31

    文章

    5355

    浏览量

    120528
  • Vivado
    +关注

    关注

    19

    文章

    812

    浏览量

    66614
收藏 人收藏

    评论

    相关推荐

    云计算环境下的IP地址分配方

    之前我们聊过在计算机环境下IP地址的分配方式,但在云计算环境下,IP地址的分配方式更加灵活,可以根据实际需求进行配置,用来满足不同企业和应用的需求。 在云计算环境中,IP地址分配主要涉及到云服务
    的头像 发表于 12-19 14:02 158次阅读

    Xilinx_Vivado_SDK的安装教程

    I Agree,然后点击 Next: 选择 Vivado HL System Edition(一般选择这个设计套件比较完整,它比 Vivado HL Design Edition 多了一个 System Generator for DSP with Mat
    的头像 发表于 11-16 09:53 1108次阅读
    Xilinx_<b class='flag-5'>Vivado</b>_SDK的安装教程

    每次Vivado编译的结果都一样吗

    很多FPGA工程师都有这种困惑,Vivado每次编译的结果都一样吗? 在AMD官网上,有这样一个帖子: Are Vivado results repeatable for identical
    的头像 发表于 11-11 11:23 405次阅读
    每次<b class='flag-5'>Vivado</b>编译的结果都一样吗

    使用Vivado通过AXI Quad SPI实现XIP功能

    本博客提供了基于2023.2 Vivado的参考工程,展示如何使用Microblaze 地执行(XIP)程序,并提供一个简单的bootloader。
    的头像 发表于 10-29 14:23 376次阅读
    使用<b class='flag-5'>Vivado</b>通过AXI Quad SPI实现XIP功能

    Vivado使用小技巧

    有时我们对时序约束进行了一些调整,希望能够快速看到对应的时序报告,而又不希望重新布局布线。这时,我们可以打开布线后的dcp,直接在Vivado Tcl Console里输入更新后的时序约束。如果调整
    的头像 发表于 10-24 15:08 355次阅读
    <b class='flag-5'>Vivado</b>使用小技巧

    Vivado编辑器乱码问题

    ,但是在Vivado里面打开用sublime写的代码之后,经常出现中文乱码,让人很不舒服。究其原因就是一般来说第三方的编辑器是采用utf8的编码方式,而vivado的text editor不是这种方式。
    的头像 发表于 10-15 17:24 820次阅读
    <b class='flag-5'>Vivado</b>编辑器乱码问题

    浅谈Vivado编译时间

    随着FPGA规模的增大,设计复杂度的增加,Vivado编译时间成为一个不可回避的话题。尤其是一些基于SSI芯片的设计,如VU9P/VU13P/VU19P等,布局布线时间更是显著增加。当然,对于一些设计而言,十几个小时是合理的。但我们依然试图分析设计存在的问题以期缩短编译时
    的头像 发表于 09-18 10:43 1016次阅读
    浅谈<b class='flag-5'>Vivado</b>编译时间

    Vivado 2024.1版本的新特性(2)

    从综合角度看,Vivado 2024.1对SystemVerilog和VHDL-2019的一些特性开始支持。先看SystemVerilog。
    的头像 发表于 09-18 10:34 933次阅读
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(2)

    Vivado 2024.1版本的新特性(1)

    Vivado 2024.1已正式发布,今天我们就来看看新版本带来了哪些新特性。
    的头像 发表于 09-18 10:30 1394次阅读
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(1)

    Vivado 使用Simulink设计FIR滤波器

    今天给大侠带来Vivado经典案例:使用Simulink设计FIR滤波器,话不多说,上货。 FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,又称为非递归
    发表于 04-17 17:29

    深入探索Vivado非工程模式FPGA设计流程

    在设计过程的每个阶段,设计者均可以打开Vivado集成开发环境,对存储器中保存的当前设计进行分析和操作。
    发表于 04-03 09:36 1035次阅读
    深入探索<b class='flag-5'>Vivado</b>非工程模式FPGA设计流程

    介绍一种OpenAtom OpenHarmony轻量系统适配方案

    本文在不改变原有系统基础框架的基础上, 介绍了一种OpenAtom OpenHarmony(以下简称“OpenHarmony”)轻量系统适配方案
    的头像 发表于 03-05 09:24 1203次阅读
    介绍一种OpenAtom OpenHarmony轻量系统适<b class='flag-5'>配方案</b>

    使用P4和Vivado工具简化数据包处理设计

    电子发烧友网站提供《使用P4和Vivado工具简化数据包处理设计.pdf》资料免费下载
    发表于 01-26 17:49 0次下载
    使用P4和<b class='flag-5'>Vivado</b>工具简化数据包处理设计

    如何禁止vivado自动生成 bufg

    Vivado中禁止自动生成BUFG(Buffered Clock Gate)可以通过以下步骤实现。 首先,让我们简要了解一下什么是BUFG。BUFG是一个时钟缓冲器,用于缓冲输入时钟信号,使其更稳
    的头像 发表于 01-05 14:31 2224次阅读

    Vivado时序问题分析

    有些时候在写完代码之后呢,Vivado时序报红,Timing一栏有很多时序问题。
    的头像 发表于 01-05 10:18 2207次阅读