1. 创建本地库

    vlib ./work

    You must use vlib rather than operating system commands to creat a library directory or index file.

  2. 映射逻辑库到物理目录

    vmap work ./work

  3. 编译源代码(缺省编译到 work 本地库)

    vlog ./../design/*.v

    vlog ./tb_div_odd.v

    可以使用 "- work" 指定编译到哪个库中

  4. 启动仿真器

    vsim -voptargs=+acc work.tb_div_odd

  5. 添加波形

    add wave tb_div_odd/*

  6. 执行仿真

    run -all

示例 run.do 文件如下所示:

# 退出当前仿真
quit  -sim

# 清输出窗口
.main clear

# 创建本地库
# You must use vlib rather than operating system commands to creat a library directory or index file.
vlib  ./work
vlib  ./altera_lib

# 将逻辑库名映射库路径
vmap  work        ./work
vmap  alt_lib     ./altera_lib

# 编译 verilog 源代码
# 其中的 "- work" 参数用来具体指定将 verilog 源代码编译到哪个库中,缺省编译到 work 库
vlog  -work  alt_lib     ./altera_mf.v
vlog  -work  alt_lib     ./../quartus_prj/ipcore_dir/pll_1.v
vlog  -work  work        ./../design/*.v
vlog  -work  work        ./tb_ipcore_pll.v

# 启动仿真器
vsim  -voptargs=+acc  -L alt_lib  -L work  work.tb_ipcore_pll

# 添加波形
add   wave   tb_ipcore_pll/*

# 执行仿真
run   1us

参考 run.do 文件如下所示:

# ========================================================================
vsim    -t ns -voptargs=+acc  -L design -L base_space base_space.*.v
#       -t    运行仿真的精度是 ns
#       -L    链接库关键字
# ========================================================================

# ========================================================================
# ---- 虚拟信号 ----
virtual type {
{01 IDLE}
{02 A}
{04 B}
{08 C}
{16 D}
{32 E}
} vir_new_signal

virtual function {
(vir_new_signal)tb_seq_det/seq_det_inst/state
} new_state

add  wave  tb_seq_det/seq_det_inst/new_state
# ========================================================================

quit   -sim
.main  clear

vlib   ./lib/
vlib   ./lib/work/
vmap   work ./lib/work/

vlog   -work  work  ./tb_shift_reg.v
vlog   -work  work  ./../design/shift_reg.v

vsim   -voptargs=+acc  work.tb_shift_reg

add    wave  tb_shift_reg/clk
add    wave  tb_shift_reg/rst_n
add    wave  tb_shift_reg/mem1x16
add    wave  tb_shift_reg/i_30
add    wave  tb_shift_reg/i_data
add    wave  tb_shift_reg/shift_reg_inst/shift_reg
add    wave  tb_shift_reg/shift_reg_inst/s_cnt
add    wave  tb_shift_reg/shift_reg_inst/s_flag
add    wave  tb_shift_reg/shift_reg_inst/s_flag_delay
add    wave  tb_shift_reg/shift_reg_inst/o_data
add    wave  tb_shift_reg/o_data

run    10us

# ========================================================================
# ---- 后仿真 ----
quit   -sim
.main  clear

vlib   ./lib/
vlib   ./lib/work/
vlib   ./lib/altera_lib/
vmap   work ./lib/work/
vmap   altera_lib ./lib/altera_lib/

vlog   -work  work          ./tb_seq_det.v
vlog   -work  work          ./../design/*.vo
vlog   -work  altera_lib    ./altera_lib/*.v

vsim   -t ns -sdfmax tb_seq_det/seq_det_inst=seq_det_v.sdo -voptargs=+acc -L altera_lib work.tb_seq_det

add     wave  tb_seq_det/*

run    10us
# ========================================================================

Modelsim自动化仿真之do文件书写的更多相关文章

  1. 基于脚本的modelsim自动化仿真笔记

    这里记录一下基于脚本的modelsim自动化仿真的一些知识和模板,以后忘记了可以到这里查找.转载请标明出处:http://www.cnblogs.com/IClearner/ . 一.基本介绍 这里介 ...

  2. QuestaSim自动化仿真之do文件

    一.编写基本的do文件 下面按照实际仿真的步骤来说明do文件中需要用到的各个tcl命令. 1.quit -sim ---- 退出原来的仿真工程: 2.cd ---- 设置工作目录的路径,就是仿真工程路 ...

  3. Modelsim中使用TCL脚本编写do文件实现自动化仿真

    通常我们使用Modelsim进行仿真,是通过图形界面点点点来进行操作,殊不知Modelsim完美支持TCL脚本语言及批处理命令do文件.简单来说就是从你修改完代码后到你重新编译把需要的信号拉出来查看, ...

  4. Modelsim调用用do脚本自动化仿真

    前言 EDA发展的趋势是自动化,使用脚本自动化仿真可以减少不必要的时间浪费. 流程 在windows下新建批处理脚本bat文件(linux下可用shell脚本或者其他,注意给脚本运行权限即可:chmo ...

  5. ModelSim之tcl自动化仿真

    摘要: ModelSim的tcl最大的优势就在于它可以让整个仿真自动运行,免除每次进行各种用户界面控制操作的麻烦.用tcl就可以自动完成建库.映射库到物理目录.编译源代码.启动仿真器.运行仿真等一系列 ...

  6. modelsim仿真中 do文件的写法技巧

    网上的关于DO文件的编写好像资料不多,比较杂,所以本人总结一下常用的简单语法,方便大家查看.其实本人也刚接触DO文件没多久,有纰漏很正常,欢迎指正批评,互相学习.PS:写得有点乱   还有一个值得注意 ...

  7. 搭建Modelsim SE仿真环境-使用do文件仿真

    本章我们介绍仿真环境搭建是基于Modelsim SE的.Modelsim有很多版本,比如说Modelsim-Altera,但是笔者还是建议大家使用Modelsim-SE,Modelsim-Altera ...

  8. Viavdo&ISE&Quartus II级联Modelsim级联仿真

    博主一直致力寻找高效的工作方式,所以一直喜欢折腾软件,从刚开始只用软件IDE自带的编辑器,到Notepad++,再到后来的Vim,从用ISE14.7自带的Isim仿真,到发现更好的Modelsim,再 ...

  9. Vivado&ISE&Quartus II调用Modelsim级联仿真

    博主一直致力寻找高效的工作方式,所以一直喜欢折腾软件,从刚开始只用软件IDE自带的编辑器,到Notepad++,再到后来的Vim,从用ISE14.7自带的Isim仿真,到发现更好的Modelsim,再 ...

随机推荐

  1. chenzl

    大噶好!我是计算机6班的陈志良.我是一名代码小白.大一才刚接触代码,我发现我对编程兴趣挺大.特别是每周的代码作业,特别具有挑战性,每当我AC一道,我内心都会有自豪感和兴奋感,尽管过程有挫折,但我仍然坚 ...

  2. CentOS8上用Docker部署开源项目Tcloud

    一.安装Docker 1.我是虚拟机装的Centos7,linux 3.10 内核,docker官方说至少3.8以上,建议3.10以上(ubuntu下要linux内核3.8以上) root账户登录,查 ...

  3. 吴裕雄--天生自然 JAVA开发学习:switch case 语句

    public class Test { public static void main(String args[]){ //char grade = args[0].charAt(0); char g ...

  4. py02_03:py的数据类型

    数据类型初识 1. 整数(int) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值 ...

  5. Photoshop和Halcon如何锐化彩色图像不伤其颜色

    锐化图像是摄影中的一步重要操作. 锐化是通过颜色提纯达到锐化的目的.一旦锐化过度,照片很容易就会出现不自然的色斑,或溢色效果. 我们以Photoshop中的“USM锐化滤镜”为例:(为了使效果明显,我 ...

  6. 嵌入式Linux环境变量如何参与程序运行

    1.环境变量一共有两份,一份在Flash中,另一份在DDR中.uboot开机时一次性从Flash中读取全部环境变量到DDR中作为环境变量的初始化值,然后使用过程中都是用DDR这一份,用户可以用save ...

  7. js变量的相关要点

    如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量. JavaScript 变量生命周期在它声明时初始化. 局部变量在函数执行完毕后销毁. 全局变量在页面关闭后销毁.

  8. upstream实现内网网站在公网访问

    背景描述:公司内网有个网站aa.com,B部门需要访问这个aa.com,但是网站部署在内网服务器(服务器是192.168.1网段),B部门网段是192.168.100 需求描述:B部门需要访问aa.c ...

  9. Proe 导出PDF Vb.net

    Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSt ...

  10. C/C++ memcpy函数的用法

    功能 memcpy指的是c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中 头文件 所在头文件 <s ...