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

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

3天内不再提示

FPGA开发:Vivado时序波形图保存和读取

454398 ? 来源:CSDN博主 ? 作者:逸璞丷昊 ? 2020-12-24 11:19 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

如何存储关键数据的方法,属于规模测试验证的手段,但对于Verilog的调试过程还不够直观,因为无法确切地了解Verilog代码仿真中各个关联信号是如何作用的。Verilog的确可以像C/C++一样启动调试模式,针对每行代码进行调试。但请注意,由于Verilog是并行执行的,而仿真是采用delta时间逐步并行推进的,采用代码调试较为困难,所以常常需要存储全部或部分仿真数据,这就是波形文件。

在进行FPGA开发的过程中,稍微大一点的项目,进行一次编译综合与布线是非常耗时的,所以在开发的过程中一般采取先进行功能仿真,功能仿真结果正确无误以后再进行综合和布局布线。一般来说,先添加好时钟约束,进行综合与布线时无严重警告,此时如果功能仿真(前仿)仍然正确,那么任务就基本完成了。但如果是一个比较完整的项目开发,应该还需要进行布线后的时延仿真(后仿)。这里,主要介绍如何将前仿和后仿的时序波形图保存以及再次打开上一次的仿真结果。

相关文件说明
1. 波形数据库文件(.WDB),其中包含所有的仿真数据。
2. 波形配置文件(.WCFG),其中包含于波形配置文件中的对象相关联的顺序和设置

在保存 .WCFG文件之前,对波形配置的修改(包括创建波形配置或添加HDL对象)不是永久性的,可以通过 File -> Save Waveform Configuration As 将波形配置保存下来。波形数据库文件(.WDB)包含了波形配置文件中所有信号的仿真数据,单个 .WDB可以对应多个 .WCFG文件, 可以通过打开 .WDB文件查看上一次保存下来的仿真波形。

具体的保存与读取
保存
1. 将需要观测的信号拉倒图形窗口界面
2. 设置仿真时间
3. 保存 .WCFG 波形配置文件到指定路径
4. 保存 .WDB 仿真波形。为了能将波形数据保存下来,需要在测试代码中加上如下代码,放在最末端即可。为了下一次仿真不影响已保存的仿真波形,建议将 .WDB 文件拷贝并修改名字。
`define dump_level 10
//module dump_task;
initial begin#1; //延迟1ns记录,方便与其他仿真动作协调
`ifdef VCS_DUMP //Synopsys VCD+格式存储
$display("Start Recording Waveform in VPD format!");
$vcdpluson();
$vcdplustraceon;
`endif

`ifdef FSDB_DUMP //Synopsys fsdb格式存储
$display("Start Recording Waveform in FSDB format!");
$fsdbDumpfile("dump.fsdb");
$fsdbDumpvars('dump_level);
`endif

`ifdef NC_DUMP//cadence 格式存储
$recordsetup("dump","version=1","run=1","directory=.");
$recordvars("depth=6");
`endif

`ifdef VCD_DUMP//工业标准VCD格式存储
$display("Start Recording Waveform in VCD format!");
$dumpfile("dump.vcd");
$dumpvars('dump_level);
`endif
end

5. 运行仿真(前后仿的 .WDB 会自动保存到 .sim/sim_1/ 下的三个路径之一,与仿真类型有关)。

读取
1. 点击Vivado的菜单栏中的 Flow -> Open Static simulation,然后选中之前保存的 .WDB 文件即可。

2. 点击Vivado的菜单栏中的 File -> Open Waveform Configuration,选择我们之前保存的 .WCFG文件即可恢复上一次的仿真结果

总结
时序仿真波形的保存与读取在大工程的功能仿真、时序仿真、以及问题分析中,可以为开发者节约很多时间。当一个项目比较复杂时,跑一次仿真耗时会非常长,尤其是需要进行后仿时,耗时比综合和布局布线更长,所以我们最好是将时序波形保存下来进行分析,可以避免浪费许多不必要的时间。

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

    关注

    1648

    文章

    22123

    浏览量

    621866
  • Vivado
    +关注

    关注

    19

    文章

    835

    浏览量

    69295
  • 时序仿真
    +关注

    关注

    0

    文章

    14

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用C#实现西门子PLC数据定时读取保存

    在平时开发中,我们时常会遇到需要后台静默运行的应用场景,这些程序不需要用户的直接操作或界面展示,而是专注于定时任务的执行。比如说,我们需要定期从西门子PLC(可编程逻辑控制器)中读取数据并进行保存,以便后续分析使用。
    的头像 发表于 08-07 16:17 ?1431次阅读
    使用C#实现西门子PLC数据定时<b class='flag-5'>读取保存</b>

    Vivado无法选中开发板的常见原因及解决方法

    在使用 AMD Vivado Design Suite 对开发板(Evaluation Board)进行 FPGA 开发时,我们通常希望在创建工程时直接选择
    的头像 发表于 07-15 10:19 ?685次阅读
    <b class='flag-5'>Vivado</b>无法选中<b class='flag-5'>开发</b>板的常见原因及解决方法

    求助,做一个波形图显示控件,要求调用excel表里面存的时间作为波形图的x值。

    我在做毕设的时候,要读取excel表格里面的数值,然后做到最后一步就是调用excel表里面的时间,把那个时间作为X轴的值。 现在就是能够索引并读取出来了,但是每次索引后,波形图就不显示上一个
    发表于 05-16 22:16

    基于 FPGA 的任意波形发生器+低通滤波器系统设计

    ,分别将它们放入了不同的Rom中,我们就可以通过Vivado进行编程,在时钟的驱动下,根据地址去读取Rom中的数据然后输出,即可产生波形数据。 我们拿到URAT串口接收的频率控制字后,利用case语句
    发表于 05-07 15:34

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

    设计、编译、交付,轻松搞定。更快更高效。 Vivado 设计套件提供经过优化的设计流程,让传统 FPGA 开发人员能够加快完成 Versal 自适应 SoC 设计。 面向硬件开发人员的
    的头像 发表于 05-07 15:15 ?725次阅读
    适用于Versal的AMD <b class='flag-5'>Vivado</b>  加快<b class='flag-5'>FPGA</b><b class='flag-5'>开发</b>完成Versal自适应SoC设计

    FPGA时序约束之设置时钟组

    Vivado时序分析工具默认会分析设计中所有时钟相关的时序路径,除非时序约束中设置了时钟组或false路径。使用set_clock_groups命令可以使
    的头像 发表于 04-23 09:50 ?636次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>时序</b>约束之设置时钟组

    Vivado HLS设计流程

    为了尽快把新产品推向市场,数字系统的设计者需要考虑如何加速设计开发的周期。设计加速主要可以从“设计的重用”和“抽象层级的提升”这两个方面来考虑。Xilinx 推出的 Vivado HLS 工具可以
    的头像 发表于 04-16 10:43 ?999次阅读
    <b class='flag-5'>Vivado</b> HLS设计流程

    各位大佬好 请问如何能将DAQ采集程序内部波形图的数连续送给DAQ输出程序?

    各位大佬好 请问如何能将DAQ采集程序内部波形图的数连续送给DAQ输出程序?直接连貌似因为隧道模式问题无法输出,请问此类问题如何解决
    发表于 04-02 10:38

    一文详解Vivado时序约束

    Vivado时序约束是保存在xdc文件中,添加或创建设计的工程源文件后,需要创建xdc文件设置时序约束。时序约束文件可以直接创建或添加已存
    的头像 发表于 03-24 09:44 ?3722次阅读
    一文详解<b class='flag-5'>Vivado</b><b class='flag-5'>时序</b>约束

    根据波形图编写Verilog代码

    根据下面的时序实现这个组合逻辑电路。
    的头像 发表于 02-17 14:38 ?627次阅读
    根据<b class='flag-5'>波形图</b>编写Verilog代码

    ADS1263工作时序与手册不一致怎么解决?

    2是细节放大后的,根据手册上的时序3),DRDY应该在SCLK第一个时钟沿的下降沿升高,但是实际上在第一个上升沿就变高了。 问题二:4中红色为DOUT脚输出信号,绿色为SCLK
    发表于 12-05 06:07

    ADS8866按照TI的3线MODE时序读数,读出的数据少了3位,为什么?

    ADS8866按照TI的3线MODE时序读数,读出的数据少了3位,附件是波形图
    发表于 11-28 07:39

    正点原子fpga开发指南

    定制硬件加速的应用。 1. 开发环境搭建 1.1 安装Xilinx Vivado Vivado是Xilinx提供的综合设计环境,用于设计、仿真和调试FPGA项目。从Xilinx官网下载
    的头像 发表于 11-13 09:35 ?2509次阅读

    Vivado使用小技巧

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

    LabVIEW波形图截取局部数据

    在一个简单数采项目中往往需要“数据显示”功能模块,在数据采集后进行数据的显示和分析。本期小编给大家带来一个放大局部数据以后拿到目标数据的小功能,可以在数据量较大或者想详细查看并分析某一段波形数据时用这个方法获取到局部数据。
    的头像 发表于 10-21 10:31 ?3469次阅读
    LabVIEW<b class='flag-5'>波形图</b>截取局部数据