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

    文章

    680

    浏览量

    34214
  • Vivado
    +关注

    关注

    19

    文章

    835

    浏览量

    68970

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    FPGA Verilog HDL语法之编译预处理

    Verilog HDL语言和C语言一样也提供了编译预处理的功能。“编译预处理”是Verilog HDL编译系统的个组成部分。Verilog
    的头像 发表于 03-27 13:30 ?665次阅读
    FPGA Verilog HDL语法之<b class='flag-5'>编译</b>预处理

    STM32CubeIDE编译设置是否有像keil一样编译后执行Bat脚本的功能和设置?

    STM32CubeIDE编译设置问题,是否有像keil一样编译后执行Bat脚本的功能和设置?或者有相关的脚本和插件?
    发表于 03-14 15:59

    ADS1100每次复位ADS采集到数据都不一样,是时序问题吗?

    为什么我每次复位ADS采集到数据都不一样啊 是时序问题吗?
    发表于 02-12 07:06

    用单片机的SPI控制ADS1191,发送命令写寄存器后读取相应寄存器的值就不一样,而且每次读出来的都不一样,为什么?

    现用单片机的SPI控制ADS1191,使用内置晶振时钟,发送命令写寄存器后,再读取相应寄存器的值就不一样,而且每次读出来的都不一样,设置让CLK脚在起振后输出时钟信号,示波器也测不到相应的时钟信号,请给予提示,已经停在这2天了
    发表于 01-23 08:38

    tlv5618的参考电压般都是多少,是怎么选的?是不是DAC的参考电压选值一样

    tlv5618的参考电压般都是多少,是怎么选的?是不是DAC的参考电压选值一样? 如果电源电压VDD不是正好是3或5V,3.58V时影响大吗?
    发表于 01-20 08:00

    ldc1000的spi通信,为什么在这种情况下写不进数据,读数据也每次一样

    ldc上电后,即数字和模拟端供电后,只连接spi的四根线到mcu,而其他脚悬空,这种情况下能否读写ldc1000的寄存器。 为什么我在这种情况下写不进数据,读数据也每次
    发表于 01-13 08:21

    每次配置DAC5682Z寄存器的参数一样,但是频谱测得输出信号却不同,为什么?

    现在遇到个奇怪的现象,每次配置DAC5682Z寄存器的参数一样,但是频谱测得输出信号却不同。 配置的目标是输出个56MHz单频点信号
    发表于 12-25 07:30

    AFE4400读取6个寄存器值,每次读取的值都是一样的怎么解决?

    最近在开发AFE4400时,读取6个寄存器值,LED2VAL和LED1VAL寄存器值一样,ALED2VAL和ALED1VAL寄存器值一样,LED2-ALED2VAL和LED1-ALED1VAL寄存器值一样,且
    发表于 12-25 07:18

    ads1243每次重新上电ad采集值不一样是怎么回事?

    本人利用ads1243采集压力传感器,发现每次上电,外界条件一样的情况下,ad值取16位波动,上电之后就按照刚上电时候的值平稳下去,求高手解答,是否有例程或是硬件接法,另外,想咨询pdwn引脚
    发表于 12-18 06:08

    ADS1247模拟SPI读取寄存器数据,读取的数据每次都不一样,为什么?

    ADS1247模拟SPI 读取寄存器数据,读取的数据每次都不一样。比对过时序,程序没有问题。示波器抓取的波形显示命令已经发出,试了好几块板子都是这样。 PS:START 引脚已经拉高
    发表于 12-13 08:44

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

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

    浅谈Vivado编译时间

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