脚本化Questasim/Modelsim自动仿真——脱离联合仿真

这篇具有很好参考价值的文章主要介绍了脚本化Questasim/Modelsim自动仿真——脱离联合仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

引言

脚本仿真步骤分析

完整的脚本代码

保姆级使用教程

扩展


引言

之前对于工程一直采用的是vivado+questasim联合仿真的模式,对于大型工程来说这个是合适的,因为需要调用一些ip库和包括约束之类的,vivado的图形化界面做的很完善,基本是一站式服务了;而对于一个小demo来说,如果为此要新建一个工程的话操作还是有点复杂的,而且占据的空间也很大。并且对于一个合格的工程师来说,最好还是减少重复工作,毕竟已经21世纪了(虽然我还做不到),所以自己就闲的探索了一下基于脚本化的自动仿真流程,只需要有一个设计文件和TB文件即可对一些小demo完成仿真。

脚本仿真步骤分析

本工程的例子为对一个异步fifo的脚本化仿真测试

1、首先我们先创建一个.do文件,方法随意,我一般建一个txt,然后后缀改成.do,例如 auto_test.do

2、此do文件是在Questa/Modelsim的命令行中执行的,所以需要先退出当前工程,命令为:

quit    -sim

3、然后清除命令行的显示信息

.main   clear

4、仿真器需要创建一个物理目录(文件夹),将编译后的库文件放在其中,以便仿真的时候对其进行调用

vlib    ./lib
vlib    ./lib/work

5、创建逻辑库(work),并映射逻辑库到物理目录,编译工程之后的编译文件存放在该目录下

vmap    work    ./lib/work

6、编译Verilog 源代码,将编译得到的信息文件与编译的文件放到逻辑库里面,库名缺省编译到work本地库,文件按顺序编译。

主要是编译设计文件,测试文件,调用的IP核.v文件,相应的库文件,通配符./../xxx/ *.v,要注意编译的顺序.

NOTE:测试tb文件放在./tb文件夹下,设计文件放在./source文件夹下

vlog    -work   work    ./tb/*.v
vlog    -work   work    ./source/*.v

7、优化部分参数(-voptargs=+acc),链接到默认的work 库,启动仿真顶层测试逻辑库(work)里面的tb文件。

NOTE:这里的测试tb文件名字是tb_asyn_FIFO,使用的时候需要修改为自己tb的名字。

vsim    -voptargs=+acc    work.tb_asyn_FIFO

8、添加波形 add wave 测试顶层的名字/例化子模块的例化名字/子模块信号的名字

add    wave    -radix bin    tb_ex_shift_reg/o_lvds_d

添加分割线:不同的信号之间进行分割,语法格式是

add    wave    -divider    {分割线的名字}

NOTE:可以修改添加wave的方式为从wave.do中读取,wave.do为手动添加波形之后保存的文件

这里直接添TB顶层的所有信号

add     wave    tb_asyn_FIFO/*

9、开始仿真,可以自己设定仿真时间

run    1ms

完整的脚本代码

例子为对一个异步fifo的脚本化仿真测试

quit    -sim

.main   clear

vlib    ./lib
vlib    ./lib/work

vmap    work    ./lib/work

vlog    -work   work    ./tb/*.v
vlog    -work   work    ./source/*.v

vsim    -voptargs=+acc    work.tb_asyn_FIFO

add     wave    tb_asyn_FIFO/*

run    1ms

保姆级使用教程

1、首先创建一个自己的工程文件夹,如asyn_fifo,在里面创建两个文件夹,分别为source和tb,source文件夹存放所有的设计文件,tb文件夹存放所有的tb文件。

2、将脚本do文件和两个文件夹放在同一个目录中,如图所示

脚本化Questasim/Modelsim自动仿真——脱离联合仿真

3.在questa/modelsim中change directory 到工程文件夹中

脚本化Questasim/Modelsim自动仿真——脱离联合仿真

4.在命令行中执行do auto_test.do命令

脚本化Questasim/Modelsim自动仿真——脱离联合仿真

 5.之后仿真器便自动开始刷刷刷执行了

扩展

1、如果用到厂商的IP库,在脚本中也是可以添加进去的,但是我做的时候只针对小demo的实现,一般用不上,大家有需要的可以去查阅其他资料。

2、执行后仿之类的操作,仿真器也有相关的指令,这里也不再说明,理由同上。

显示状态机的状态

我们在Modelsim/Questasim中进行仿真的时候,经常会苦恼于状态机的状态跳转不够直观,因为一般状态机的编码都是格雷码或者二进制码。这时候我们可以在modelsim中直接显示状态机的名称而不是数字。

一般用的方法有三种,分别为

  • 在testbench文件中对设计文件中的各种状态进行映射
  • 在testbench文件中对设计文件中的状态机编码进行重定义
  • 使用虚拟对象显示状态机名称

在这里我使用的是第三种,也就是在tcl中进行操作,而不需要修改TB中的内容,对于设计可能会更加方便一些。

virtual type { {2‘b01 ONE} { 2'b10 ZERO} } state_type
 
virtual function {(state_type)/inst_fsm/state} fsm_state
 
add wave -color pink /inst_fsm/fsm_state 

仿真波形变为

详细的介绍可以参考:在Modelsim仿真中显示状态机名称_kkfeng1002的博客-CSDN博客

参考文献

基于脚本的modelsim自动化仿真笔记 - IC_learner - 博客园文章来源地址https://www.toymoban.com/news/detail-499737.html

到了这里,关于脚本化Questasim/Modelsim自动仿真——脱离联合仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • VIVADO和MODELSIM联合仿真编译库问题

    初次在VIVADO中使用MODELSIM仿真器,或仿真时由于编译库问题报错,可进行如下步骤,个人经验,源于百度,如有问题,请多多指教。 Compiled Library location处选择编译库存放的位置,可在任意处新建文件夹即可;Simulation executable path选择modelsim安装目录下win64文件夹,点击Compile进

    2024年02月12日
    浏览(41)
  • Quartus使用步骤及联合Modelsim仿真教程

    #使用记录# 对于Quartus的安装步骤这里不再进行讲解,modelsim的安装步骤后续文章会进行讲解,这里也就不过多说明。言归正传,现在来开始我们的使用教程: 1、首先点击打开Quartus软件,博主这里使用的是22版本的,其他版本的步骤也基本一样。 2、我们可以看到如下界面,点

    2024年02月05日
    浏览(36)
  • 紫光同创 FPGA 开发跳坑指南(三)—— 联合 Modelsim 仿真

        Modelsim 是 FPGA 开发中重要的 EDA 设计仿真工具,主要用于验证数字电路设计是否正确。紫光 Pango Design Suite 开发套件支持联合 Modelsim 仿真,这里作简要的介绍。 方法一     打开 Pango Design Suite,点击 Tools - Compile Simulation Libraries,在弹出来的窗口中,设置需要编译

    2023年04月10日
    浏览(45)
  • 【FPGA】Quartus项目工程创建以及联合Modelsim进行仿真(FPGA项目创建与仿真)

    目录 软件下载 Quartus中设置Modelsim-Altera仿真器 创建新项目 编写项目代码 编写测试模块   这里使用的是Quartus Prime Light 18.1 以及ModelSim Intel FPGA 10.5b,两个软件在同一个地方下载,附网址https://www.intel.com/content/www/us/en/software-kit/665990/intel-quartus-prime-lite-edition-design-software-version-

    2024年03月15日
    浏览(56)
  • 16 RTL仿真工具介绍—Modelsim脚本操作(Modelsim仿真 覆盖率测试)

    深入还是得靠自己学——尤其是脚本代码的编写 目录 1.Flist常用写法 2.Debussy——检查语法错误+debug代码 2.Linux版的Debussy——verdi 3.Modelsim——do file脚本 4.按脚本方式操作Modelsim 1.首先更改工作目录,到Modelsim文件夹下 2.写脚本代码 3.执行脚本、仿真 4.加载波形、界面操作、保存

    2024年02月08日
    浏览(41)
  • Vivado联合modelsim仿真卡在executing analysis and compilation step阶段

    vivado使用modelsim仿真老是会有问题,我每次都会单纯在验证到底是哪个工具的问题上花好几天时间,总结下来几个点。 首先,如果一直卡住,那一定是有问题,不用再等了。如果不能仿真,那么从第一步开始检查,也就是是否关联modelsim成功,一定一定要仔细检查,因为默认

    2024年02月13日
    浏览(78)
  • 基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)

    微信公众号上线,搜索公众号 小灰灰的FPGA ,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 源码工程链接 https://download.csdn.net/download/m0_50111463/88529260

    2024年02月10日
    浏览(37)
  • simulink与modelsim联合仿真buck闭环设计 主电路用simulink搭建,控制电路完全有verilog语言实现

    simulink与modelsim联合仿真buck闭环设计  主电路用simulink搭建,控制电路完全有verilog语言实现(包括DPWM,PI补偿器) 适用于验证基于fpga的电力电子变换器控制,由于控制回路完全由verilog语言编写,因此仿真验证通过,可直接下载进fpga板子,极大缩短了开发数字电源的研发周期。

    2024年01月16日
    浏览(32)
  • 新手教程03:通过makefile脚本使用VCS+Verdi进行联合仿真

    目录 前言 makefile脚本的方式使用VCS 1. 自动生成 .fsdb 文件 2. 生成 filelist.f 文件 3. 书写 makefile 脚本 4. termial 中运行仿真 5. verdi 的快捷操作 总结 零基础初学数字IC,学会什么写什么,与大家一起进步。 本文主要介绍如何通过makefile脚本的方式用VCS+Verdi进行联合仿真。 因为要使

    2024年02月13日
    浏览(27)
  • VSCODE联合ModelSim语法检错

    首先在 vs code 中安装支持 Verilog 的插件: 在 vs code 的 Extension 中搜索 Verilog,安装如下图所示的插件; Modelsim的安装破解本文不再赘述,可选的Modelsim有与Quartus II集成的ModelsimAltera 和单独的 Modelsim,安装 Quartus II 可以进行简单的仿真和 FPGA 的开发,集成一些FPGA 的 IP 等,根据

    2024年02月05日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包