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

    文章

    650

    浏览量

    32782
  • Vivado
    +关注

    关注

    19

    文章

    806

    浏览量

    66246

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

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

收藏 人收藏

    评论

    相关推荐

    做个数字示波器,结果自激了,为什么?

    想做个数字示波器,带宽20M的,为了使输入阻抗>1Mohm 采用最简单的电压跟随器,结果自激了。 使用了OPA656,换别低噪声高速运放一样,频率40M~120M不等,求解决
    发表于 09-20 07:49

    浅谈Vivado编译时间

    随着FPGA规模的增大,设计复杂度的增加,Vivado编译时间成为个不可回避的话题。尤其是些基于SSI芯片的设计,如VU9P/VU13P/VU19P等,布局布线时间更是显著增加。当
    的头像 发表于 09-18 10:43 573次阅读
    浅谈<b class='flag-5'>Vivado</b><b class='flag-5'>编译</b>时间

    为什么OPA695仿真软件的仿真结果和数据手册给出的参数不一样呢?

    请问为什么OPA695仿真软件的仿真结果和数据手册给出的参数不一样呢,请看下图: 1、仿真软件结果:带宽195MHz 2、数据手册给出的参数:带宽350MHz
    发表于 08-16 07:39

    采用同向输入使用TPA6120时,为什么插拔耳机接头后,左右声道分离度会改变,而且每次都不一样

    客户在使用TPA6120时,采用同向输入。在测试左右声道分离度时,发现每次插拔耳机接头时,分离度的参数都不一样。范围在-50~-80dB. 而如果不插拔耳机接头,追只是反复断电,上电,或者反复加载
    发表于 08-16 06:07

    NPN的光电开关一样

    一样。NPN型光电开关是种常用的光电传感器,广泛应用于工业自动化、机器人、智能交通等领域。虽然NPN型光电开关的基本工作原理相似,但它们在性能、结构、应用等方面存在差异。 、NPN型光电开关
    的头像 发表于 07-23 14:55 508次阅读

    Stem32CubeIDE能像Keil一样指定不同文件下的代码编译吗?

    Stem32CubeIDE能像Keil一样指定不同文件下的代码编译
    发表于 07-23 06:22

    锰芯磁环电感尺寸一样性能也一样

    电子发烧友网站提供《锰芯磁环电感尺寸一样性能也一样吗.docx》资料免费下载
    发表于 06-03 14:52 0次下载

    在cypress sample code(CYPD4226)中找不到hpi.c,每次编译报错,此文件如何找到?

    在cypress sample code(CYPD4226)中 找不到hpi.c, 但每次编译报错,此文件如何找到,谢谢!
    发表于 05-31 06:11

    请问怎么去编译不同型号的单片机?

    怎么去编译不同型号的单片机,像官方的demo一样? 这样我的个项目配置就可以用在很多的应用中了,不然每次配置项目很累的
    发表于 05-14 06:24

    Vivado编译常见错误与关键警告梳理与解析

    Xilinx Vivado开发环境编译HDL时,对时钟信号设置了编译规则,如果时钟由于硬件设计原因分配到了普通IO上,而非_SRCC或者_MRCC专用时钟管脚上时,编译器就会提示错误。
    的头像 发表于 04-15 11:38 4590次阅读

    不同品牌贴片绕线电感封装尺寸一样

    电子发烧友网站提供《不同品牌贴片绕线电感封装尺寸一样吗.docx》资料免费下载
    发表于 04-14 09:31 0次下载

    体式贴片电感封装尺寸是不是一样

    体式贴片电感封装尺寸是不是一样gujing 编辑:谷景电子 在众多电感产品中,体式贴片电感是特别重要的种电感元件,关于
    的头像 发表于 04-03 22:45 316次阅读

    TC377的DSADC标定结果不稳定是什么原因?

    大家好!按手册中的要求,每次复位后必须对DSADC进行标定,但实测发现,每次标定得到的系数都不一样,对于同个正弦波信号,采样得到的结果也不
    发表于 02-02 14:02

    AD633在multisim上仿真,结果与预期不一样怎么解决?

    按照官方提供的除法电路,在multisim上仿真,结果与预期不一样,求高手解释
    发表于 11-17 10:53

    同样的电机,电压等级、功率等一样,为什么电机的励磁电压不一样呢?

    请教了好多人,都没有个真正的答案。 同样的电机,电压等级、功率等一样,为什么电机的励磁电压不一样呢??
    发表于 11-17 08:28