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

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

3天内不再提示

Vivado Waveform功能使用技巧详解

电子设计 ? 来源:CSDN 博主 ? 作者:FPGADesigner的博客 ? 2021-01-03 09:22 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

使用波形配置文件

Vivado Simulator允许用户自定义波形显示方式,当前的显示状态称作波形配置。波形配置可以保存为WCFG文件,供以后使用。一个波形配置对应一个Wave窗口,没有保存的波形配置显示为untitled。打开仿真后,File菜单中有与波形配置相关的指令:

pIYBAF9uJ2eAOJu8AAAe350sa0w911.png

这些控制功能依次是:

  • New Waveform Configuration:创建一个新的波形配置,Vivado会打开一个新波形窗口,但是不包含任何HDL对象,设计者从Scope或Object窗口中人工添加;
  • Open Waveform Configuration:打开配置文件同时打开一个波形窗口,会显示存储在WCFG文件中对象的波形数据;
  • Saving a Wave Configuration:保存当前波形配置到WCFG文件中。

如果关闭了仿真,下次需要使用是只是想查看上次仿真的结果,而不是重新运行仿真,点击Flow菜单下的Open Static Simulation,选择WDB文件即可(在project.sim/sim_1/behav路径下)。静态仿真模式下,Vivado Simulator会从WDB文件中读取数据并显示。

运行仿真过程中,会将显示的HDL对象的波形活动、Sope窗口中的对象、Objects窗口中的对象存储到WDB文件中。但注意,Vivado不能打开2014.3版本之前创建的WDB文件。

窗口对象(wave object)

向波形配置中添加一个HDL对象,其实并不是直接添加该对象,Vivado会创建一个窗口对象,该对象与HDL对象有联系也有区别。借助此特性,一个HDL对象可以创建多个与其相关的窗口对象,且每个窗口对象的显示设置可以不同。比如一个用16进制显示,另一个用10进制显示。

由HDL对象而来的窗口对象称作设计窗口对象,除此之外,还有其它的对象类型:隔离带(divider)、群组(group)、虚拟总线(virtual buses)。这些对象都是为了提高观察波形的便捷性,前两者示例如下图。虚拟总线是将多个信号组合为一个总线显示。

o4YBAF9uJ2iAReidAACHpYoHFgE233.png

波形窗口中包含Name、Value和波形三部分。

  • Name默认显示为short形式,右键菜单中Rename指令可以创建custom名称,Name指令选择显示方式为short、long(显示对象所处层次路径)或custom。
  • Value根据格式和基数设置显示方式不同,注意波形窗口中的radix和Objects窗口中的radix设置只作用于各自的窗口。

默认Value显示的基数为16进制,想要改变默认设置,在波形窗口中点击Settings,选择一个Radix:

o4YBAF9uJ2qAZyvsAAAgMCrKUgQ573.png

顺便再介绍下其它设置选项实现的功能效果:

  • Elide Setting:如果信号名字太长无法完整显示,该选项设置从哪边开始省略字符显示,包括left、middle和right。
  • Draw Waveform Shadow:选中,波形显示会带有阴影效果。
  • Show signal indices:选中,波形对象的Name左侧会显示对应的行数,并且可以拖动行数之间的横线来改变波形对象的高度。
  • Show grid lines:选中,波形窗口中会显示网格线。
  • Snap to Transition/Floating Ruler:与测量有关,具体在下文介绍。

在选中对象的右键菜单->Radix中可以设置单个信号的基数(应与该信号的本质相符),常见的基数已经非常熟悉。Radix还可以选择为Real,设计者可以在Real Setting中设置Value按指定的定点数或浮点数格式显示,提供了极大的便利性。

该功能非常实用,比如CORDIC IP核在计算arctan函数时,输出数据为带符号、小数点从MSB三位后的格式,只需要在这里设置相应格式,就可以直接显示为-pi~pi的范围,而不需要人工计算。

pIYBAF9uJ2uAEj0yAABj6IvgNqc392.png

设置模拟波形显示方式

有时总线数据用模拟波形的方式观察更直观,但注意信号的Radix设置必须符合其本质,才能显示正确的波形。比如一个总线数据按带符号二进制补码编码,Radix必须设置为一种带符号格式;如果一个数据为浮点数格式,必须选择real并做正确的设置。

在对象右键->Waveform Style,可选择模拟(Analog)或数字(Digital)显示方式,Anolog Settings中可以设置模拟波形的显示方式。注意:模拟显示仅支持位宽不超过64Bits的总线。

pIYBAF9uJ2yAJ9fKAABh6IsQul0968.png

下面介绍一下各选项的设置方法和效果:

  • Row Height:规定选中对象的显示高度,单位为像素点数目,相当于收缩或拉伸波形的高度(digital显示方式高度为20,analog显示高度默认为100)。
  • Y Range:规定波形区域的数值显示范围。Auto模式下根据当前的仿真时间内的值自动选择范围,且会随时间更新;Fixed设置固定的显示范围。
  • Interpolation Style:设置将数据点连成线的插值方式,Liner表示线性插值,Hold表示保持插值,两个点之间的数据会保持前一个点的数据值。
  • Off Scale:设置超出显示范围的波形该如何处理,Hide会隐藏超出范围的部分,Clip会超出范围为的部分限制在最大值/最小值(即削顶),overlap在超出范围时仍然会显示波形,但是波形会叠在其它波形对象上。
  • Horizontal Line:选中会在指定值处画一条水平线。

此外,某些总线信号的有效顺序可能与定义的Bit顺序相反,可以在右键菜单中选择“Reverse bit order”交换总线Bit顺序,如bus[7:0]交换后为bit[0:7],信号的值和波形也会跟着改变。

在时间刻度上右键,可以设置显示时间的方式,包括fs、ps、ns、us、ms、s,Auto会自动选择最适合的单位,Default表示HDL设计中规定的仿真精度。此外还有Samples以离散采样数值的方式显示,User为用户自定义的时间单位,但这两个设置对HDL无效。

观察波形辅助工具

上文提到窗口对象中还包括如下三类,来帮助设计观察仿真结果:

  • Group:一个Group相当于一个容器,将相关的波形对象组合在一个文件夹中。选中想要添加的对象,右键->New Group即可建立一个新组。注意选中group后delete会删除掉该组和内部所有的对象,如果只是想解散组,使用右键菜单中的Ungroup。
  • Divider:divider用来隔离不同的HDL对象,点击信号的右键菜单中->New Divider,会在其下方创建一条隔离带,delete即可删除。
  • Virtual Bus:可以将多个标量或向量组合在一起作为虚拟总线显示,按顺序选中要添加的对象,右键->New Virtual Bus。同样delete会删除掉虚拟总线所有对象,仅删除虚拟总线应使用Ungroup。

除此之外,Vivado还提供了一些其它特性帮助设计者分析波形中的数据:

1.光标

在波形上单击,会出现黄色的光标,称之为主光标;按住Shift键,再在另一个地方点击,会出现第二个光标,称之为辅助光标(虚线,会替换原主光标所在位置)。顶部会显示每个光标所处的时间点,底部有刻度尺且显示两者之间的时间差(显示刻度尺需要在设置中选中Floating Ruler)。单击波形窗口的任意地方,即可隐藏辅助光标。

o4YBAF9uJ22AH5kdAAAe-ftXLTk664.png

如果设置中选中了Snap to Transition,拖动光标过程中会有一个根据数据转换状态变换的圈(不选中该功能始终为空心圈,不会变化)。空心圈○表示光标处在信号的两个过度点之间(过度点即为值发生改变的点);实心圈●表示光标位于过度点处或标记(marker)上。如下图所示:

o4YBAF9uJ26AJfAnAABUgLR-XMw489.png

通过此功能,设计者即可准确地将光标置于信号的边缘处。波形窗口工具栏中还有Previous Transition和Next Transition两个功能,可以改变光标位置到选定对象的前一个或后一个过度点。可以同时选中多个对象。

2.标记

标记(Marker)用来指示波形中设计者关心的重大事件,可以对与标记事件相关的时间进行测量。在窗口工具栏中点击Add Marker(如下图红框)添加标记,自动测量并显示标记与光标之间的时间差。

pIYBAF9uJ3CAahJ2AAAPANqPA3w166.png

标记同样支持Snap to Transition功能,让设计者可以准确地标记信号边缘。在标记上右键,选中Delete Marke**r或**Delete All Markers即可删除标记。底部也会显示时间刻度尺辅助时间测量,0时刻从辅助光标开始,如果没有辅助光标会从选中的Marker处开始。

3.查找功能

右键菜单中Find/Find Value可分别用于查找某一对象或者选中对象中的特定值。空白框中输入带查找字符串,必须与设置的Radix相符,否则编辑框会变为红色提示错误(如十六进制就只能输入0-F)。

o4YBAF9uJ3GAKqWZAABLLQ4yA8k020.png

句号的点‘.’相当于通配符,如查找“1.2”,便会找到102、112等等。Match用于设置匹配模式,Beginning、End(以查找内容为开头或结尾)或Exact(精确值)。Previous和Next在结果之间切换,如果没有找到工具条会显示“Value not found”。

编辑:hfy


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

    关注

    3

    文章

    393

    浏览量

    32497
  • Vivado
    +关注

    关注

    19

    文章

    835

    浏览量

    69297
  • Waveform
    +关注

    关注

    0

    文章

    3

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Tektronix泰克MDO32示波器FFT功能使用指南

    应用于信号失真分析、噪声排查、电磁兼容性测试等场景。本文将详细介绍MDO32示波器的FFT功能使用步骤、参数设置技巧及典型应用案例,帮助用户高效掌握这一关键功能。 ? 二、FFT功能基础 1. 什么是FFT? FFT是离散傅里叶
    的头像 发表于 08-18 17:02 ?268次阅读
    Tektronix泰克MDO32示波器FFT<b class='flag-5'>功能使</b>用指南

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

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

    AMD Vivado Design Suite 2025.1现已推出

    AMD Vivado Design Suite 2025.1 现已推出,支持 AMD Spartan UltraScale+ 和新一代 Versal 器件。这一最新版本还新增了多项功能,可显著提升 Versal SSIT 器件的 FMAX 值,并对所有系列产品在 IP 集
    的头像 发表于 06-16 15:16 ?867次阅读

    泰克TBS1102X示波器FFT功能使用指南

    的频率成分、谐波分布及噪声特性。本文将详细介绍TBS1102X示波器的FFT功能使用方法,涵盖参数设置、操作步骤、实战案例及常见问题解决方案,帮助用户高效完成频谱分析任务。 ? 一、FFT功能概述与基本原理 快速傅里叶变换(FFT)是一种将时域信号转
    的头像 发表于 05-26 17:10 ?435次阅读
    泰克TBS1102X示波器FFT<b class='flag-5'>功能使</b>用指南

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

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

    一文详解Vivado时序约束

    Vivado的时序约束是保存在xdc文件中,添加或创建设计的工程源文件后,需要创建xdc文件设置时序约束。时序约束文件可以直接创建或添加已存在的约束文件,创建约束文件有两种方式:Constraints Wizard和Edit Timing Constraints,在综合后或实现后都可以进行创建。
    的头像 发表于 03-24 09:44 ?3722次阅读
    一文<b class='flag-5'>详解</b><b class='flag-5'>Vivado</b>时序约束

    AMD Vivado Design Suite IDE中的设计分析简介

    本文档涵盖了如何驱动 AMD Vivado Design Suite 来分析和改善您的设计。
    的头像 发表于 02-19 11:22 ?685次阅读
    AMD <b class='flag-5'>Vivado</b> Design Suite IDE中的设计分析简介

    Vivado Design Suite用户指南:逻辑仿真

    电子发烧友网站提供《Vivado Design Suite用户指南:逻辑仿真.pdf》资料免费下载
    发表于 01-15 15:25 ?0次下载
    <b class='flag-5'>Vivado</b> Design Suite用户指南:逻辑仿真

    AMD Vivado Design Suite 2024.2全新推出

    AMD Vivado Design Suite 2024.2 全新推出,使用 AMD Versal Adaptive SoC 进行设计的重大改进。此版本为 AMD Versal 自适应 SoC
    的头像 发表于 11-22 13:54 ?1185次阅读

    Xilinx_Vivado_SDK的安装教程

    I Agree,然后点击 Next: 选择 Vivado HL System Edition(一般选择这个设计套件比较完整,它比 Vivado HL Design Edition 多了一个 System Generator for DSP with Mat
    的头像 发表于 11-16 09:53 ?5906次阅读
    Xilinx_<b class='flag-5'>Vivado</b>_SDK的安装教程

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

    很多FPGA工程师都有这种困惑,Vivado每次编译的结果都一样吗? 在AMD官网上,有这样一个帖子: Are Vivado results repeatable for identical
    的头像 发表于 11-11 11:23 ?1470次阅读
    每次<b class='flag-5'>Vivado</b>编译的结果都一样吗

    使用Vivado通过AXI Quad SPI实现XIP功能

    本博客提供了基于2023.2 Vivado的参考工程,展示如何使用Microblaze 地执行(XIP)程序,并提供一个简单的bootloader。
    的头像 发表于 10-29 14:23 ?2020次阅读
    使用<b class='flag-5'>Vivado</b>通过AXI Quad SPI实现XIP<b class='flag-5'>功能</b>

    Vivado使用小技巧

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

    Vivado 2024.1版本的新特性(2)

    从综合角度看,Vivado 2024.1对SystemVerilog和VHDL-2019的一些特性开始支持。先看SystemVerilog。
    的头像 发表于 09-18 10:34 ?2097次阅读
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(2)

    Vivado 2024.1版本的新特性(1)

    Vivado 2024.1已正式发布,今天我们就来看看新版本带来了哪些新特性。
    的头像 发表于 09-18 10:30 ?2687次阅读
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(1)