首页 > 其他分享 >【FPGA开发】一文轻松入门Modelsim的简单操作

【FPGA开发】一文轻松入门Modelsim的简单操作

时间:2024-09-29 20:49:08浏览次数:13  
标签:仿真 入门 FPGA 可以 Modelsim 标尺 点击 添加 代码

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即可。

参考资料

​ 正点原子领航者ZYNQ7020视频:第9.3讲 点亮LED灯-Modelsim仿真软件的使用

标签:仿真,入门,FPGA,可以,Modelsim,标尺,点击,添加,代码
From: https://blog.csdn.net/qq1016019583/article/details/142636958

相关文章

  • AUTOSAR从入门到精通-RTOS调度器
    目录前言几个高频面试题目Linuxrtos如何进行任务调度算法原理什么是RTOS常见嵌入式实时操作系统任务调度的本质 调度算法基于时间片的抢占式调度不带时间片的抢占式调度协同调度RTOS调度配置TCB数据结构上下文切换RTOS任务堆栈 一、单任务系统(裸机)二、多......
  • 大语言模型实战学习路径:从基础到精通,从入门到精通非常详细
    大语言模型学习路线:从入门到实战在人工智能领域,大语言模型(LargeLanguageModels,LLMs)正迅速成为一个热点话题。本学习路线旨在为有基本Python编程和深度学习基础的学习者提供一个清晰、系统的大模型学习指南,帮助你在这一领域快速成长。本学习路线更新至2024年02月,后期......
  • 生信机器学习入门4 - 构建决策树(Decision Tree)和随机森林(Random Forest)分类器
    机器学习文章回顾生信机器学习入门1-数据预处理与线性回归(Linearregression)预测生信机器学习入门2-机器学习基本概念生信机器学习入门3-Scikit-Learn训练机器学习分类感知器生信机器学习入门4-scikit-learn训练逻辑回归(LR)模型和支持向量机(SVM)模型1.决策树(Dec......
  • webGL入门(五)绘制多边形
    代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title>......
  • webGL入门对于LINES_STRIP与LINE_STRIP绘制连线的不同之处
    图片对比:上图为LINE_STRIP 上图为LINES_STRIPLINE_STRIP代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0&q......
  • 爬虫入门之爬虫原理以及请求响应
    爬虫入门之爬虫原理以及请求响应爬虫需要用到的库,叫requests.在导入requests库之前,需要安装它,打开cmd:输入pipinstall库名pipinstallrequests后面出现successful或requirementalready就说明已经下载成功了!!!下载出现的问题:1.有报错或者是下载慢修改......
  • vue从入门到精通
    一、什么是vueVue(读音/vjuː/,类似于view)是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层数据与视图各司其责,通过绑定建立联系二、vue集成步骤1、引入js<scripttype="text/javascript"src......
  • kettle从入门到精通 第八十九课 ETL之kettle kettle jms activemq使用教程
     场景:群里有小伙伴求助jmsactivemq如何使用kettle进行消费数据,之前连接过kafka,rabbtimq,想着activemq应该也没啥难度,结果低估了activemq。盘他!!!插曲:ActiveMq有两个版本:ActiveMQ Classic和ActiveMQArtemis两个版本,kettle中的jms插件连接activemq只支持ActiveMQArtemis,结果......
  • 数据库入门不再难:克服学习障碍的实用技巧与演示
    文章目录摘要引言常见的学习困难及解决方法理解抽象的数据库概念SQL语句的构建与优化理解事务与并发控制实用的学习技巧与工具推荐推荐学习资源数据库设计与实践的常用技巧实战演练常见问题解答总结未来展望参考资料摘要数据库学习对于初学者来说,往往会面临诸多......
  • docker入门(一)安装及镜像命令
    Docker简介docker官网: www.docker.com dockerhub官网:hub.docker.com 现在已经进不去,所以等会配置国内的镜像源docker文档官网:docs.docker.comDocker是基于Go语言实现的云开源项目。docker是解决什么问题的想必大家在网上刷到过这样的段子吧运维/测试:开发,你写......