Modelsim仿真的步骤

       (1)创建新的工程。

在这里插入图片描述

       (2)在弹出的窗口中,确定项目名和工作路径,库保持为work不变(如有需要可以根据需求进行更改)。

在这里插入图片描述

       (3)添加已经存在的文件(rtl代码和tb代码)。

在这里插入图片描述

       如果这里关闭后,还想继续添加,也可以直接在界面空白处右键进行添加。

在这里插入图片描述

       加错了文件,也可以右键对应的文件,把它移出工程。

       (4)把文件都添加进来后,需要对代码进行编译。在上方的菜单栏有Compile(编译)选项,然后可以选择编译所有或者部分编译。

在这里插入图片描述

​       编译完后,如果没有问题,代码后面的status会是一个绿色的对号。

在这里插入图片描述

       代码有问题的话,会是一个红色的叉,双击下方Transcript中的errors,会弹出一个对话框,指明代码的问题,我们针对这些信息对代码修改即可。

       (5)进行仿真,选择上方菜单栏的simulate,其中第一个选择是优化的设置,我们可以在后面仿真的时候再去优化,第二个是开始仿真,第三个是运行的选项。后面的选项都是仿真的控制选项,释义很直白。点击开始仿真。

       在弹出的窗口中,design是仿真相关的库,我们用的库默认是work,在work中选中我们仿真的tb代码,下面的Design Unit(s)就会有对应的显示,而在其右边的Resolution栏是仿真的单位,我们这里直接选默认即可。

       Libraries可以添加我们的库。

在这里插入图片描述

       SDF是延迟的文件,一般用于时序仿真,做IC设计时会频繁涉及时序仿真,做FPGA开发的话,时序仿真不多,仿真比较慢,一般只做功能仿真,验证功能是否有问题,时序一般是通过开发工具来查看时序报告看有没有时序问题。

在这里插入图片描述

​       而对于开始仿真窗口的使能优化,对于以前版本的modelsim,一般是不勾选的,但我使用的2020.4版本属于比较新的版本,必须要使能优化,否则仿真的时候会报错。

       再点击右侧的优化选项,把visibility从默认的第一个选项改为第二个选项,把所有要观测的模块都显示出来,不然的话有些信号就看不到了。然后连续点击OK即可。

​       然后会进入到下图所示的界面:

在这里插入图片描述

       (6)把需要观察的信号添加到观察列表当中。上图左侧的u_led对应tb代码中例化的模块。

在这里插入图片描述

       右击想要观测的模块,选择Add wave。

       窗口会变化为如下图所示:

在这里插入图片描述

       现在波形的窗口还比较小,我们想把它单独拉出来,可以选择波形窗口右上角×的左边那个按钮,就可以把它独立出来。

       左侧的信号默认是带有路径的,如果不想显示路径,可以选择上方菜单栏中的format,选择toggle leaf names,就可以隐藏路径了。

​       如果不想看某个信号,也可以单击它,按键盘上的Delete把它删除。

       而如果想单独添加某一个信号,可以在外面的窗口找到对应的信号,把它添加到观察列表。

       (7)开始仿真。在下图所示的仿真时间100ns右侧是几种运行的按钮,分别是运行一次,持续运行,一直运行,中断仿真。选择运行一次,就会仿真运行左侧小框内的时间,根据自己的需求修改即可。

       其中一些有用的按钮,如下图所示,这里Zoom In和Zoom Out分别是放大和缩小,第三个Zoom Full,是让有效波形铺满整个屏幕。

一些其他的小技巧

       1,可以在外面Transcipt窗口执行运行命令,如:

run 20us

​       就会让波形在原来的基础上仿真运行20us。

       2,添加标尺。鼠标点中波形的某个地方,可以添加一个标尺。点击Insert Cursor按钮,可以再添加一个标尺。

在这里插入图片描述

       3,点击左下角标尺前面的小锁,可以把对应的标尺锁定,想要删除标尺则可以点击x。

在这里插入图片描述

​       4,更换信号的显示进制。右击想要更改的信号,选择Radix,选择想要更改的进制即可,Unsigned为无符号十进制,Binary为二进制,Octal为八进制,Hexadecimal为十六进制。

       5,放大缩小的另一种方法。先用标尺选中一个地方,然后点击上方菜单栏的Zoom In和Zoom Out 进行放大和缩小,这样就会基于我们选择的地方进行放大缩小,更加关注我们选中的位置。另外,也可以按住ctrl键,单击鼠标按住不放选中需要观测的区域进行查看;按住ctrl键,点按鼠标左键往左上方滑动,可以缩小。

       6,重头开始运行。

       可以单击仿真时间左侧的ReStart,在弹出的对话框中选择OK即可。


       也可以像前面在外面的Transcipt窗口执行运行命令:

restart -f

       7,改变波形颜色。modelsim默认的波形是绿色的,如果想要改变波形颜色,可以先选中波形,然后点击鼠标右键,选择最后的属性。
在这里插入图片描述
       再点击“corlor”,在弹出的窗口选择自己想要的颜色即可。
在这里插入图片描述

       8,实际的工程应用中,往往是顶层加多个底层的源文件结构,如果不对信号进行一定的分组,就会显得杂乱不堪,后面我补充了一篇博客介绍如何对信号进行分组。效果如下图所示:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/89364.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89364.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/89364.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务攻防-Java组件安全FastJson高版本JNDI不出网C3P0编码绕WAF写入文件CI链

服务攻防-Java组件安全&FastJson&高版本JNDI&不出网C3P0&编码绕WAF&写入文件CI链26天 原创 朝阳 Sec朝阳 2025年07月18日 09:23 湖北 标题已修改 演示环境: https://github.com/lemono0/FastJsonParty FastJson全版本Docker漏洞环境(涵盖1.…

【Python】DRF核心组件详解:Mixin与Generic视图

在 Django REST Framework (DRF) 中,mixins.CreateModelMixin、mixins.ListModelMixin、GenericAPIView 和 GenericViewSet 是构建 API 视图的核心组件。以下是对这些组件的主要方法及其职责的简要说明,内容清晰且结构化:1. mixins.CreateMod…

HTML+CSS+JS基础

文章目录(一)html1.常见标签(1)注释(2)标题 h1~h6(3)段落 p(4)换行与空格 br \ (5)格式化标签 b i s u(6)…

Vue导出Html为Word中包含图片在Microsoft Word显示异常问题

问题背景 碰到一个问题:将包含图片和SVG数学公式的HTML内容导出为Word文档时,将图片都转为ase64格式导出,在WPS Word中显示正常,但是在Microsoft Word中出现图片示异常。具体问题表现 WPS兼容性:在WPS中显示正常&#…

椭圆曲线密码学 Elliptic Curve Cryptography

密码学是研究在存在对抗行为的情况下还能安全通信的技术。即算法加密信息,再算法解密出信息。加密分为两类 1. Symmetric-key Encryption (secret key encryption) 即一种密钥,加密和解密使用同一密钥,可相互转换 2. Asymmetric-key Encry…

wedo牛-----第47节(免费分享图纸)

夸克网盘:https://pan.quark.cn/s/4b40a8d18979 高清图纸源文件,需要的请自取

Unity | AmplifyShaderEditor插件基础(第十集:噪声的种类+火焰制作-下)

目录 一、👋🏻前言 二、圆火焰 三、制作梯度 梯度成品预览 1.GradientSample节点 2.gradient的用法 3.time节点 四、添加颜色 Color节点 五、火焰摇摆 1.X方向的移动 2.Y方向的移动 3.Z方向的移动 4.把xyz组合起来 Panner节点 六、摆放和…

黑马Node.js全套入门教程,nodejs新教程含es6模块化+npm+express+webpack+promise等_ts对象笔记

1.1 什么是运行环境? 运行环境是指代码正常运行所需的必要环境!!!!! V8引擎负责解析和执行JavaScript代码。内置API是由运行环境提供的特殊接口,只能在所属的运行环境中被调用 1.2 JavaScrip…

React 项目环境变量使用指南

在 React 项目中正确使用环境变量是管理不同环境配置的关键技术。以下是完整的解决方案: 1. 创建环境变量文件 React 项目支持以下环境变量文件(按优先级从高到低): .env.development.local (本地开发环境).env.development (开发…

Oracle 关于一些连接故障的总结

积累了几次Oracle客户端连接故障,做下总结。 文章目录1、案例案例1:客户端连接报错ORA-12514案例2:客户端连接报错ORA-28547案例3:客户端连接报错:Got minus one from a read call案例4:客户端连接报错&…

V-USB USB设备模拟原理分析

V-USB USB设备模拟原理分析 通过分析V-USB项目的核心文件,详细解释这个项目是如何在AVR微控制器上模拟USB设备的: 1. 整体架构 V-USB是一个纯软件实现的USB低速设备驱动,主要由以下几个核心文件组成: usbdrv.c : USB协议栈的C语言…

kafka3.6下载安装(传统架构/KRaft模式)+实例测试

知识补充: Kafka 和 ZooKeeper 的关系可以用 “协作依赖” 来概括。在 Kafka 的早期版本(Kafka 2.8.0 之前)中,ZooKeeper 是 Kafka 的核心依赖,用于管理集群元数据、协调 Broker 和 Controller 选举等关键功能。但从 …

华控智能产品特点——产品生态全景与场景化创新

公司构建 “3X”产品战略,以三大核心场景为基础持续拓展技术外延: 1. 智能安防产品线军工级指纹枪盒:采用6061-T6航空铝材,内嵌震动报警模块,非法开箱触发90dB警鸣。为军工企业定制的双人认证版本需两位授权人员同时验…

爬虫核心原理与入门技巧分析

一、爬虫核心原理:模拟人类浏览的“自动化工具” 简单来说,网络爬虫(Web Crawler)是一种按照一定规则,自动抓取互联网信息的程序或脚本。其核心原理可以类比人类浏览网页的过程,只不过将手动操作转化为了代…

spring-cloud微服务部署-feign服务间调用

1 准备工作 需要安装并启动nacos&#xff0c;作为服务注册中心。地址&#xff1a;https://nacos.io/ 2 项目结构 parent的pom.xml声明依赖&#xff1a; <dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</gr…

IDEA高效开发:Database Navigator插件安装与核心使用指南

目录 1.前言 2.正文 2.1安装流程 2.1.1IDE内部安装 2.1.2手动下载安装 ⚠️ 避坑指南 2.2使用教程 2.2.1连接数据库 2.2.2查看数据库/表 2.2.3查询数据 2.2.4修改表结构 2.2.5生成代码 2.2.6常见故障排除 3.小结 1.前言 “作为Java开发者&#xff0c;日常与数据…

Maven私服仓库,发布jar到私服仓库,依赖的版本号如何设置,规范是什么

Maven私服仓库&#xff0c;发布jar到私服仓库&#xff0c;依赖的版本号如何设置&#xff0c;规范是什么

量子卷积神经网络:量子计算与深度学习的融合革命

引言&#xff1a;当卷积神经网络遇上量子计算在人工智能与量子计算双重浪潮的交汇处&#xff0c;量子卷积神经网络&#xff08;Quantum Convolutional Neural Network, QCNN&#xff09;正成为突破经典算力瓶颈的关键技术。传统卷积神经网络&#xff08;CNN&#xff09;在图像识…

线程(三) linux 同步

目录 概念补充 条件变量 操作 例:多线程抢票 封装 生产者消费者模型 生产者和消费者之间的关系 BlockQueue(阻塞队列) 单生产单消费 信号量 简介 操作 多生产者多消费者RingQueue(环形队列)代码 sem封装 信号量与锁 小知识 概念补充 同步:在保证数据安全的前…

Eclipse 生成 jar 包

Eclipse 生成 jar 包 引言 Eclipse 是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;广泛应用于 Java 开发领域。在 Java 开发过程中&#xff0c;将源代码编译成可执行的 jar 包是常见的需求。本文将详细介绍在 Eclipse 中生成 jar 包的方法&#xff0c;包…