注:主要基于黄俊的《modelsim学习笔记》进行学习
1. ModelSim简介
ModelSim是Mentor Graphics公司开发的高性能的硬件描述语言(HDL)仿真软件,主要用于FPGA和ASIC设计的验证。它支持VHDL和Verilog语言的混合仿真,具有编译速度快、代码与平台无关等优点。ModelSim提供了多种版本,每种版本适用于不同的用户需求和场景。
ModelSim的主要版本及其特点:
- SE ( System Edition ): 这是ModelSim的最高级版本,支持对Verilog和VHDL语言的混合仿真,功能最为强大。它采用了直接优化的编译技术,编译速度最快,且生成的仿真代码与平台无关,便于IP核的保护和错误定位。
- PE( Personal Edition ) : 个人版,适合个人开发者和小型团队使用,提供基本的仿真功能,但不包含SE版本的所有高级特性。
- LE ( Lite Edition ) : 轻量级版本,功能相对简单,适合初学者或进行简单的仿真任务。
- OEM ( Original Equipment Manufacturer ) : 原始设备制造商版,通常集成在FPGA厂商的设计工具中,如Actel、Atmel、Altera、Xilinx等。这些版本专门针对特定厂家的FPGA设计,通常包含该厂家的库文件,适用于特定的仿真需求。
2. ModelSim的基本概念
设计单元: HDL文件经过编译后,会以设计单元的形式存放在库中;
库: 库就是用来存放已经编译好的设计单元的文件夹。库有2种类型:
-
(1)工作库( work )
- a. 存放当前设计文件编译后产生的设计单元;
- b. 编译前必须先创建好工作库;
- c. 每次编译只允许有一个工作库;
- d. 默认的工作库名是work; (2)资源库( resource )
- a. 存放着所有可以被当前编译操作调用的已经编译过的设计单元;
- b. 每次编译允许同时调用多个资源库;
- c. Altera、Xilinx的仿真库也是资源库的一种;
3. ModelSim的操控方式
(1) 图形化接口(GUI);
(2) 互动型命令行(CMD);
(3) TCL脚本和ModelSim宏(TCL和DO文件);
(4) 批处理。
4. ModelSim的仿真流程
(1) 新建一个工程;
(2) 添加文件到工程中去;
(3) 编译设计文件;
(4) 启动仿真器,指定顶层设计单元;
(5) 查看和调试结果。
5. ModelSim的仿真类型
(1) 纯粹的功能仿真;需要文件如下:
a. HDL文件;
b. TestBench文件;
c. 仿真原型文件或预编译的库文件;
(2) 综合后的功能仿真;
a. IDE工具(QuartusII或者Vivado)生成的.vo网表文件;
b. TestBench文件;
c. 仿真原型文件或预编译的库文件;
(3) 布局布线后的时序仿真;
a. 布局布线后的网表文件;
b. 延时文件.sdo(verilog);
c. TestBench文件;
d. 仿真原型文件或预编译的库文件;