Modelsim仿真详细教程
- 格式:ppt
- 大小:891.50 KB
- 文档页数:49


VHDL仿真,Verilog_HDL仿真入门--ModelSim使用简介
VHDL仿真,Verilog HDL仿真入门--ModelSim使用简介
学硬件描述语言当然得实践,就得用软件仿真。入门其实就是讲下仿真软件怎么用,是很简单的一件事,但是对于刚学的人来说可能有点无从下手。我之前就有点迷茫,所以写这个入门当自己的笔记,也希望能给自学的新手有所帮助。
仿真VHDL和Verilog HDL并没有什么区别,一般的软件两种语言也都支持,仿真的步骤和方法也都是一样的。
常用的软件有Model Sim和Quartus II。
Quartus II功能很强大!实际的工作经常用它,它提供了功能仿真和时序仿真两种方式,但是作为学习HDL 并不方便,因为它compile编译的时候很慢,对于复杂的逻辑更是要很长时间。好的一点是,Quartus II编译后可以清楚的看到它使用了芯片的多少资源,各信号不同的延时等等。另外,Quartus II编译后也可以调用第三方的仿真工具,如Model Sim进行仿真。
而Model Sim只完成逻辑功能的仿真,并不考虑具体使用什么器件,学习HDL或者设计逻辑的时候compile一次所用的时间很短,便于调试找出逻辑的错误。所以初学仿真推荐使用Model Sim。本文也只讲下用Model Sim仿真逻辑的方法。
以下部分基本是参照软件帮助简写的,只是原来是英文的而且说的比较繁琐一些,也更详细内容更多。详见Model Sim菜单Help--SE PDF
Documentation--tutorial。
仿真有两种方法。一种是Basic Simulation,就是直接建立库,然后编译源文件。另一种是通过建立Project来仿真,建立Project时软件会为它建立一个库,然后的仿真是一样的。
Basic Simulation的流程图如下
预览:
下面详细写一个例子的步骤 1. 建立库。选择菜单File>New>Library。建立新库就选a new library and a
Modelsim 6.0 使用教程
1. Modelsim简介
Modelsim仿真工具是Model公司开发的。它支持Verilog、VHDL以及他们的混合仿真,
它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序
执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单
元或模块的输入输出的连续变化等,比quartus自带的仿真器功能强大的多,是目前业界最
通用的仿真器之一。
对于初学者,modelsim自带的教程是一个很好的选择,在Help->SE PDF
Documentation->Tutorial里面.它从简单到复杂、从低级到高级详细地讲述了modelsim的
各项功能的使用,简单易懂。但是它也有缺点,就是它里面所有事例的初期准备工作都已经
放在example文件夹里,直接将它们添加到modelsim就可以用,它假设使用者对当前操作
的前期准备工作都已经很熟悉,所以初学者往往不知道如何做当前操作的前期准备。
2. 安装
同许多其他软件一样,Modelsim SE同样需要合法的License,通常我们用Kengen产生
license.dat。
⑴. 解压安装工具包开始安装,安装时选择Full product安装。当出现Install
Hardware Security Key Driver时选择否。当出现Add Modelsim To Path选
择是。出现Modelsim License Wizard时选择Close。
⑵. 在C盘根目录新建一个文件夹flexlm,用Keygen产生一个License.dat,然后
复制到该文件夹下。
⑶. 修改系统的环境变量。右键点击桌面我的电脑图标,属性->高级->环境变量->
(系统变量)新建。按下图所示内容填写,变量值内如果已经有别的路径了,
请用“;”将其与要填的路径分开。LM_LICENSE_FILE = c:\flexlm\license.dat
ModelSim的仿真
1.仿真的分类
仿真过程是正确实现设计的关键环节,用来验证设计者的设计思想是否正确,及在设计实现过程中各种分布参数引入后,其设计的功能是否依然正确无误。仿真主要分为功能仿真和时序仿真。功能仿真是在设计输入后进行; 时序仿真是在逻辑综合后或布局布线后进行。
1). 功能仿真 ( 前仿真 )
功能仿真是指在一个设计中, 在设计实现前对所创建的逻辑进行的验证其功能是否正确的过程。 布局布线以前的仿真都称作功能仿真, 它包括综合前仿真( Pre-Synthesis
Simulation )和综合后仿真( Post-Synthesis Simulation )。 综合前仿真主要针对基于原理框图的设计 ; 综合后仿真既适合原理图设计 , 也适合基于 HDL 语言的设计。
2). 时序仿真(后仿真)
时序仿真使用布局布线后器件给出的模块和连线的延时信息, 在最坏的情况下对电路的行为作出实际地估价。 时序仿真使用的仿真器和功能仿真使用的仿真器是相同的, 所需的流程和激励也是相同的; 惟一的差别是为时序仿真加载到仿真器的设计包括基于实际布局布线设计的最坏情况的布局布线延时, 并且在仿真结果波形图中,时序仿真后的信号加载了时延, 而功能仿真没有。
后仿真也称为时序仿真或者布局布线后仿真,是指电路已经映射到特定的工艺环境以
后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构
想的过程,是否存在时序违规。其输入文件为从布局布线结果中抽象出来的门级网表、Testbench 和扩展名为 SDO 或 SDF 的标准时延文件。SDO 或 SDF 的标准时延文件不仅包含门延迟,还包括实际布线延迟,能较好地反映芯片的实际工作情况。一般来说后仿真是必选的,检查设计时序与实际的 FPGA 运行情况是否一致,确保设计的可靠性和稳定性。2.仿真的作用
1). 设计出能工作的电路:因此功能仿真不是一个孤立的过程,其和综合、时序分析等形成一个反馈工作过程,只有这个过程收敛,各个环节才有意义。而孤立的功能仿真通过是没有意义的,如果在时序分析过程中发现时序不满足需要更改代码,则功能仿真必须从新进行。因此正确的工作流程是:
如何使用ModelSim對Megafunction或LPM作仿真? (SOC)
(MegaCore) (ModelSim)
Abstract
在FPGA開發中,常會用到Altera所提供的Megafunction與LPM加速開發,這要如何使用ModelSim作仿真呢?
Introduction
使用環境:Quartus II 8.1 + ModelSim-Altera 6.3g_p1 + ModelSim SE 6.3e
在(筆記) 如何使用ModelSim作前仿真與後仿真? (SOC) (Quartus II) (ModelSim)中,提到如何使用ModelSim對Verilog作仿真,包含前仿真與後仿真,若使用了Altera的Megafunction與LPM,則仿真的方法稍有不同,本文分別使用ModelSim-Altera與ModelSim SE,並對Megafunction:dcfifo作仿真。
my_dcfifo.v / Verilog
使用MegaWizard產生的dcfifo。
1 // megafunction wizard: %FIFO%
2 // GENERATION: STANDARD
3 // VERSION: WM1.0
4 // MODULE: dcfifo
5
6 // ============================================================
7 // File Name: my_dcfifo.v
8 // Megafunction Name(s):
9 // dcfifo
10 //
11 // Simulation Library Files(s):
12 // altera_mf 13 // ============================================================