欢迎来到天天文库
浏览记录
ID:37093073
大小:2.07 MB
页数:55页
时间:2019-05-11
《基于ModelSim的仿真》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章基于ModelSim的仿真4.1ModelSim的仿真方法4.2QuartusII和ModelSim联合仿真4.1ModelSim的使用方法4.1.1ModelSim软件简介ModelSim是业界最优秀的HDL语言仿真器。它提供最友好的调试环境,是业界唯一单一内核支持VHDL、VerilogHDL和SystemC混合仿真的仿真器,同时也支持业界最广泛的标准如Verilog2001、SystemVerilog等,内部集成了用于C/C++,PLI/FLI和SystemC的集成C调试器。支持众多的ASIC和FPGA厂家库,可以用
2、于FPGA和ASIC设计的RTL级和门级电路仿真。是作FPGA/ASIC设计的RTL级和门级电路仿真的首选全面支持UNIX(包括64位)、Linux和Windows平台。ModelSim分几种不同的版本:SE、PE和OEM,其中集成在Actel、Atmel、Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM版本。比如为Altera提供的OEM版本是ModelSim-Altera,为Xilinx提供的版本为ModelSimXE.SE版本为最高级版本,在功能和性能方面比OEM版本强很多,比如仿真速度
3、方面,还支持PC、UNIX、LIUNX混合平台。3为什么要学Modelsim?1.2.Modelsim的安装同许多其他软件一样,ModelsimSE同样需要合法的License,通常我们用Kengen产生license.dat。⑴解压安装工具包开始安装,安装时选择Fullproduct安装。当出现InstallHardwareSecurityKeyDriver时选择否。当出现AddModelsimToPath选择是。出现ModelsimLicenseWizard时选择Close。⑵在C盘根目录新建一个文件夹flexlm,用Key
4、gen产生一个license.dat,然后复制到该文件夹下。⑶修改系统的环境变量。右键点击桌面我的电脑图标,属性->高级->环境变量->(系统变量)新建。按下图所示内容填写,变量值内如果已经有别的路径了,请用“;”将其与要填的路径分开。LM_LICENSE_FILE=c:flexlmlicense.dat5仿真仿真分为功能仿真,门级仿真,时序仿真功能仿真(前仿真,代码仿真)主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟,主要是验证电路与理想情况是否一致。可综合FPGA代码是用RTL级代码语言描述的,
5、其输入为RTL级代码与Testbench.在设计的最初阶段发现问题,可节省大量的精力门级仿真和时序列仿真(后仿真)使用综合软件综合后生成的门级网表进行仿真,不加入时延文件的仿真就是门级仿真.可以检验综合后的功能是否满足功能要求,其速度比功能仿真要慢,比时序仿真要快.在门级仿真的基础上加入时延文件(.sdf)的仿真就是时序仿真,比较真实地反映了逻辑的时延与功能.综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,是否存在时序违64.1.2基本仿真步骤建立工作库/建立资源库编译源代码启动仿真器执行仿
6、真4.1.3各个界面介绍ModelSim仿真软件在默认条件下提供了主窗口、结构窗口、源程序窗口、信号窗口、进程窗口、变量窗口、数据流窗口、波形窗口、存储器窗口、列表窗口等11种不同的用户窗口。主窗口主窗口在ModelSim启动时直接打开的,是所有其他窗口运行的基础。通常情况下主窗口分为工作区和脚本区(也叫命令控制台)两个部分,通过工作区可以很方便地对当前的工程的工作库以及所有打开的数据集合等进行控制,通过命令控制台可以在ModelSim的提示符下输入所有ModelSim命令,并且可将命令执行结果反馈回来,便于实时掌握运行情况。主
7、窗口的典型形式如所示。工作区脚本区命令输入数据流窗口数据流窗口(Dataflow)是一般仿真软件都提供的一个通用窗口,通过该窗口可以跟踪设计中的物理连接,跟踪设计中事件的传播,也可以用来跟踪寄存器、网线和进程,极大地丰富了调试方法。数据流窗口中可以显示进程(可以是Verilog的一个模块)、信号、网线和寄存器等,也可以显示设计中的内部连接。窗口中有一个内置的符号表,映射了所有的Verilog基本门,例如与门、非门等,这些符号可以在数据流窗口中显示。其他的Verilog基本组件可以使用模块或者用户定义的符号在数据流窗口中显示。数据
8、流窗口中的符号都使用了类似[#ASSIGN#23#2]、[#ALWAY#56]或[〈module_name〉]等信息进行说明,其中第一个#说明了这个符号的语句,第二个#后面紧跟了产生这个符号的语句所在的源文件中的行号,第三个#说明了这个语句在源文件中属于当前行的
此文档下载收益归作者所有