详细讲解Xilinx+ModelSim的FPGA仿真
本文主要概括一下,如何针对Xilinx+ModelSim进行FPGA的仿真设计。
1. xHDL仿真器
常用的硬件描述语言的仿真器有很多种,例如,VCS,Ncsim,Affirima,Verilog-XL,SpeedWave,Finisim和ModelSim。个人认为比较流行的就是ModelSim和Ncsim,像opencores提供的源码大部分都含有Ncsim仿真支持,或者ModelSim仿真支持。
1.1 ModelSim简介
ModelSim仿真器在FPGA/CPLD设计中的使用得到了广泛的应用,这是因为Model Technology公司为各个FPGA/CPLD厂家都提供了OEM版本的ModelSim工具。ModelSim仿真原理是基于事件驱动的,它可支持Verilog和VHDL语言的的单独仿真与混合仿真。
1.2 ModelSim版本
ModelSIm仿真工具有许多版本,首先就是他的版本号很多,这里不多介绍,因为它无非就是软件性能,功能的升级。这里主要是要说明ModelSim PE/LE/SE之间的区别:
为了满足不同用户的需要,ModelSim每个版本号都可以分为PE,LE和SE等类别。其中SE功能是比较完善的,但是它有一个特点就是,在进行仿真前,要首先编译相应的仿真库(通过设置,也可以一老永逸),后面会专门介绍。
在进行Xilinx FPGA产品开发时,我们有时会遇到ModelSim XE版本,这是ModelSim的Xilinx OEM版本,里面集成了Xilinx的仿真库。同样道理也适用于Altera。
2. 仿真库的生成
结合自己的实际经验,本文以Verilog + ModelSim SE + Xilinx ISE为例来说明仿真库的生成。
2.1 仿真库的命名
在ModelSim中编译器件的仿真库时,使用的仿真库的名称可以随意定义,只要满足操作系统的命明规则就行。但是在实际操作中,则不然。
当我们使用Xilinx ISE + ModelSim进行仿真时,Xilinx ISE会产生一些对ModelSim进行控制的文件,而在这些文件中,包含仿真库的映射机制,因此为了兼容性,这里的仿真库的命名就是固定的了,而不是任意定义。他们分别是Unisim_ver,Simprim_ver,Xilinxcorelib_ver。
2.2 仿真库文件的说明
上面提到了ModelSim仿真所需要的3个基本的库,这里主要介绍一下他们的作用。
Unisim_ver:如果要做综合后的仿真,还要编译这个库。即UNISIM,Library of Unified Component simulation models,这个库用来做功能仿真。这个库包含了Xilinx的所有的标准元件,可以被绝大多数的综合工具推论。UNISIM库被分为VHDL和Verilog两种。以Verilog为例:Verilog UNISIM库文件中每一个元件使用一个独立的文件。根据器件的不同,这个库分为两个目录,对于FPGA器件家族,源文件位置在$Xilinx\Verilog\src\unisims目录下,对于CPLD家族,源文件位置在$Xilinx\Verilog\src\uni9000目录下。
Simprim_ver:这个库用于布局布线后的仿真。对于Verilog来说,这个库位于$Xilinx\Verilog\src\simprimes,对于VHDL来说,这个库位于$Xilinx\VHDL\src\simprimes。
Xilinxcorelib_ver:这个库仅仅用来做功能仿真。但其和Unisim_ver不同,如果设计中调用了CoreGen产生的核,则需要编译这个库。Core Generator HDL Library models, 它包含了适用Core Generator产生的各种IP核的仿真模型。Xilinx的IP核都针对不同的器件结构作了很好的优化,但是对于使用者来说,大部分只能够做为黑合来处理。对于Verilog来说,其对应的源文件位置所在的位置是$Xilinx\Verilog\src\xilinxcorelib,对VHDL来说,其对应的源文件所在的位置是$Xilinx\VHDL\src\xilinxcorelib。
2.3 仿真库的建立
本节将以Verilog语言中时序仿真库simprimes为例来说明,为ModelSim建立仿真库。
第一步:将ModelSim根目录下的配置文件Modelsim.ini属性由只读改为可读写。这样做的目的就是为了让软件可以记录仿真库建立的路径以及映射关系。以后每次启动Modelsim时,软件会根据ModelSim.ini中的配置寻找仿真库,并且形成映射关系。
第二步:在这一步,有2种方法可以作。
(1) 在modelsim环境下,新建工程,工程的路径与你想把库存储的路径一致。这里Project Name: Xilinx_lib;
Project Location: D:/My_Work/ModelSim_Simulation/Xilinx—即仿真库保存的路径。如下图所示:
(2): 在主窗口中选择[File] / [Change Directory]命令,将工作目录改到我们想要保存仿真库的目录下,即D:/My_Work/ModelSim_Simulation/Xilinx。
以上两个方法均可,最终的结果都是一样的。
第三步:新建库,库名起作simprim_ver。我们首先就是要建的就是这个库。
即在主窗口选择[File] / [New] / [Library]命令,然后根据下图设置[Create]选项,[Library Name]选项,以及Libray Physical Name]选项(软件
XilinxModelSimFPGA仿 相关文章:
- 电源设计小贴士 1:为您的电源选择正确的工作频率(12-25)
- 用于电压或电流调节的新调节器架构(07-19)
- 超低静态电流电源管理IC延长便携应用工作时间(04-14)
- 电源设计小贴士 2:驾驭噪声电源(01-01)
- 负载点降压稳压器及其稳定性检查方法(07-19)
- 电源设计小贴士 3:阻尼输入滤波器(第一部分)(01-16)