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

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

3天内不再提示

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

OpenFPGA 来源:OpenFPGA 2024-11-11 11:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

很多FPGA工程师都有这种困惑,Vivado每次编译的结果都一样吗?

AMD官网上,有这样一个帖子:

Are Vivado results repeatable for identical tool inputs?

对大多数情况来说,Vivado编译的结果是一样的,但要保证下面的输入是一样的:

Design sources

Constraints

Tcl scripts and command sequences

Tool and command options

Vivado software version

Operating Systems

不同操作系统之间编译结果不能保证是相同的,尤其是Linux和Windows。

但下面的这些选项不能保证编译结果相同:

route_design -ultrathreads选项

plac_design -ultrathreads选项

使用一个routed design dcp,而且又重新跑了post-route和phys_opt_design

我们经常会设置set_param general.maxThreads,这个也是在使用ultrathreads选项时才会影响编译的repeatability。

其中place_design的ultrathreads只对UltraScale+ SSI 和vu440 有效:

a3433a42-9052-11ef-a511-92fbcf53809c.png

image-20240610145255204

route_design的ultrathreads解释如下,没有规定器件。

a35b7378-9052-11ef-a511-92fbcf53809c.png

image-20240610145242925

定位repeatablity的问题

最常见的问题就是post-route结果是不一样的,我们可以通过下面的方式来确认哪一步出现是不一致。

Vivado在每个实现命令的中间阶段都会在日志中报告一个checksum,这是基于设计网表和物理数据的签名。

可以比较不同runs之间的校验和,校验和不匹配有助于确定结果在何处不一致。

a3673e56-9052-11ef-a511-92fbcf53809c.png

image-20240610145309593

Checkpoints vs in-memory runs

对比下图中的两个流程,在place_design后,先存成dcp,另一个flow中是直接打开当前的dcp并进行后续的编译流程,这样的话,在open_checkpoint后,这两个网表的checksum可能会不同,但经过Phys_opt_design后,他们网表的checksum还是会一样的。

a3838f8e-9052-11ef-a511-92fbcf53809c.png

image-20240610145318561

总结一下,如果想让vivado的结果repeatablity,我们就只使用单线程编译:

set_paramgeneral.maxThreads1

而且保证输入的源文件、脚本、约束都是相同的。同时硬件环境也要一样,这样才能最大程度的保证结果的repeatablity。

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

    关注

    0

    文章

    696

    浏览量

    35275
  • Vivado
    +关注

    关注

    19

    文章

    860

    浏览量

    71392

原文标题:Vivado每次的编译结果是一样的吗?

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    文详解SystemC仿真库的编译

    AMD Vivado 设计套件以文件和库的形式提供仿真模型。仿真库包含器件和 IP 的行为和时序模型。编译后的库可供多个设计项目使用。用户必须在设计仿真之前通过名为 compile_simlib 的实用程序编译这些文件,以便为目
    的头像 发表于 12-12 15:08 5032次阅读
    <b class='flag-5'>一</b>文详解SystemC仿真库的<b class='flag-5'>编译</b>

    使用Vivado 2018.2编译E203的mcs文件,遇到的问题求解

    几个字节的差异,这个有没有问题?会不会是因为版本的不同导致的结果差异? 2. 我想在Vivado创建个项目,根据Makefile中的步骤创建了项目,但是项目的前面步骤都对了,就是在最后生成bitstream的步骤出错,说是
    发表于 11-11 06:04

    Vivado仿真之后没有出现仿真结果的解决方法

    ;Run Behavioral Simulation之后,会出现如下图界面,此时,在Tcl Console中并没有出现仿真结果。 没有出现仿真结果的原因是没有给Vivado时间进行仿真,解决方法
    发表于 10-31 06:24

    一样的展会,不一样的精彩 2025湾芯展圆满收官

    10月17日,2025湾区半导体产业生态博览会(2025湾芯展)在深圳会展中心(福田)圆满收官。全球600多家展商、超30场论坛,在6万平方米的展区内,打造场“不一样的展会”,呈现出“不一样的精彩
    的头像 发表于 10-29 16:56 1492次阅读
    不<b class='flag-5'>一样</b>的展会,不<b class='flag-5'>一样</b>的精彩 2025湾芯展圆满收官

    VIVADO中对NICE进行波形仿真的小问题的解决

    分别如下图 可以看到,输出运算结果的pritnf函数被#ifdef所定义,所以我们如果想在VIVADO的控制台看到输出结果,要先在main.c中定义DEBUG_INFO,如下图 这样,将
    发表于 10-27 06:41

    vcs和vivado联合仿真

    使用vivado2021.02编译VCS仿真库时定要加-no_systemc_compile选项进行编译,否则编译会出现systemc的错
    发表于 10-24 07:28

    FPGA开发板vivado综合、下载程序问题汇总

    安装到半显示“installation failed”可以选择ignore继续安装。效果是一样的。安装完之后重启vivado,再下载bitstream,应该可以看到hardware可以自动连接了。
    发表于 10-24 07:12

    Nucleistudio+Vivado协同仿真教程

    编译完成后,我们会在工程目录下发现生成了.verilog文件,此即为我们仿真需用到的文件,可以将改文件复制保存在tb目录下 联合仿真 在我们前面创建的Vivado工程中添加仿真文件
    发表于 10-23 06:22

    一样的展会,不一样的精彩:2025湾芯展顺利收官

    内,打造场"不一样的展会",呈现出"不一样的精彩"。本届展会人气火爆,展期三天累计接待总量达到11.23万人次。参展企业集中发布年度新品数约2500件,新品发布与商业合作收获颇丰。   不
    的头像 发表于 10-19 20:27 896次阅读
    不<b class='flag-5'>一样</b>的展会,不<b class='flag-5'>一样</b>的精彩:2025湾芯展顺利收官

    现场解决EMC电磁辐射干扰:“望闻问切”,像中医一样

    南柯电子|现场解决EMC电磁辐射干扰:“望闻问切”,像中医一样
    的头像 发表于 09-04 09:47 1034次阅读

    别蒙我,PCB板上这几对高速走线怎么看我觉得一样

    吗?那我们来看看上面仿真的这组从间隔50mil到350mil,每隔50mil递进的设计的损耗结果。注意哈,不同的间隔设计,总的长度都是一样长的哈!这点很关键,如果总长不
    发表于 06-09 14:34

    如何使用One Spin检查AMD Vivado Design Suite Synth的结果

    本文讲述了如何使用 One Spin 检查 AMD Vivado Design Suite Synth 的结果(以 Vivado 2024.2 为例)。
    的头像 发表于 05-19 14:22 1485次阅读
    如何使用One Spin检查AMD <b class='flag-5'>Vivado</b> Design Suite Synth的<b class='flag-5'>结果</b>

    想通过I2C访问闪存来测试对cy7c6541的访问,但是访问结果好像与datasheet不一样,怎么解决这个问题?

    我想通过I2C访问闪存来测试对cy7c6541的访问,但是访问结果好像与datasheet不一样。 是否有关于 cy7c6541 闪存或 eeprom 的数据表? 或者有其他方法可以帮我完成访问测试(读取rom/flash里的值然后和标准值对比)?
    发表于 05-19 06:44

    适用于Versal的AMD Vivado 加快FPGA开发完成Versal自适应SoC设计

      - 顶层 RTL 流程 - 通过使用顶层 RTL,用户能够像配置片上网络和收发器一样配置关键的硬核 IP,从而获得类似于传统 FPGA 设计的体验。 - 快速编译 - 全新“高级流程”实现算法融合了分层设计优化和并行执行机制,可有效解决拥塞、可布线性和运行时等问题。
    的头像 发表于 05-07 15:15 1473次阅读
    适用于Versal的AMD <b class='flag-5'>Vivado</b>  加快FPGA开发完成Versal自适应SoC设计

    贴片电容和瓷片电容一样吗?

    贴片电容和瓷片电容并不完全一样,它们在结构、材料、特点和应用等方面存在些差异。以下是对这两种电容器的详细比较: 、结构差异 贴片电容: 结构上,贴片电容是个硅芯片,电极片被镀在芯
    的头像 发表于 04-30 15:05 1050次阅读
    贴片电容和瓷片电容<b class='flag-5'>一样</b>吗?