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


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

    关注

    30

    文章

    5027

    浏览量

    117711
  • Vivado
    +关注

    关注

    18

    文章

    789

    浏览量

    65092
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    Vivado时序问题分析

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

    Vivado设计套件用户指南之功耗分析和优化

    电子发烧友网站提供《Vivado设计套件用户指南之功耗分析和优化.pdf》资料免费下载
    发表于 09-14 10:25 0次下载
    <b class='flag-5'>Vivado</b>设计套件用户指南之功耗<b class='flag-5'>分析</b>和优化

    Vivado Design Suite用户指南:设计分析与收敛技巧

    电子发烧友网站提供《Vivado Design Suite用户指南:设计分析与收敛技巧.pdf》资料免费下载
    发表于 09-13 15:45 0次下载
    <b class='flag-5'>Vivado</b> Design Suite用户指南:设计<b class='flag-5'>分析</b>与收敛技巧

    Vivado设计套件用户:使用Vivado IDE的指南

    电子发烧友网站提供《Vivado设计套件用户:使用Vivado IDE的指南.pdf》资料免费下载
    发表于 09-13 15:25 5次下载
    <b class='flag-5'>Vivado</b>设计套件用户:使用<b class='flag-5'>Vivado</b> IDE的指南

    配方示例程序的先决条件

      列出配方示例程序的先决条件 1.一个存储所有配方记录的配方数据块。配方数据块存储在装载存储器中。 2.在工作存储器中存储一个配方副本的活
    的头像 发表于 08-07 09:50 383次阅读
    <b class='flag-5'>配方</b>示例程序的先决条件

    如何实现基于FPGA Vivado的74系列IP封装呢?

    双击桌面图标打开Vivado 2017.2,或者选择开始>所有程序>Xilinx Design Tools> Vivado 2017.2>Vivado 2017.2;
    发表于 07-30 09:39 444次阅读
    如何实现基于FPGA <b class='flag-5'>Vivado</b>的74系列IP封装呢?

    vivado仿真流程

    vivado开发软件自带了仿真工具,下面将介绍vivado的仿真流程,方便初学者进行仿真实验。
    的头像 发表于 07-18 09:06 2533次阅读
    <b class='flag-5'>vivado</b>仿真流程

    如何在Vivado中添加时序约束呢?

    今天介绍一下,如何在Vivado中添加时序约束,Vivado添加约束的方法有3种:xdc文件、时序约束向导(Constraints Wizard)、时序约束编辑器(Edit Timing Constraints )
    的头像 发表于 06-26 15:21 2218次阅读
    如何在<b class='flag-5'>Vivado</b>中添加时序约束呢?

    三菱PLC配方编程实例

    分析程序,就是对一个寄存器的数据能保存能读取,并且能够跟着配方,来做不同的数据保存读取,这里读取和保存,采用传送指令,要求能跟随配方做出更改,所以采用变址寄存器
    的头像 发表于 05-25 09:42 1432次阅读
    三菱PLC<b class='flag-5'>配方</b>编程实例

    能否提供LPDDR4-3200 3G“Row 16bit”所有颗粒建议的最新搭配方案或列表?

    我们使用 LPDDR4-3200,3G Memory 应用于 I.MAX8MQ (MIMX8MQ6DVAJZAB)。 能否提供LPDDR4-3200 3G“Row 16bit”所有颗粒建议的最新搭配方案或列表?
    发表于 05-06 07:59

    Vivado中实现ECO功能

    关于 Tcl 在 Vivado中的应用文章从 Tcl 的基本语法和在 Vivado 中的 应用展开,继上篇《用 Tcl 定制 Vivado 设计实现流程》介绍了如何扩展甚 至是定制 FPGA
    的头像 发表于 05-05 15:34 1794次阅读
    在<b class='flag-5'>Vivado</b>中实现ECO功能

    用TCL定制Vivado设计实现流程

    今天推出Xilinx已发布的《Vivado使用误区与进阶》系列:用TCL定制Vivado设计实现流程。
    的头像 发表于 05-05 09:44 725次阅读
    用TCL定制<b class='flag-5'>Vivado</b>设计实现流程

    Vivado使用进阶:读懂用好Timing Report

    对 FPGA 设计的实现过程必须以满足 XDC 中的约束为目标进行。那我们如何验证实现后的设计有没有满足时序要求?又如何在开始布局布线前判断某些约束有没有成功设置?或是验证约束的优先级?这些都要用到 Vivado 中的静态时序分析工具。
    的头像 发表于 05-04 11:20 2728次阅读
    <b class='flag-5'>Vivado</b>使用进阶:读懂用好Timing Report