Modelsim的仿真之路(开始搞“波形”啦~)

2024-01-12 01:32
文章标签 仿真 modelsim 波形

本文主要是介绍Modelsim的仿真之路(开始搞“波形”啦~),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开始搞“波形”啦~

  • 闲序
  • 波形界面
  • 分析工具
  • 游标使用
  • 脚本生成
  • 结束

闲序

忙了比较长的一段时间,又可以接着续上一些记录了,对于Modlsim的工程之类的操作也都已经有所涉及,现在该开始具体仿真图的操作了,若有错误之处,欢迎指出。

先打开一个仿真工程,我就继续以”counter.v“和”tcounter.v“这两个基本的仿真文件来演示,刚看到这篇文章的,想要参考文件的,可以阅读该系列的首篇文章获取;《Modelsim的仿真之路(基础仿真流程)》

波形界面

启动仿真后,波形文件将会在”Wave“这个窗口让我们分析,如果出现下面这样空信号的情况,则需要自行添加待观察的信号;

image-20220327163022657

可以在Sim的这个菜单中直接添加对应的模块的全部信号(右键 -> Add Wave)

image-20220327163253651

也可以先在Sin菜单选择对应的模块,再到Objects中选择具体的信号进行观察:

image-20220327163427337

除了这样添加外,也可以按提示的快捷键”Ctrl+W“添加,还有就是更简单粗暴的,直接鼠标左键一直按着要添加的,拖到Wave的窗口,当然更可以用命令去添加了,比如:add wave *,就是相当于把当前object下的所有信号都添加到Wave中;

进行了添加待观察信号的步骤后,再Wave下就可以看到刚添加的所有信号了,且在Wave界面可以看到又分成了,三个小窗口,各自窗口对应的功能:1、路径+变量;2、变量值;3、变量的波形图

image-20220327163806395

有时候路径(上图中的1)比较长的时候,可以进行隐藏,点击箭头处的按钮(下图中的1所指)就可以对变量路径做隐藏或显示;2上这时候还显示No Data的状态,这个变量值对应的是黄线所处时刻的值,3也还是空白的黑,这时候就需要运行一小段仿真了,在下图中的2处写入仿真时间(10us),然后点击运行;

image-20220327164449572

运行后的结果如下,这时候就可以对显示的信号变量做分析,以判断自己的设计是否满足需求;

image-20220327164654057

有时候可能使用的电脑显示空间有限,就可以把窗口设成浮动的形式以最大化观察;

image-20220327165517192

当信号添加多了后,可以直接选中要删的,然后按键盘的Del就可以实现;要放大某时刻的信号变量值时,可以直接按着鼠标的滚轮操作,或者先切换下缩放的模式;

image-20220327165757637

然后在Wave中就可以看到蓝色的缩放尺寸;

image-20220327165838078

对应的,还有一些类似单步的操作,如下所示的Zoom的集合,可以放大、缩小、显示全部、放大当前游标所指的时刻(黄线所在处),也可以返回上次缩放的位置或者自己设定具体的范围,这些就根据自己的使用习惯来操作了;

image-20220327170244769

分析工具

要观察变量的非十六进制类型值时,在Radix中改;

image-20220327170641569

有时候想直观的看下信号变量值对应的波形图,非数字显示,就可以Format中改变,我一般习惯直接Analog(Automatic),然后再去自定义波形的显示;

image-20220327170807874

自定义(Custom)里头有3种波形形式,两个步进式的Step,我理解的就是一正一反的形式,然后中间那个就是插值后的图,画出来的图,看着就光滑些,如果是类正弦这样的波形,就可以很直观的看出区别;

image-20220327171037373

如果一个高位宽的变量中包含的是组合数据,在分析的时候,只想看其中一段位宽的数据,就可以自行组合(Combine Signals)

image-20220327191207038

然后弹出的窗口,先设名字,然后再看自己需要,是否进行反序之类的操作;

image-20220327191447470

直接默认的设置,就会出现下面的样子;

image-20220327191637488

游标使用

接着介绍下游标的使用,就那个黄线,举个简单例子,就是可以用来测量一段信号所用的时间,然后就可以自己根据时钟关系去计算设计的程序走了多少拍的时钟;

在刚运行仿真的时候,界面只会有一个游标,可以看某个时刻的信号变量状态,需要进行测量的时候,就要再添加一个或多个联合使用,我的使用习惯是,先固定一个到指定位置(可以手动拖、也可以直接指定位置),然后将其锁定,再新增一个到另外的位置,至于为什么先锁定放置的游标,是因为不锁着,容易点飘了~,自己试试就晓得了。

讲到的这几个使用,都可在左下角操作

image-20220327185039229

锁一样的图标就是锁定或解锁,然后小扳手就是设置项,可以改名字、指定放置时刻还有就是正常状态和锁定状态的游标颜色,默认是黄与红的搭配;红色小圈加一个白色减号的就是删除了,放置多了就删除多余的,如果都不小心删了,就按上面一行的绿色小圈加一个白色加号的新增一个;

也可以在菜单栏找插入游标的选项或图标,这部分就是游标的控制,增删然后左右移动,左右移动又可以指定是只在单边沿移动或者有变化就移动,具体状态就自己折腾下了;

image-20220327190421493

改名,除了点扳手能改名,还可以右键当前的游标名(如:Cursor 1),然后就会进入可编辑状态,名字一样也可以,不过没啥特殊需要,默认也可以了;

image-20220327185137092

来个简单示例,比如我要知道63与66之间的是怎样的时序,然后如下测试,耗时60ns,然后一拍时钟是20ns,也就是这累加数花了3拍的时钟,一拍时钟加一次,如果我要的是两拍时钟才会进行累加计数,就需要更改代码的设计,直到符合需求;

image-20220327185818782

波形分析会用到的一些常用操作就这些了,还需要一些花式操作,就自己研究了哈;

脚本生成

最后再加一个使用方法,不知道你们会不会Tcl命令,或者看别人操作过,就是运行仿真的时候,调用一个脚本,然后就会自动在窗口唰唰唰的添加一堆信号,然后有的是模拟波形,有的是数字波形,有的还分了组之类的;

其实你也可以,这个就相当于你先运行了一次仿真,然后根据自己需要,图形化界面先配置好,对应的设置也会有对应脚本命令,当你打算关掉这次仿真,但等下又需要用到这些配置,然后再一个个改比较浪费时间,就可以把当前配置好的界面进行保存;然后看到一个”.do“的文件,保存到指定位置

image-20220327191941883

在下一次运行仿真的时候,直接在脚本窗口运行这个”.do“文件(需要在当前路径下,或者直接do 路径+.do文件),然后就会根据保存时的信号变量的配置,进行自动配置;

image-20220327192109418

do 文件也可以根据自己的情况去写,毕竟技多不压身~

结束

好了,今天的篇章就讲到这里,看完还是不熟的话,多练几次就好了;

期待下一篇吧~


传送门

更多精彩,等你发现~


这篇关于Modelsim的仿真之路(开始搞“波形”啦~)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/596362

相关文章

基于NURBS曲线的数据拟合算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1NURBS曲线基础 4.2 数据拟合原理 5.完整程序 1.程序功能描述        基于NURBS曲线的数据拟合算法,非均匀有理B样条(Non-Uniform Rational B-Splines,简称NURBS)曲线是一种强大的数学工具,广泛应用于计算机图形学、CAD/CA

毕业设计——可视化实验仿真平台

该程序用于毕业设计,架构为前后端分离技术,涉及技术包括vue3,SpringBoot,spring-secrity,Redis,需要者进群769119544进行相关咨询。 程序分为三个角色:学生、老师、管理员。使用了spring-secrity进行权限控制,下面是程序的相关情况及其程序截图:  1 学生端 在仿真实验模块,主要分为活性炭制备和活性炭净水两个实验,学生可以

【深度学习驱动流体力学】湍流仿真到深度学习湍流预测

目录 一、湍流项目结构二、三个OpenFOAM湍流算例1. motorBike背景和目的文件结构和关键文件使用和应用湍流仿真深度学习湍流预测深度学习湍流预测的挑战和应用结合湍流仿真与深度学习 2. pitzDaily背景和目的文件结构和关键文件使用和应用 3. pitzDailyMapped背景和目的文件结构和关键文件使用和应用 一、湍流项目结构 下面每个案例都包含了必要

详解 Macvlan 创建不同容器独立跑仿真(持续更新中)

一、概念介绍 1.1 什么是macvlan         macvlan是一种网卡虚拟化技术,能够将一张网卡(Network Interface Card, NIC)虚拟出多张网卡,这意味着每个虚拟网卡都能拥有独立的MAC地址和IP地址,从而在系统层面表现为完全独立的网络接口。这些虚拟网卡可以直接连接到物理网络,就像是网络中单独的物理设备一样,而不像传统的网络桥接或VLAN那样需要一个共同的

基于51单片机的心率计仿真设计

1.本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机。 2.LCD1602液晶显示当前的心率,单位是心率/分钟。 3.手指放到红外对管中,2秒内读出心率。 4.按键可以设置报警的上下限心率。 使用方法:三个按键:一个设置,一个加,一个减。按下设置的时候才可以加减。 由于仿真中没有红外,手指也模拟不了,其实就是单片机

基于simulink的PEM燃料电池控制系统建模与仿真,对比PID,积分分离以及滑模控制器

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 PID控制器 4.2 积分分离PID控制器 4.3 滑模控制器 5.完整工程文件 1.课题概述 基于simulink的PEM燃料电池控制系统建模与仿真,对比PID,积分分离以及滑模控制器。 2.系统仿真结果 (完整程序运行后无水印)

基于ACO蚁群优化的城市最佳出行路径规划matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述       基于ACO蚁群优化的城市最佳出行路径规划matlab仿真,可以修改城市个数,输出路径规划结果和ACO收敛曲线。 2.测试软件版本以及运行结果展示 MATLAB2022A版本运行 点数较少时 点数规模中等时 点数较多时

自动驾驶仿真测试用例表格示例 ACC ELK FCW

自动驾驶仿真测试用例表格示例 测试用例概览 本测试用例表格涵盖了自动驾驶系统中多个关键功能和场景的测试,旨在确保系统在不同条件下的表现和稳定性。 用例编号测试项目测试描述预期结果实际结果通过/失败TC-001ACC功能测试在高速公路上启用ACC,测试车辆跟车距离的稳定性和响应速度车辆能够保持设定的跟车距离,并在前车减速时自动减速TC-002自动换道功能测试在多车道道路上测试自动换道功

大模型自然语言生成自动驾驶可编辑仿真场景(其一 共十篇)

第一篇:LLM greater scene summarize 第二篇:LLM simulation Test effect 第三篇:LLM simulation driving scenario flow work 第四篇:LLM Algorithm flow description 第五篇:Configure the environment and background renderi

电路仿真实战设计教程--平均电流控制原理与仿真实战教程

1.平均电流控制原理: 平均电流控制的方块图如下,其由外电路电压误差放大器作电压调整器产生电感电流命令信号,再利用电感电流与电流信号的误差经过一个电流误差放大器产生PWM所需的控制电压,最后由控制电压与三角波比较生成开关管的驱动信号。 2.电流环设计: 根据状态平均法: 忽略输入电压与输出电压的扰动: