新手教程03:通过makefile脚本使用VCS+Verdi进行联合仿真

这篇具有很好参考价值的文章主要介绍了新手教程03:通过makefile脚本使用VCS+Verdi进行联合仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

makefile脚本的方式使用VCS

1. 自动生成 .fsdb 文件

2. 生成 filelist.f 文件

3. 书写 makefile 脚本

4. termial 中运行仿真

5. verdi 的快捷操作

总结


前言

零基础初学数字IC,学会什么写什么,与大家一起进步。

本文主要介绍如何通过makefile脚本的方式用VCS+Verdi进行联合仿真。


makefile脚本的方式使用VCS

1. 自动生成 .fsdb 文件

因为要使用verdi进行仿真,所以我们需要在进行仿真之前,在testbench文件中添加如下代码,以便生成 .fsdb 文件,以便 verdi 进行仿真。

'ifdef   FSDB
initial  begin
    $fsdbDumpfile(XXX.fsdb);
    $fsdbDumpvars(0);
    $fsdbDumpMDA;
end
'endif

verdi脚本,数字IC新手教程,linux

  • $fsdbDumpfile(XXX.fsdb); : 用于定义 .fsdb 波形文件;
  • $fsdbDumpvars; : 用于定义Dump 的变量;这里再详细介绍一下这一条命令,完整的格式应该是 $fsdbDumpvar(depth, instance, parameter);
  • depth=0 表示dump instance下所有层次的信号,depth=1 表示只dump instance的信号;
  • instance 可以指定dump 的 hierarchy;
  • parameter 表示dump时可以选择的一些选项,"+mda" 表示dump memory 和 多维数组的数据;"+all" 表示 dump 所有信号;
  • $fsdbDumpMDA; : 添加这一句可以用于查看寄存器变量,配合vcs命令使用。

当需要查看多维数组的数据的时候,可以参考如下所示的方法:

verdi脚本,数字IC新手教程,linux

2. 生成 filelist.f 文件

find -name '*.v' > filelist.f

3. 书写 makefile 脚本

all: clean com sim verdi

clean:
    rm -rf 

com:
    vcs -full64 -f filelist.f -R +v2k -debug_access+all -timescale=1ns/1ns -fsdb +define+FSDB -l com.log

sim:
    ./simv -l sim.log

verdi:
    verdi -f filelist.f -ssf *.fsdb -nologo &

-full64:支持64位模式下的编译仿真;

-R:编译后立即执行仿真;

+v2k:支持2001 verilog标准;

-f filelist.f : 读入filelist.f 文件(包含文件列表的文件);

-debug_access+all:打开debug开关;

-timescale=1ns/1ns:定义仿真精度;

-fsdb :dump fsdb波形;

+define+FSDB:使用源代码中`ifdef所定义的宏;

-ssf  *.fsdb : 打开 .fsdb 波形文件;

-nologo : 不显示软件欢迎界面;

& :在后台打开 verdi,不占用当前 terminal ;

4. termial 中运行仿真

verdi脚本,数字IC新手教程,linux

命令运行之后,verdi 界面自动打开,如下:

verdi脚本,数字IC新手教程,linux

5. verdi 的快捷操作

verdi脚本,数字IC新手教程,linux

  •  显示波形:鼠标拖动信号至nwave界面;模块界面按 ctrl+4;代码界面按 ctrl+w;
  • ntrace 界面按 X,可以显示信号的具体值,方便 debug;
  • 全局波形:F     放大波形:拖动鼠标        缩小波形:Z
  • 显示信号结构:H;
  • 标记时间节点:shift + M ;
  • 信号保存:shift + S,信号恢复:r

6. 使用verdi进行debug

  • 当我们使用verdi进行debug的过程中,难免会遇到需要修改代码的时候,如果在终端使用make all 命令时,会发现系统重新打开了一个verdi窗口,我们之前已经添加到波形窗口的波形全部消失不见了,又需要重新添加波形然后再进行分析,这样非常的繁琐。这里提供一个便捷的方法:不用关闭verdi窗口,修改设计后,输入如下所示的命令,然后在verdi窗口中按shift+L 进行刷新即可。
    vcs -full64 -R -fsdb +define+FSDB -f filelist.f

        参考文章:VCS与Verdi工具初体验 - 知乎 (zhihu.com)


总结

以上就是利用makefile脚本方式使用 VCS+Verdi 联合仿真的方法,笔记如果有错误的地方,欢迎大家留言纠正~文章来源地址https://www.toymoban.com/news/detail-641224.html

到了这里,关于新手教程03:通过makefile脚本使用VCS+Verdi进行联合仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 逻辑仿真工具VCS的使用-Makefile

            Gvim写RTL code,VCS仿真,Verdi看波形,DC做综合下约束,Primetime做STA,Spyglass做异步时序分析。            VCS全称Verilog Computer Simulation ,VCS是逻辑仿真EDA工具的编译源代码的命令。要用VCS做编译仿真,首先得有一个RTL代码,比如我们写了一个全加器和全加器的

    2024年02月02日
    浏览(28)
  • vcs+verdi仿真Verilog代码

    我们以一个简单的加法器为例,来看下如何用vcs+verdi仿真Verilog文件并查看波形。 源文件内容如下: 我们再定义一个宏定义的文件: 我们需要再定义一个testbench文件: 再定义一个filelist文件: dut.f 最后就是需要一个Makefile文件了: 总的文件如下: 执行 make all : 跑完后如下

    2024年02月13日
    浏览(33)
  • 【VCS+Verdi联合仿真】~ 以计数器为例

    首先,先声明一下,我写这篇博客的时候我就是一个纯小白,实不相瞒,刚刚学了一天,哈哈哈,没错,你没看错,就是一天!!!主要是因为前天因为刷题和找工作的需要,需要熟悉VCS和Verdi的联合仿真(据说是很好用,随大流呗!!!),所以才会有接下来的一些相关博

    2023年04月12日
    浏览(26)
  • VCS与Verdi联仿,简要万能工程模板,持续更新中...

    一、背景 学习verilog,故用vcs来编译verilog,用verdi来查看波形。 提供一套简要verilog工程模板去执行教程中代码,并分析波形。 二、编写工程模块 建立工程在temp文件夹下新建文件夹/rtl、/sim、/tb,如下: 在/rtl文件夹下新建两个.v文件: template.v和timescale.v ,为模板rtl代码。

    2024年02月12日
    浏览(30)
  • linux VCS+verdi运行UVM实战(第二章)中的例子

    目录 前言 介绍 建立工程 运行代码 查看波形 总结 前言 用VCS+verdi运行了下UVM实战中的例子(第二章)。 在某宝上花了几十块,买了个虚拟机(已经安装好VCS+verdi)。直接用UVM实战中,现成的uvm代码跑了下。 UVM实战源码下载地址:UVM实战源码下载 书中DUT的功能:通过rxd接收

    2023年04月08日
    浏览(36)
  • 阿里云账户新手实名认证教程(超简单秒通过)

    阿里云账号注册后需要实名认证后才可以使用,阿里云百科教大家快速实名认证的方法,不需要上传身份证的等信息,以个人认证为例,直接拿你当支付宝扫一下即可通过实名认证,阿里云百科来详细说下阿里云个人或企业实名认证方法: 阿里云账号注册成功后需要实名认证

    2023年04月09日
    浏览(27)
  • 【文档+视频】Verdi基础教程

    目录 前言 1.Verdi 环境配置 2.VCS 产生Verdi 波形 1、tb中加入相应的系统函数 2、makefile中加入相应的选项  3.nTrace 1、如何调用Verdi? 【重点】 2、如何查看包含的设计架构?  3、如何查寻模块实例化的位置?【重点】 4、在nTrace中如何查找  模块和信号?【重点】 5、如何查寻字

    2024年01月21日
    浏览(25)
  • 华为云Elasticsearch(FusionInsight HD)连接和开发教程03-通过HighLevel RestClient操作ES

    通过典型场景,我们可以快速学习和掌握Elasticsearch的开发过程,并且对关键的接口函数有所了解。 场景说明 假定用户开发一个应用程序,用于搜索所有图书信息,并要求提供搜索相关的图书,并打分按分排序,其中搜索的功能就可以用Elasticsearch来实现,搜索流

    2024年02月02日
    浏览(27)
  • Linux:编写编译脚本Makefile文件

    一、生成可执行文件 1、一个源文件编译 本例子主要区别.c及.cpp文件及编译该文件时使用的编译链。 1).c文件 2) .cpp文件 经过以上测试,总结如下: 以.cpp为后缀的文件,为c++代码。代码最好使用C++语言。也可以使用c语言。 a 代码使用c++语言,编译时必须要用g++,不能使用

    2024年02月11日
    浏览(23)
  • vcs仿真教程(查看断言)

            VCS是在linux下面用来进行仿真看波形的工具,类似于windows下面的modelsim以及questasim等工具,以及quartus、vivado仿真的操作。 vcs的常见指令后缀 sim常见指令 命令:mkdir +文件名,例如:mkdir tst 然后直接把设计文件和仿真文件拷贝到tst7这个文件夹里。 打开终端,输入

    2024年02月10日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包