Modelsim自动化仿真之do文件书写
创建本地库
vlib ./work
You must use vlib rather than operating system commands to creat a library directory or index file.映射逻辑库到物理目录
vmap work ./work
编译源代码(缺省编译到 work 本地库)
vlog ./../design/*.v
vlog ./tb_div_odd.v
可以使用 "- work" 指定编译到哪个库中启动仿真器
vsim -voptargs=+acc work.tb_div_odd
添加波形
add wave tb_div_odd/*
执行仿真
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文件书写的更多相关文章
- 基于脚本的modelsim自动化仿真笔记
这里记录一下基于脚本的modelsim自动化仿真的一些知识和模板,以后忘记了可以到这里查找.转载请标明出处:http://www.cnblogs.com/IClearner/ . 一.基本介绍 这里介 ...
- QuestaSim自动化仿真之do文件
一.编写基本的do文件 下面按照实际仿真的步骤来说明do文件中需要用到的各个tcl命令. 1.quit -sim ---- 退出原来的仿真工程: 2.cd ---- 设置工作目录的路径,就是仿真工程路 ...
- Modelsim中使用TCL脚本编写do文件实现自动化仿真
通常我们使用Modelsim进行仿真,是通过图形界面点点点来进行操作,殊不知Modelsim完美支持TCL脚本语言及批处理命令do文件.简单来说就是从你修改完代码后到你重新编译把需要的信号拉出来查看, ...
- Modelsim调用用do脚本自动化仿真
前言 EDA发展的趋势是自动化,使用脚本自动化仿真可以减少不必要的时间浪费. 流程 在windows下新建批处理脚本bat文件(linux下可用shell脚本或者其他,注意给脚本运行权限即可:chmo ...
- ModelSim之tcl自动化仿真
摘要: ModelSim的tcl最大的优势就在于它可以让整个仿真自动运行,免除每次进行各种用户界面控制操作的麻烦.用tcl就可以自动完成建库.映射库到物理目录.编译源代码.启动仿真器.运行仿真等一系列 ...
- modelsim仿真中 do文件的写法技巧
网上的关于DO文件的编写好像资料不多,比较杂,所以本人总结一下常用的简单语法,方便大家查看.其实本人也刚接触DO文件没多久,有纰漏很正常,欢迎指正批评,互相学习.PS:写得有点乱 还有一个值得注意 ...
- 搭建Modelsim SE仿真环境-使用do文件仿真
本章我们介绍仿真环境搭建是基于Modelsim SE的.Modelsim有很多版本,比如说Modelsim-Altera,但是笔者还是建议大家使用Modelsim-SE,Modelsim-Altera ...
- Viavdo&ISE&Quartus II级联Modelsim级联仿真
博主一直致力寻找高效的工作方式,所以一直喜欢折腾软件,从刚开始只用软件IDE自带的编辑器,到Notepad++,再到后来的Vim,从用ISE14.7自带的Isim仿真,到发现更好的Modelsim,再 ...
- Vivado&ISE&Quartus II调用Modelsim级联仿真
博主一直致力寻找高效的工作方式,所以一直喜欢折腾软件,从刚开始只用软件IDE自带的编辑器,到Notepad++,再到后来的Vim,从用ISE14.7自带的Isim仿真,到发现更好的Modelsim,再 ...
随机推荐
- ZOJ 3735 dp
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3735 好久没做DP题了,一开始没理解题目里的C(M,3)是干什么,原来就是 ...
- MyBatis从入门到精通(第6章):MyBatis 高级查询->6.1.2高级结果映射之一对多映射
jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.IntelliJ IDEA 2019.3.1 本章主要包含的内容为 MyBatis 的高级结果映射,主要处理数据库一对一.一对多的 ...
- 04 Spring:01.Spring框架简介&&02.程序间耦合&&03.Spring的 IOC 和 DI&&08.面向切面编程 AOP&&10.Spring中事务控制
spring共四天 第一天:spring框架的概述以及spring中基于XML的IOC配置 第二天:spring中基于注解的IOC和ioc的案例 第三天:spring中的aop和基于XML以及注解的A ...
- 题解 P3117 【[USACO15JAN]牛的矩形Cow Rectangles】
暴力什么的就算了,贪心他不香吗 这题其实如果分开想,就三种情况需要讨论:(由于不会发图,只能手打) 1) 5 . . . . . 4 . . . . . 3 . . . H . 2 . . G . . ...
- 单个body|简单解释|复杂解释|反面解释
单个body有三种方法简单解释.复杂解释和反面解释 ========================================================================== ...
- JavaScript学习笔记 - 进阶篇(6)- JavaScript内置对象
什么是对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等: 对象的方法: ...
- Python—守护进程管理工具(Supervisor)
一.前言简介 1.Supervisor 是一个 Python 开发的 client/server 系统,可以管理和监控类 UNIX 操作系统上面的进程.可以很方便的用来启动.重启.关闭进程(不仅仅是 ...
- typescript-学习使用ts-1
Hello World 新建 greeter.ts 并写入以下内容: function greeter(person) { return "Hello, " + person; } ...
- 图遍历算法的应用(包括输出长度为l的路径最短最长路径)
判断从顶点u到v是否有路径 void ExistPath(AdjGraph* G, int u, int v, bool& has) { int w; ArcNode* p; visit[u] ...
- oracle_(第三课)网络服务配置
1.打开Net Manager 2.开始配置 3.检测 4.SQL Developer 检测 新创数据库连接,连接类型选择 TNS ,若在网络别名中能看到MYORCL,则证明你成功了