modelsim如何使用tcl脚本来写编译文件
对于modelsim进行仿真,可以通过GUI来进行仿真,当然更加快速的方法可以使用TCL脚本文件进行快速仿真。
Modelsim采用TCL脚本文件仿真的具体流程如下所示:


具体的操作步骤如下:
- 在进行modelsim仿真之前应先在工程目录下新建一个文件夹,名称任意,这里笔者设置为sim文件。
- 打开modelsim,然后新建一个工程,file—new—-project,将仿真文件路径放置到sim文件中,注意,整个路径不要有中文路径,注释的文字最好是英文,下面为了说明采用中文注释。
- 在sim文件中新建一个run.do文件,可以先新建一个.txt文件,然后修改对应的后缀,改成.do文件即可。
- 打开run.do文件,然后在内部添加如下的代码:


上述是按照比较规矩的写法的进行的仿真文件.do的编写,当然也可以简化一下写法,具体操作如下所示:
quit -sim
.main clear
vlib work
vlog ./xxx.v
vlog ./xxx_tb.v
vsim -voptargs=+acc work.xxx #注意这里的.xx是xxx_tb.v文件中的模块名称,这条语句的意思是进行信号不优化仿真
其余和上图写法一致,注意./和../的区别,./是当前目录,当前目录指的是sim这个文件,因为modelsim建立的仿真工程在这个目录下,所以统称为当前目录,不在sim文件下的其他文件需要用到./../,也就是从当前目录往上翻,然后找到相应的文件夹。
注意23行是进行的分割窗建立,25行是对源文件中的所有信号的仿真。最后仿真的波形如下所示:

modelsim如何使用tcl脚本来写编译文件的更多相关文章
- Modelsim中使用TCL脚本编写do文件实现自动化仿真
通常我们使用Modelsim进行仿真,是通过图形界面点点点来进行操作,殊不知Modelsim完美支持TCL脚本语言及批处理命令do文件.简单来说就是从你修改完代码后到你重新编译把需要的信号拉出来查看, ...
- Modelsim仿真tcl脚本与wave.do文件
Modelsim的仿真,如果一直使用图形界面建工程,编译,仿真,一个个加入观察波形的话,未免复杂了一些,尤其是当工程较大,需要观察的信号较多时,下面贴出一些常用的tcl脚本命令和wave.do常用语法 ...
- 用matlab脚本语言写M文件函数时用三种方法简单实现实现DFT(离散傅里叶变换)
%用二重循环实现DFT: function xk=dt_0(xn); %define a function N=length(xn); %caculate the length of the vari ...
- Modelsim调用用do脚本自动化仿真
前言 EDA发展的趋势是自动化,使用脚本自动化仿真可以减少不必要的时间浪费. 流程 在windows下新建批处理脚本bat文件(linux下可用shell脚本或者其他,注意给脚本运行权限即可:chmo ...
- TCL脚本语言基础介绍
Tcl简介(一):Tcl 语法 Tcl 语法 Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对 Tcl有很好的描述和说明.如 ...
- 在Quartus中如何使用TCL脚本文件配制管脚
quartus软件分配管脚的方法有两种,一是选择菜单“assignments->pins”进入管脚分配视图手动分配:第二种方法是利用tcl脚本文件自动分配.这里我来介绍第二种方法. 1.生成tc ...
- Jtag To Axi4 debug 读写寄存器的tcl脚本封装
把下列代码保存为.tcl或者.txt文本保存在某个路径下 打开vivado,在tcl concle中输入 “source 文件路径”,将脚本加载至工具中后, 例如读寄存器地址32'h12345678的 ...
- 28nm工艺下,自动生成管脚排列文件,给设计加PAD,并在PAD上面打Label的流程(含Tcl脚本)
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
- 使用Tcl脚本分配FPGA管脚
自己主动生成Tcl文件 Project -> Generate Tcl File for Project... 弹出例如以下对话框.设置脚本路径. 编辑引脚 使用set_location_ass ...
随机推荐
- Map、Set使用过程中可能出现的问题
修改了key之后不能remove class Student implements Serializable { Integer id; String name; public Student(Int ...
- C++学习笔记53:泛型程序设计与C++标准模板库
泛型程序设计的基本概念 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通用的 C++模板为泛型编程程序设计奠定了关键的基础 模型:符合一个概念的数据类型称为该概念的模型,例如: ...
- Cocos Creator存储和读取用户数据--官方文档
存储数据 cc.sys.localStorage.setItem(key, value) 上面的方法需要两个参数,用来索引的字符串键值 key,和要保存的字符串数据 value. 假如我们要保存玩家最 ...
- python之装饰器篇
一.基本装饰器 基本装饰器的作用: 在不改变原函数的基础上, 通过装饰器, 给原函数新增某些功能 实现方法: 在原函数上加 @装饰器名字 其中@叫做语法糖 定义装饰器 第一层函数传入参数(用于传入原函 ...
- 【高精度】高精度分数[c++]
[高精度]高精度分数 时间限制: 1 Sec 内存限制: 64 MB 题目描述 "人无远虑,必有近忧"是修罗王一直以来恪守的信条,为了以防万一,他在很久以前就将<魔法宝典&g ...
- ASP.NET Core托管和部署Linux实操演练手册
一.课程介绍 ASP.NET Core 是一种全新的跨平台开源 .NET 框架,能够在 IIS.Nginx.Apache.Docker 上进行托管或在自己的进程中进行自托管. 作为一个.NET Web ...
- [CentOS7]redis设置开机启动,设置密码
简介 上篇文章介绍了如何安装redis,但每次重启服务器之后redis不会自启,这里将介绍如何进行自启设置,以及如何设置redis的密码,进行密码验证登陆. 上篇文章: Centos7安装Redis ...
- C# System.IO.StreamWriter
实现一个 TextWriter,使其以一种特定的编码向流中写入字符. using System; using System.Collections.Generic; using System.Linq ...
- 数组去重Demo引出的思考
package com.pers.Stream; import java.util.*; import java.util.stream.Collectors; import java.util.st ...
- 解决eureka注册时使用ip而不是hostname
eureka的client注册到server时默认是使用hostname而不是ip,这就导致client在多台机器时,服务间相互调用时也会使用hostname进行调用,从而调用失败.这时候就需要使用i ...