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

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

3天内不再提示

pulseview软件导入并添加串口解码器

OpenFPGA 来源:CSDN 作者:CSDN 2022-10-19 09:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

简介

经常使用RTL例如verilog进行数字逻辑设计的朋友,仿真一定是一个绕不开的话题。在一些标准的数字接口和协议上,使用仿真软件例如modelsim或者vcs进行仿真后,得到的都是波形文件,使用相应的波形查看器查看数字信号的变化以确认协议逻辑设计的正确性,这点一般需要凭借个人丰富的经验和对协议的充分理解才能保证。可谓是“人脑解码器”,效率低下且很容易出错。例如下图中的串行发送数据不经解码很难确认正确性。

d80dfe30-4f48-11ed-a3b6-dac502259ad0.png

市面上一些逻辑分析仪配套软件例如DSview或是pulseview拥有庞大的数字协议解码器库,配合逻辑分析仪使用时能够快速分析设计正确性,但这样一般又都需要逻辑分析仪硬件设备以及数字逻辑设计的实现载体例如FPGA等,也很不方便。

经过研究,逻辑分析仪软件例如pulseview能够通过导入其他格式波形(例如vcd)文件,再对相应通道添加解码器,即可实现仿真+解码验证的全套软件实现流程,不需要借助硬件进行分析,并且也不需要靠人工去分析协议的正确性,十分方便。

例如上图中的波形导出vcd文件后由pulseview软件导入并添加串口解码器后得到如下图所示的结果,可以看到串口协议设计正确且发送的数据十分清晰被解码出来。

d8180308-4f48-11ed-a3b6-dac502259ad0.png

软件和波形文件格式

Pulseview是一款开源的逻辑分析仪软件,具有十分漂亮的界面和强大的解码库,支持Windows,Linus,MacOS等多个平台,可以通过导入波形文件进行解码和分析,具体介绍可以查看官方Wiki。

VCD (Value Change Dump)是一个通用的格式。 VCD文件是IEEE1364标准(Verilog HDL语言标准)中定义的一种ASCII文件。它主要包含了头信息,变量的预定义和变量值的变化信息。正是因为它包含了信号的变化信息,就相当于记录了整个仿真的信息,我们可以用这个文件来再现仿真,也就能够显示波形。

本次的教程即通过逻辑分析仪配套软件pulseview读取vcd文件进行解码。

使用过程

参考Verilog和Testbench设计源码在github:

https://github.com/ITANGTANGI/verilog_decoder_pulseview

本次教程分为Windows端和Linux端两个部分。

Windows平台

软件安装

首先到官网

https://sigrok.org/wiki/Downloads

如下图所示,根据电脑的配置下载Windows安装包,已经使用过sigrok兼容的逻辑分析仪的话应该电脑中都有pulseview软件了。

d82558fa-4f48-11ed-a3b6-dac502259ad0.png

下载完成后双击安装包,按照正常软件安装步骤正常安装即可,没有啥需要注意的。如下图所示就是安装按成了。

d88c17de-4f48-11ed-a3b6-dac502259ad0.png

安装完成后不会生成快捷方式,在“开始”菜单栏中找到如下图所示的sigrok文件夹中pulseview打开或自行添加快捷方式即可。

d89558a8-4f48-11ed-a3b6-dac502259ad0.png

至此软件安装完成。

vcd波形文件生成

因为VCD是 Verilog HDL语言标准的一部分,因此所有的verilog的仿真器都要能够实现这个功能,也要允许用户在verilog代码中通过系统函数来dump VCD文件。我们可以通过Verilog HDL的系统函数dumpfile来生成波形,通过dumpvars的参数来规定我们抽取仿真中某些特定模块和信号的数据。

基础波形生成和导入显示操作如下例代码中添加的一个initial块,里面使用dumpfile生成了waveform.vcd文件,并把clk_i和data_i信号添加进波形文件的变量中。

样例代码:

`timescale1ns/1ps

modulevitual_logic_decoder_tb;

//vitual_logic_analyzerParameters
parameterPERIOD=10;
parameterSAMP_CLK_FREQ=100_000_000;
parameterSAMP_CHANNELS=8;

//vitual_logic_analyzerInputs
regclk_i=0;
reg[SAMP_CHANNELS-1:0]data_i=0;

//vitual_logic_analyzerOutputs

initialbegin
$dumpfile("waveform.vcd");
$dumpvars(0,vitual_logic_decoder_tb.clk_i,vitual_logic_decoder_tb.data_i);
end

//dumpfsbl
initialbegin
$fsdbDumpfile("waveform.fsdb");
$fsdbDumpvars(0);
end

//Clockgenerate
initial
begin
forever#(PERIOD/2)clk_i=~clk_i;
end

always@(posedgeclk_i)begin
data_i<= data_i + 8'd1;
end

//operations
initial
begin
#6000
$finish;
end

endmodule

使用Windows下的Verilog仿真软件,我这里使用的是Modelsim,也可以使用vivado自带的仿真器或者iverilog等对上述代码进行仿真。仿真后会在仿真文件夹下生成waveform.vcd文件。Verilog仿真的流程不介绍。

打开pulseview软件,点击菜单栏open图标右侧小三角,选择Import Value Change Dump data选项,界面如下图所示:

d8a90254-4f48-11ed-a3b6-dac502259ad0.png

打开生成的vcd文件

d8b388d2-4f48-11ed-a3b6-dac502259ad0.png

参数设置,可以不用管

d8e535ee-4f48-11ed-a3b6-dac502259ad0.png

点击OK后,即可成功加载波形

d90d82a6-4f48-11ed-a3b6-dac502259ad0.png

波形解码

编写一个串口发送Hello world!字符串的Verilog程序,按照上述方法进行仿真生成vcd文件,使用pulseview加载后如下图所示。

d94c2646-4f48-11ed-a3b6-dac502259ad0.png

点击箭头所指,打开解码器库界面,搜索UART,并双击UART解码器添加到波形图中。

d978dca4-4f48-11ed-a3b6-dac502259ad0.png

点击波形图中的UART解码器,根据自己的设计选择需要解码的通道,设置波特率等参数,选择数据显示格式为ASCII,选择完成后会自动重新解码。

d983b142-4f48-11ed-a3b6-dac502259ad0.png

解码完成后显示正确的解码结果。

d9992db0-4f48-11ed-a3b6-dac502259ad0.png

其它功能

解码器按钮右边的“Math”按钮可以支持对通道使用数学表达式进行多种算术逻辑运算,可以实现很多一般数字逻辑设计波形查看器不能实现的功能。

d9a1af8a-4f48-11ed-a3b6-dac502259ad0.png

提升解码性能技巧

在解码或加载仿真时间单位小或是仿真时间长的vcd波形时,pulseview软件需要执行比较长的时间,执行时间和CPU性能有关。

可以通过在Testbench设计中的timescale降低仿真精度,或者是减少仿真时间,避免过多的无用波形产生。这方面读者可以自行发挥。

备注

Windows下Modelsim仿真过程中,仿真器会占用vcd文件导致pulseview无法加载(打开VCD文件时卡死),暂未找到解决办法。关闭Modelsim软件再加载vcd波形就行。不知有没更好解决办法。

重新仿真后,不需要点击open按钮重新打开vcd文件,点击软件左上角的reload按钮即可自动重新加载波形并解码,无需重新设置。

d9c4b340-4f48-11ed-a3b6-dac502259ad0.png

Linux平台

软件安装

Linux下pulseview软件无需安装,到官网

https://sigrok.org/wiki/Downloads

下载Linux的执行文件,用chmod 777 赋予可执行权限后直接运行即可。

d9cece52-4f48-11ed-a3b6-dac502259ad0.png

仿真,波形显示和解码

剩下的操作和Windows平台相同,只不过是使用的仿真软件不同而已,参考源码中给了VCS工程例程。

审核编辑 :李倩


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

    关注

    9

    文章

    1204

    浏览量

    42877
  • 仿真
    +关注

    关注

    53

    文章

    4411

    浏览量

    137684
  • 源码
    +关注

    关注

    8

    文章

    682

    浏览量

    31100

原文标题:使用Pulseview软件辅助verilog数字设计仿真协议解码

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于E203 RISC-V的音频信号处理系统 -CODEC(音频编解码器)配置

    CODEC介绍 本设计采用的音频编解码器是WM8731,该编解码器可以通过I2C进行寄存配置,可以调节主从模式、数据位数可设置为16bit、24bit、32bit。可以设置的传输模式为I2S、DSP等模式。 寄存
    发表于 10-28 06:29

    LM567C 音调解码器技术手册

    LM567 和 LM567C 是通用音调解码器,设计用于在通带内存在输入信号时提供饱和晶体管对地开关。该电路由一个 I 和 Q 检测组成,该检测由压控振荡驱动,该振荡
    的头像 发表于 09-24 10:00 791次阅读
    LM567C 音调<b class='flag-5'>解码器</b>技术手册

    增强T-BOX设计,新唐编解码器的重要作用

    、远程异常维护和更新。 数据收集和传输:安全保护和隐私加密。 多接口扩展:可定制的功能和软件应用程序。 在T-BOX中,编解码器(编码-解码器)起着至关重要的作用,充当主要的通信桥
    发表于 09-05 06:26

    解码器的 0.02-4.0 GHz 高隔离 SP4T 吸收开关 skyworksinc

    电子发烧友网为你提供()带解码器的 0.02-4.0 GHz 高隔离 SP4T 吸收开关相关产品参数、数据手册,更有带解码器的 0.02-4.0 GHz 高隔离 SP4T 吸收开关的引脚图、接线图
    发表于 08-08 18:33
    带<b class='flag-5'>解码器</b>的 0.02-4.0 GHz 高隔离 SP4T 吸收开关 skyworksinc

    0.1-2.7 GHz SP4T 开关,带集成逻辑解码器 skyworksinc

    电子发烧友网为你提供()0.1-2.7 GHz SP4T 开关,带集成逻辑解码器相关产品参数、数据手册,更有0.1-2.7 GHz SP4T 开关,带集成逻辑解码器的引脚图、接线图、封装手册、中文
    发表于 08-08 18:32
    0.1-2.7 GHz SP4T 开关,带集成逻辑<b class='flag-5'>解码器</b> skyworksinc

    解码器的 20 MHz-3.0 GHz 高功率 SP4T 开关 skyworksinc

    电子发烧友网为你提供()带解码器的 20 MHz-3.0 GHz 高功率 SP4T 开关相关产品参数、数据手册,更有带解码器的 20 MHz-3.0 GHz 高功率 SP4T 开关的引脚图、接线图
    发表于 08-08 18:32
    带<b class='flag-5'>解码器</b>的 20 MHz-3.0 GHz 高功率 SP4T 开关 skyworksinc

    0.25 - 2.15 GHz 4x2 开关矩阵,带音调/电压解码器 skyworksinc

    电子发烧友网为你提供()0.25 - 2.15 GHz 4x2 开关矩阵,带音调/电压解码器相关产品参数、数据手册,更有0.25 - 2.15 GHz 4x2 开关矩阵,带音调/电压解码器的引脚图
    发表于 08-07 18:35
    0.25 - 2.15 GHz 4x2 开关矩阵,带音调/电压<b class='flag-5'>解码器</b> skyworksinc

    4 x 2 开关矩阵,带音调/电压解码器 250 MHz–2.15 GHz skyworksinc

    电子发烧友网为你提供()4 x 2 开关矩阵,带音调/电压解码器 250 MHz–2.15 GHz相关产品参数、数据手册,更有4 x 2 开关矩阵,带音调/电压解码器 250 MHz–2.15
    发表于 08-06 18:30
    4 x 2 开关矩阵,带音调/电压<b class='flag-5'>解码器</b> 250 MHz–2.15 GHz skyworksinc

    OT82111_VC1:USB OTG音频解码器固件技术解析

    引言随着移动设备对高品质音频输出的需求不断提升,支持USBOTG和I²S输出的音频解码器成为便携音频领域的重要解决方案。本文将介绍一款专为移动设备设计、具备ASRC采样率转换功能的USBOTG音频
    的头像 发表于 07-25 15:23 578次阅读
    OT82111_VC1:USB OTG音频<b class='flag-5'>解码器</b>固件技术解析

    Texas Instruments TAC5x42接口编解码器数据手册

    ) 或 I^2^S音频格式,可在控制模式和目标模式下工作,通过引脚或硬件进行控制。TAC5x42接口编解码器同时支持差分和单端输入输出,是空间有限的音频应用的绝佳选择。这些接口编解码器
    的头像 发表于 07-14 14:43 574次阅读
    Texas Instruments TAC5x42接口编<b class='flag-5'>解码器</b>数据手册

    AI玩具爆发,音频编解码器如何满足语音交互需求

    解码器(Audio Codec)是用于压缩、解压缩和转换音频信号的硬件设备或软件算法。其核心作用是在保证音质的前提下,减少音频数据的存储空间和传输带宽需求。   通常音频编解码器拥有硬件和
    的头像 发表于 06-20 01:07 6931次阅读

    Transformer架构中解码器的工作流程

    解码器的作用主要是制作文本序列。与编码类似,解码器也配备了一组类似的子层。它具有两个Multi-Head attention层,一个点前馈层,并且在每个子层之后都包含剩余连接和层归一化。
    的头像 发表于 06-10 14:32 909次阅读
    Transformer架构中<b class='flag-5'>解码器</b>的工作流程

    DM5885视频解码器英文手册

    电子发烧友网站提供《DM5885视频解码器英文手册.pdf》资料免费下载
    发表于 04-02 14:42 1次下载

    监控网络高清视频解码器,开启安防监控新时代

    监控网络高清视频解码器,开启安防监控新时代 在安防监控领域,您是否还在为设备兼容性差、操作复杂、画面显示效果不佳而烦恼?现在,一款全新的监控网络高清视频解码器震撼登场,为您彻底解决这些难题
    的头像 发表于 02-20 14:59 1509次阅读
    监控网络高清视频<b class='flag-5'>解码器</b>,开启安防监控新时代

    深入了解山景蓝牙音频解码器的工作原理以及应用领域

    蓝牙音频解码器是一种用于将数字音乐解码成模拟声音信号的装置。蓝牙解码器现在被广泛应用于智能手机、平板电脑和电脑等数字音乐播放设备,能够一定程度上提高音质,让音乐更加高保真。
    的头像 发表于 01-08 09:39 2181次阅读
    深入了解山景蓝牙音频<b class='flag-5'>解码器</b>的工作原理以及应用领域