基于modelsim-SE的简单仿真流程—下

基于modelsim-SE的简单仿真流程—下

编译

在 WorkSpace 窗口的 counter_tst.v上点击右键,如果选择Compile selected 则编译选中的文件,Compile All是编译所有文件,这里选择 Compile->Compile All,如下图所示;

在脚本窗口中将出现绿色字体:

# Compile of counter.v was successful.

# Compile of counter_tst.v was successful.,说明文件编译成功,在该文件的状态栏后有一绿色的对号,表示编译成功;如果出现红色的字体,说明RTL文件里面有语法错误,这时可以双击红色字体就会弹出窗口,显示具体的语法错误信息,错误信息将会表明语法的具体错误原因和错误的位置,这里可以双击错误的说明,软件将会自动跳到对应的RTL文件所在的错误位置,接着就可以在错误的位置上找出语法错误,修改之后重新编译。

同时,状态那一栏出现两个问号变成了√,表明编译成功,没有语法错误。

添加仿真信号

下面我们开始仿真,点击菜单 Simulate->start Simulation。

出现如下图所示的界面,展开 Design 选项卡下的 work 库,并选中其中的 counter_tst,这是在 Simulate 中出现了 work. counter_tst表示要仿真的对象,在优化那一栏不选择优化,如果选择优化的话,有些信号在仿真的时候会被优化掉,观察不了。点击 OK;

点击OK后,选中的仿真模块将会被加载到工程里面进行仿真,这里可能会出现错误,一般的问题是在testbench例化的模块名,模块信号有错误或者是信号参数有错误,如果出现错误则需要修改然后重新编译将待测试的模块加载到工程。

加载成功后,工程工作窗口会跳到sim窗口,会出现如下界面:

在sim窗口可以看到testbench设计的3个部分,初始化、always、例化的模块。这里需要观察的信号就是例化模块输出的信号,由此右击counter_1,选择add->add to wave,将待测试模块的信号添加到波形观察窗口中进行仿真观察。

添加后的wave窗口如下图所示

仿真开始

仿真可以采用窗口上的工具栏进行设置,如下图所示

同时也可以通过再脚本窗口输入运行时间后按下回车键进行运行:run 1ms,这里运行1ms。

仿真信号查看

仿真运行后,波形窗口会出现如下所示的信号。

这里选中信号counter_out,右击如下图所示,设置信号显示的数制,这里选择无符号整形进行显示。

可以看到信号由0在每个时钟上升沿进行加一操作,在计数到255后重新再从0计数。

在信号显示中,有时为了观察信号更直接,需要将信号采用模拟的方式进行显示,modelsim软件可以满足这一要求,这里选中counter_out信号,右击如下图所示

将信号设置为模拟显示,接着弹出如下窗口,可以设置调整信号显示的幅值,这里默认原始值,点击ok。

最后还要设置下波形窗口中模拟信号显示所占有的宽度,以满足信号采用模拟显示后不会和其他信号显示重叠在一起。选择counter_out信号,右击如下图所示。

进行设置信号显示的格式,如下图所示,这里设置显示的高度为300,可以满足信号最大值255。

最后可以看到将counter_out显示为模拟信号会得到如下的结果。

时间: 2024-10-01 04:47:47

基于modelsim-SE的简单仿真流程—下的相关文章

基于modelsim-SE的简单仿真流程—上

基于modelsim-SE的简单仿真流程 编写RTL功能代码 要进行功能仿真,首先得用需要仿真的模块,也就是RTL功能代码,简称待测试的模块,该模块也就是在设计下载到FPGA的电路.一个电路模块想要有输出,就得有输出,数字电路也是一样的,时钟和复位信号是必不可少的测试激励信号之一,同时可能还包括控制信号.数据信号.这里总结一下,一般系统中包括的测试激励信号主要为四大类: 系统信号(时钟.时钟使能信号.复位信号等): 控制信号(使能信号.片选信号.握手信号,状态机控制信号等): 数据信号(并行接口

基于modelsim-SE的专业进阶仿真流程

基于modelsim-SE的专业进阶仿真流程 通过<基于modelsim-SE的简单仿真流程>和<调用altera IP核的仿真流程>是否感受到仿真流程中的繁琐步骤,特别是在modelsim创建工程之后的步骤:编译.添加仿真信号.开始仿真.这三个步骤涉及到一大堆的鼠标操作,涉及到一大堆的窗口操作,由于RTL仿真过程是一个反复迭代的过程,同时要求覆盖到100%的功能测试,由此也要覆盖到所有状态机和条件判断的所有情况,由此,RTL的功能仿真功能需要不断的修改RTL代码,每次修改RTL代

搭建Modelsim SE仿真环境-适应do文件仿真

本章我们介绍仿真环境搭建是基于Modelsim SE的.Modelsim有很多版本,比如说Modelsim-Altera,但是笔者还是建议大家使用Modelsim-SE,Modelsim-Altera实际是针对Altera 的OEM版本,它事先将Altera的一些IP核仿真库添加到了工具中,但功能上有一些缩减.而Modelsim-SE需要自己手动添加这些仿真库,但是功能更全,而且工作中,工程师更倾向用SE版本,因为今后的FPGA开发中我们会接触更多其他厂商的FPGA,比如Xilinx.Latti

调用altera IP核的仿真流程—上

调用altera IP核的仿真流程—上 在学习本节内容之后,请详细阅读<基于modelsim-SE的简单仿真流程>,因为本节是基于<基于modelsim-SE的简单仿真流程>的基础上进行设计的,关于设计仿真流程的过程所涉及到的重复内容将不再详述,将会一笔带过,如果深入学习了<基于modelsim-SE的简单仿真流程>这一小节,则下面的内容将会非常的简单. 编写RTL功能代码 本小节通过调用altera的ROM宏功能模块,FPGA的ROM模块主要用于存储数据,可以在上电的

ModelSim 仿真流程简要

1.    ModelSim简介 ModelSim分几种不同的版本:SE.PE和OEM,其中集成在 Actel(爱特公司).Altera (阿尔特拉).Xilinx(赛灵思)以及Lattice(莱迪思)等FPGA厂商设计工具中的均是其OEM版本,SE版本为最高级版本.ModelSim仿真分为功能仿真,门级仿真,时序仿真 ◆  功能仿真(前仿真,代码仿真) 主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟,主要是验证电路与理想情况是否一致.可综合FPGA代码是用RTL级代码

基于OR1200的一个简单SOPC

以下内容摘自<步步惊芯--软核处理器内部设计分析>一书 在本书第2章建立了最小系统,最小系统只由CPU.QMEM模块组成,借助于最小系统,我们分析了OR1200各类指令的执行过程.熟悉了流水线的工作原理以及CPU内部各个模块的代码实现,第10章在最小系统上增添了IMMU.DMMU模块,借此分析了OR1200中内存管理单元的实现原理.本章将建立一个基于OR1200的简单SOPC,后面的示例程序将运行在这个简单SOPC之上,借助于该SOPC分析OR1200中ICache.DCache.Wishbo

证最新的和最一致Mentor ModelSim SE 10.5 64位 VHDL Verilog SystemC

系列软件FloTHERM.XT.2.3.1+Xpedition.Enterprise.VX.2+PADS.VX.2+CONFORMAL+ModelSim SE 10.5 MentorGraphics.FloTHERM.XT.2.3.1.Win64Mentor.Graphics.Xpedition.Enterprise.VX.2.build.20160501Mentor.Graphics.PADS.VX.2.build.20160501Cadence CONFORMAL 15.20.1 Linux

基于 Jenkins+Docker+Git 的CI流程初探

在如今的互联网时代,随着软件开发复杂度的不断提高,软件开发和发布管理也越来越重要.目前已经形成一套标准的流程,最重要的组成部分就是持续集成(Continuous Integration,CI)及持续部署.交付(CD).在此,我们来以一个案例初步了解 CI 流程.那么什么是 CI 呢?简单来讲,CI 就是将传统的代码合并.构建.部署.测试都集成在一起,不断地执行这个过程,并对结果进行反馈. CI 流程设计图: 工作流程: 1. 开发人员提交代码到Git版本仓库:2. Jenkins人工/定时触发项

【NS-3学习】ns-3模拟基础:目录结构,模块,仿真流程

前言 ns-3是一个离散事件驱动网络模拟器,旨在满足学术研究和教学对网络仿真模拟的需求.ns-3项目是一个始于2006年的开源项目,负责开发ns3软件. ns-3并不是ns-2的扩展,而是一个全新的模拟器.ns-3的官网:http://www.nsnam.org/ 下面介绍 ns-3的软件目录 .现有模块和ns-3的仿真流程. ns-3的目录结构 AUTHORS examples src utils.pyc wutils.py bindings LICENSE test.py VERSION w