Modelsim自动仿真平台的搭建

Modelsim自动仿真平台的搭建

如果要搭建自动仿真平台脚本那就需要更改下面3个文件。run_simulation.bat、complie.do和wave.do文件。注:前提是安装了modulsim并且配置好了环境变量,这里不过多介绍。

一、下面是run_simulation.bat文件的内容

: 注释的时候冒号后必须要有一个空格,否则认为是一个标签
@echo off
@cls
: 这个是控制台的标题:FPGA Auto Simulation batch script
title FPGA Auto Simulation batch script

: 关键词echo是一个显示命令,可以在控制台中显示ModelSim simulation
echo ModelSim simulation

: 这一行echo.表示在控制台中空一行
echo.

: 提示输入1就开始仿真
echo Press '1' to start tb_histogram_reg simulation
echo.

: 该标签是input,用于接收用户的输入
:input
set INPUT=
set /P INPUT=Type test number: %=%
: 控制台输入1时,就运行run1这个标签里面的代码
if "%INPUT%"=="1" goto run1
goto end

: 语句vsim -do "do compile.do"可以调用modulsim执行脚本.do。vsim关键词可以在系统变量中找到modulsim的路径并启动运行.do文件
:run1
@cls
echo Start tb_histogram_reg Simulation;
echo.
echo.
: 切换到这个目录下testbench/tb_histogram_reg
cd testbench/tb_histogram_reg
vsim -do "do compile.do"
goto clean_workspace

:clean_workspace

rmdir /S /Q work
del vsim.wlf
del transcript.

:end

image-20240429223524146

二、compile.do文件的语法

vlib work
vmap work work
vlog  -work work glbl.v

#library
#vlog  -work work ../../library/artix7/*.v

#IP
#vlog  -work work ../../../source_code/ROM_IP/rom_controller.v

#SourceCode  对源码进行编译
vlog  -work work ../design/m_histogram_reg.v

#Testbench vlog关键字编译测试激励文件
vlog  -work work testbench_top.v 

# vsim这个语句是是将testbench_top文件添加到work文件夹下面,然后进行仿真
vsim -voptargs=+acc -L unisims_ver -L unisim -L work -Lf unisims_ver work.glbl work.testbench_top

#Add signal into wave window  运行wava.do文件
do wave.do

#run -all

三、wave.do文件

只有一条语句,主要是添加想要观测的波形到modulsim中。将testbench_top这个文件中的所有信号,包括wire,reg类型或者其他类型的信号全部添加到波形中

add wave -position insertpoint sim:/testbench_top/*
--晓凡  2024429日于武汉书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/583752.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL-查询数据-练习

练习 1.创建一个查询,显示收入超过 12,000 的雇员的名字和薪水。 select LAST_NAME,SALARY from employees where SALARY > 12000;2.创建一个查询,显示雇员号为 176 的雇员的名字和部门号。 select LAST_NAME,DEPARTMENT_ID from employees where …

前端vue如何生成二维码

有时候有需要链接直接生成二维码在手机上看的需求,比如下载,比如信息,比如excel 下面先引入包 import QRCode from qrcode; 然后上代码 // 将res转换成二维码const qrCodeData JSON.stringify(res); // 将res转换为字符串作为二维码数据// …

WebSocket 全面解析

🌟 引言 WebSocket,一个让实时通信变得轻而易举的神器,它打破了传统HTTP协议的限制,实现了浏览器与服务器间的全双工通信。想象一下,即时消息、在线游戏、实时股票报价…这一切都离不开WebSocket的魔力💫。…

xLua热更新解决方案

图中灰色的无法实现热更新,而Lua代码可以打包成AB包,并上传到资源服务器, 当进入游戏检测是否有资源需要更新,需要则会从资源服务器下载。 学习目标 1.导入xLua框架 2.C#调用Lua 3.Lua调用C# 4.xLua热补丁 xLua框架导入和AB…

什么是网络安全等级保护测评(等保测评)?

什么是网络安全等级保护测评(等保测评)呢?今天永恒无限就为大家介绍下网络安全等级保护测评(等保测评) 网络安全等级保护测评(等保测评)是指对信息和信息系统按照重要性等级进行的保护测评。它…

爱普生晶振在物联网LoRa通讯中的应用

LoRa 是LPWAN通信技术中的一种,是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案。这一方案改变了以往关于传输距离与功耗的折衷考虑方式,为用户提供一种简单的能实现远距离、长电池寿命、大容量的系统,进而扩展传感网络…

C语言:项目实践(贪吃蛇)

前言: 相信大家都玩过贪吃蛇这款游戏吧,贪吃蛇是久负盛名的游戏,它也和俄罗斯方块,扫雷等游戏位列经典游戏的行列,那贪吃蛇到底是怎么实现的呢? 今天,我就用C语言带着大家一起来实现一下这款游戏…

Golang Colly爬取图片gorm存储数据

语言:Golang 库:Iris/Colly/gorm 运行结果 text/html; charset=utf-8 It is image 20240429222029_0_0.jpg Saved file: images\20240429222029_0_0.jpg text/html; charset=utf-8 It is image 20240429222030_1_0.jpg Saved file: images\20240429222030_1_0.jpg It is ima…

String类1⃣️

目录 预备知识 1.string成员函数 1.string() 2.string (const char* s); 3.string (size_t n, char c); 4.string (const string& str);(拷贝构造) 2.string类对象的容量操作 1.size length 2.max_size 3.resize 4.capacity 5.empty 6…

【leetcode面试经典150题】78.二叉树中的最大路径和(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

元数据管理在态势感知系统的应用

在当今信息爆炸的时代,数据量呈指数级增长,如何高效地管理和利用这些数据成为了各行各业所面临的重要问题。在网络安全领域,态势感知系统作为一种重要的安全防御工具,承担着及时发现、分析和应对安全威胁的重任。 然而&#xff0c…

网络层 --- IP协议

目录 1. 前置性认识 2. IP协议 3. IP协议头格式 3.1. 4位版本 3.2. 4位首部长度 3.3. 8位服务类型 3.4. 16位总长度 3.5. 8位生存时间 TTL 3.6. 8位协议 3.7. 16位首部检验和 3.8. 32位源IP和32位目的IP 4. 分片问题 4.1. 为什么要分片 4.2. 分片是什么 4.2.1. …

助力企业部署国产云原生数据库 XSKY星辰天合与云猿生完成产品互兼容认证

近日,北京星辰天合科技股份有限公司(简称:XSKY 星辰天合)与杭州云猿生数据有限公司(简称“云猿生”)完成了产品互兼容认证,星辰天合企业级分布式统一数据平台 XEDP 与云猿生的开源数据库管控平台…

JAVA系列 小白入门参考资料 继承

目录 1. 为什么需要继承 2. 继承的概念 3. 继承的语法 4. 父类成员访问 4.1 子类中访问父类的成员变量 1. 子类和父类不存在同名成员变量 2. 子类和父类成员变量同名 4.2 子类中访问父类的成员方法 1. 成员方法名字不同 2. 成员方法名字相同 ​5. super关键字 …

《ElementPlus 与 ElementUI 差异集合》el-dialog 显示属性有差异

ElementPlus 用属性 v-model ElementUI 用属性 visible 其实也是 Vue2/Vue3 的差异:v-model 指令在组件上的使用已经被重新设计,替换掉了 v-bind.sync

自己手写了一个大模型RAG项目-05.基于知识库的大模型问答

大家好,我是程序锅。 github上的代码封装程度高,不利于小白学习入门。 常规的大模型RAG框架有langchain等,但是langchain等框架源码理解困难,debug源码上手难度大。 因此,我写了一个人人都能看懂、人人都能修改的大…

力扣HOT100 - 79. 单词搜索

解题思路&#xff1a; 深度优先搜索&#xff08;DFS&#xff09; 剪枝。 class Solution {public boolean exist(char[][] board, String word) {char[] words word.toCharArray();for(int i 0; i < board.length; i) {for(int j 0; j < board[0].length; j) {if (df…

Springboot+MybatisPlus入门案例(postman测试)

一、项目框架 pom.xml依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apac…

微软如何打造数字零售力航母系列科普04 - 微软联合Adobe在微软365应用程序中工作时推出新的生成式AI功能

微软和Adobe正在合作&#xff0c;将情境营销见解和工作流程引入微软Copilot&#xff0c;以提供生成的人工智能功能&#xff0c;使营销人员和营销团队能够在自然的工作流程中实现更多目标。 这些新的集成功能将在生产力和协作工具&#xff08;如Outlook、Teams和Word&#xff0…

【保姆级教程】用IDEA2023版本给RuoYi-Vue添加子模块

文章目录 前言添加子模块新建子模块新建子模块界面&#xff1f;新建子模块界面&#xff01; 修改pom依赖配置RuoYiApplication添加测试接口配置接口权限测试 前言 若依前后端分离框架能够极大方便当前开发任务&#xff0c;并且使用的技术栈也相当丰富&#xff0c;但是目前只提…