Questasim仿真工具do文件编写说明
1 Vivado中编译Questasim仿真需要的基础库
Questasim作为一个第三方的仿真工具,如果需要仿真Vivado中的工程,则需要将Vivado中的仿真库编译一下,为能够在Questasim工具中使用。
Vivado编译Questasim仿真库的方法如下所示:
1.首先打开Vivado,点击Tools -> Compile Simulation Libraries…;
2. Simulator选择Questasim ,Advanced Simulator,Advanced中的Compiled library location是基础库编译的存放位置,自定义选择本地的路径。
2 仿真文件do文件编写步骤
do文件可以理解为makefile文件,表明Questasim仿真工程中需要的源文件、仿真文件、链接库等文件,主要为仿真行为服务,所以do文件的编写主要是添加文件以及库函数。do文件的编写如下所示:
1 设置相对路径
设置相对路径的作用是简化do文件中重复添加的工程路径,以及对所需文件起到一个概略分类的作用。设置相对路径如下所示:
set SRC_DIR {"project_name/sources_1"}
set IP_DIR {"project_name/ip"}
set SIM_DIR {"project_name/sim_1"}
set LIB_DIR {"D/Questasim/Quastasim_lib"}
SRC_DIR 路径为工程源文件的路径;
IP_DIR 路径为工程IP的路径;
SIM_DIR 路径为仿真文件的路径;
LIB_DIR 路径为vivado编译的Quastasim仿真环境下的使用的vivado基础库目录。
2 创建work库及映射仿真库
file delete -force work
vlib work#base library
vmap secureip {$LIB_DIR}/secureip
vmap unimacro {$LIB_DIR}/unimacro
vmap unisim {$LIB_DIR}/unisim
vmap unifast {$LIB_DIR}/unifast
#user library
vmap library_name {$LIB_DIR}/library_name
其中secureip 、unimacro 、unisim 和unifast 为基础库,都需要添加的基础库。library_name为工程中需要的库,例如FIFO、FFT之类。
如果不知道所需IP仿真库的名称,可以这样找,在打开工程的Sources界面中IP Sources,选择所需IP的 *.vhdl文件,打开,前面部分即为IP仿真库的名称,如图所示:
打开 vhdl文件,前面即为IP仿真库名称,如图所示:
其中UNISIM为仿真库名称(此处仅作为举例,需按照实际工程命名)。
3 添加设计源文件以及仿真文件
vlog -work $SRC_DIR/ *.v
vlog -work $SIM_DIR/project_name.tb
vlog -work glbl.v
其中.v文件为仿真工程中所需的所有源文件,需要依次添加,tb文件即为仿真文件,按照说明添加即可。
vlog为Verilog工程的仿真文件添加语句,vcom为VHDL工程的仿真文件添加语句。glbl.v文件为必须添加的文件。
4 使用vsim运行仿真文件
调用vsim工具,运行仿真文件,脚本编写为:
vsim -voptargs="+acc" \ -t 1ps-L secureip \-L unimacro \-L unimacro \-L unimacro \-lib -work work work.project_name.tb work.glbl.v
前4行为固定写法,-lib选项中的tb文件,即为仿真工程的tb文件。
5 设置观测窗口
view waveview structureview singalsrun -all
上述也为固定写法,还可以设置其他选项,但是上述选项对于仿真行为来说,足够。
3 在Questasim中运行do文件
1 打开Questasim,中命令行工具处,使用
cd {do文件路径}
cd命令,跳转到do文件的路径下;
2 执行do文件
do {Filename.do}
使用do命令,执行do文件即可。
Questasim仿真工具do文件编写说明相关推荐
- 【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )
文章目录 一.开启 ProGuard 混淆 二.混淆文件编写 三.混淆前后对比 四.build.gradle 完整配置文件 五.参考资料 一.开启 ProGuard 混淆 在 build.gradle ...
- Android.mk文件编写
Android.mk文件编写的例子: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello LOCAL_SR ...
- 函数||值传递||函数的常见样式||函数的声明||函数的分文件编写
概述 作用:将一段经常使用的代码封装起来,减少重复代码 一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能. 函数的定义 函数的定义一般主要有5个步骤: 1.返回值类型 2.函数名 3.参数 ...
- Python实训day01pm【练习题、文件编写、列表的使用】
Python实训-15天-博客汇总表 目录 Jupyter中文用户名导致无法运行的问题 练习题 练习1 练习2 Python文件编写注意事项 Python列表 list:有序列表 Jupyter中文用 ...
- C++阶段01笔记06【函数(概述、定义、调用、值传递、常见样式、声明、分文件编写)】
C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 6 函数 6.1 概述 6.2 函数的定义 函数的语法 示例:加法函数 6.3 函数的调用 示例 6.4 值传递 示例 6.5 ...
- ITK:从文件编写一个转换
ITK:从文件编写一个转换 内容提要 C++实现代码 内容提要 从文件编写一个转换 C++实现代码 #include "itkVersion.h" #include "i ...
- K8S——关于K8S控制台的yaml文件编写(基于上一章多节点K8S部署)
K8S--关于K8S控制台的yaml文件编写(基于上一章多节点K8S部署) 一.yaml文件编写流程 二.证书自签 一.yaml文件编写流程 rbac.yaml---->secret.yaml- ...
- cmake使用总结(转)---工程主目录CMakeList文件编写
在linux 下进行开发很多人选择编写makefile 文件进行项目环境搭建,而makefile 文件依赖关系复杂,工作量很大,搞的人头很大.采用自动化的项目构建工具cmake 可以将程序员从复杂的m ...
- 基础知识(三)makefile文件编写初级篇
linux下进行c++开发,需要熟悉相关编译器的编译.链接命令.这边主要以实例讲解,如何在linux中,进行c++程序简单的编译链接运行. 一.单文件编译链接 这里先从最简单的单个文件编译链接为例.在 ...
最新文章
- sklearn中cross_val_score、cross_val_predict的用法比较
- OpenCV对图像进行尺寸变换
- 踏踏实实做事,老老实实做人
- 扩展方法的定义及使用
- djano 模型查询
- SSH2整合需要jar包解释
- Spring 解耦反射创建对象
- VSCode打开终端的快捷键
- Python 分析国庆热门旅游景点,告诉你哪些地方好玩、便宜、人又少!
- 浓缩的就是精华——ES6迭代器精炼讲解
- Transformer长大了,它的兄弟姐妹们呢?(含Transformers超细节知识点)
- php教程笔记复习1-ajax
- 《TextRank: Bringing Order into Texts》
- Python小游戏及登录系统
- 手游传奇架设教程_「教程」传奇新手架设简单教程,自己做GM,「GEE版本」
- 官方JwPlayer去水印步骤
- 对索引存储与散列存储的一些形而上的思考
- C语言字符串分割 trimmed simplified split
- 计算机保研面试题——操作系统
- 惊艳的产品背后,是锐利的设计思维
热门文章
- 贝叶斯思维 统计建模的Python学习法pdf
- 解决SpringCloud之Feign超时问题(Read timed out executing POST http://***)
- 微信小程序-页面间通信
- 一篇博客,带你找回登录密码
- 支持第三方认证用户开启MFA认证流程,支持工单申请Redis数据库应用,JumpServer堡垒机v2.19.0发布
- 高效轻量级深度模型的研究与实践
- iphone配什么蓝牙耳机最好?iphone适配蓝牙耳机推荐
- 短信只有文字不洋气?5G消息让短信活泼起来
- 《lol掌上联盟助手》上线
- 《加班狗是怎样炼成的?》卧槽!连看三遍有木有!