《ModelSim后仿真 详细流程介绍》由会员分享,可在线阅读,更多相关《ModelSim后仿真 详细流程介绍(31页珍藏版)》请在金锄头文库上搜索。
1、FPGA设计modelsim 后仿真,曾超杰 2012.12.18,目录,仿真的基本概念 后仿真前的基本准备工作 后仿真的基本操作步骤,仿真的基本概念,什么是仿真?,仿真过程,是正确实现设计的关键环节,用来验证设计者的设计思想是否正确,及在设计实现过程中各种分布参数引入后,其设计的功能是否依然正确无误。,仿真的一般性含义是:使用EDA工具,通过对设计的实际工作情况进行模拟,验证设计的正确性。,仿真的基本概念,什么是仿真?,仿真的一般性含义是:使用EDA工具,通过对设计的实际工作情况进行模拟,验证设计的正确性。,仿真验证是FPGA设计过程中非常重要的一个环节,大家不要忽略。,仿真验证工作占设计总
2、工作量的70% “在这个设计规模达数百万门的ASIC、可复用的知识产权(IP)和系统芯片(SOC)的时代,仿真验证占到了设计总工作量的70%左右。设计团队应该配备能够正确描述仿真验证需求的工程师和专门进行验证的工程师。仿真验证工程师的数量甚至是RTL设计人员的两倍。” -Writing Testbenches 【美】Janick Bergeron,仿真的基本概念,仿真的分类?,功能仿真,时序仿真,仿真,综合前仿真 综合后仿真,布局布线后仿真,前仿真,后仿真,仿真的基本概念,仿真的分类?,功能仿真(前仿真)是指在一个设计中, 在设计实现前对所创建的逻辑进行的验证其功能是否正确的过程。,综合后门级
3、功能仿真,综合工具给出的仿真网表已经是与生产厂家的器件的底层元件模型对应起来了,可估计门延时对电路带来的影响。,综合前仿真,综合后仿真,只能估计门延时,不能估计线延时,仿真结果和布线后的实际情况还有一定的差距,并不十分准确。由于目前综合工具比较成熟,一般省去此环节的仿真,直接进行下一步仿真。,这个阶段的仿真可以用来检查代码中的语法错误以及代码行为的正确性,其中不包括延时信息。,考虑的是理想化的情况,没有门延迟,没有布线延迟。只关注代码的行为级功能描述是否正确。,仿真的基本概念,仿真的分类?,布局布线后仿真(后仿真),即时序仿真,是指使用布局布线后综合工具给出的模块和连线的延时信息, 在最坏的情
4、况下对电路的行为作出实际的评估。,门延时,走线延时,FPGA的实际工作情况,一般来说,布局布线后仿真必须进行,以此确保设计的可靠性和稳定性,发现时序违规(Timing Violation)。,仿真的基本概念,布局布线后仿真(时序仿真),功能仿真VS布局布线后仿真,仿真的基本概念,布局布线后仿真(时序仿真),输入文件,扩展名为 SDO 或 SDF 的标准时延文件(一般用Quartus生成的.sdo文件),从布局布线结果中抽象出来的门级网表(.vo文件),延时信息,.,目录,仿真的基本概念 后仿真前的基本准备工作 后仿真的基本操作步骤,.,后仿真前的基本准备工作,ModelSim库,库文件,是指已
5、经编译通过的设计文件的总体。,ModelSim中有两种库类型:,工作库,资源库,1.资源库是静态不变的,可以作为使用者设计的而一个部分被直接调用; 2.存放着所有可以被当前编译操作调用的已经编译过的设计单元; 3.每次编译允许同时调用多个资源库; 4. ALTERA的仿真库也属于资源库的一种,Description of the business,1.库的内容会随着使用者更新设计文件和重新编译而变化; 2.存放当前设计文件编译后产生的设计单元; 3.编译前必须先创建好工作库; 4.每次编译只允许有一个工作库; 5.默认的工作库名是work,.,后仿真前的基本准备工作,ModelSim库,一个工
6、程里面,资源库可以同时有多个,PLD 厂家的仿真库其实可以看成资源库的一种。我们一般要建四种库:,LPM,altera_mf,altera_primitive,元件库,.,后仿真前的基本准备工作,ModelSim库,前三种库是调用了相应的ALTERA 设计模块的设计进行仿真时必备的库。第四种库是进行综合后功能仿真和布线后时序仿真必备的库。,LPM,altera_mf,altera_primitive,元件库,.,后仿真前的基本准备工作,ModelSim库,安装好Quartus II 后,在其安装目录下 alteraquartusedasim_lib 里面存放了所有的仿真原型文件(simulat
7、ion model files )。每个 PLD 厂家的开发软件装好后都有相应的目录存放这些仿真原型文件。,.,后仿真前的基本准备工作,Altera仿真库建立步骤,1.在ModelSim安装目录中建立两个文件夹,一个是用于存放公用的库给它取名altera_base_v;另一个是用于存放您要用到的特定的器件库,取名为altera_device。,比如,F:Modelsim 6.5alteraaltera_base_v F:Modelsim6.5alteraaltera_device,.,后仿真前的基本准备工作,Altera仿真库建立步骤,2.启动ModelSim SE。建立两个新库,从主菜单选择
8、File-New- Library,选中“a new library and a logical mapping to it”,在“Library Name”填写“altera_base_v”,Library Physical Name填写文件夹绝对路径,如图所示。,.,后仿真前的基本准备工作,Altera仿真库建立步骤,3.从主菜单栏中选择 Compile-Compile,弹出一个对话框,点中Library下拉菜单,由“work”改为“altera_base_v”,点中查找范围下拉菜单,指向 Quartus II 安装目录quartusedasim_lib,选中下图所示中的220model.
9、v、altera_mf.v和altera_primitives.v三个文件,进行编译。,.,后仿真前的基本准备工作,Altera仿真库建立步骤,4.同样的方法步骤编译altera_device器件库。在编译这个库时选择的文件为一些器件文件如图所示。当然为了加快编译速度,也可以选择只用到的器件库文件。,.,后仿真前的基本准备工作,Altera仿真库建立步骤,5.编译库结束后,为了在每次新建工程的时候不需要重新编译Altera的仿真库,需要修改Modelsim的安装目录下的modelsim.ini文件。,第一步:选中modelsim.ini文件,右键单击属性,将只读属性去掉。 第二步:用写字板或其
10、它工具打开modelsim.ini文件,在Library这个位置下面 添加如下2行: altera_base_v = F:/Modelsim 6.5/altera/altera_base_v altera_device = F:/Modelsim 6.5/altera/altera_device,.,后仿真前的基本准备工作,Altera仿真库建立步骤,5.编译库结束后,为了在每次新建工程的时候不需要重新编译Altera的仿真库,需要修改Modelsim的安装目录下的modelsim.ini文件。,第一步:选中modelsim.ini文件,右键单击属性,将只读属性去掉。 第二步:用写字板或其它工
11、具打开modelsim.ini文件,在Library这个位置下面 添加如下2行: altera_base_v = F:/Modelsim 6.5/altera/altera_base_v altera_device = F:/Modelsim 6.5/altera/altera_device,第三步:保存文件。 第四步:关闭modelsim.ini文件后,再次将其只读属性打开。,6.最后,在Library的面板位置鼠标右击选择Refresh,或者退出modelsim重新启动。,.,后仿真前的基本准备工作,Altera仿真库建立步骤,至此,仿真库就完全建好了。 库建好后,ModelSim指向任何
12、一个目录下或新建任何一个工程(project )时,ALTERA 的仿真库都会出现在资源库当中,如下图所示:,.,目录,仿真的基本概念 后仿真前的基本准备工作 后仿真的基本操作步骤,.,后仿真的基本操作步骤,时序仿真的流程,1.新建一个project,建立divider_module工程,建立work工作库,把quartus II综合后的simulation文件夹里的几个文件一起复制到当前工程目录下,向工程添加三个文件divider_module.v, divider_module_tb.v 和 divider_module.vo,如下图所示。,所用例子:divider_module.v,.,
13、后仿真的基本操作步骤,时序仿真的流程,2.对这几个文件进行全编译,编译成功后,结果如下图所示。,.,后仿真的基本操作步骤,时序仿真的流程,3.选择菜单栏的 simulatestart simulate,如下图所示,启动仿真设置页面。 选中上面的选项卡中的 Design 再点击 work 左边的“+”,选中文件divider_module_tb.v。,注意:要把 Enable optimization 前面的勾去掉,即不进行自动优化。,.,后仿真的基本操作步骤,时序仿真的流程,4.选中选项卡中的Libraries加载刚才建的库,步骤分别是点击“add”,在弹出的Select Library窗口中
14、,点击下三角符号选择刚才建立的元件库“altera_device”,点击“OK”确定,如下图所示。,注意:此步骤是为该设计添加altera的仿真元件库,由于没有用到altera的lpm,megafunction和原语等,所以没有添加之前新建的例外一个库altera_base_v。,.,后仿真的基本操作步骤,时序仿真的流程,5.选中选项卡中的SDF,步骤分别是点击“add”,在弹出的Add SDF Entry窗口中,在SDF File中,点击“Browse”选择找到ModelSim中的工程目录的标准延时文件devider_module_v.sdo,作用域填写测试平台文件的例化模块名i1,最后点击“OK”确定,如下图所示。,.,后仿真的基本操作步骤,时序仿真的流程,6.最后,点击大窗口“Start Simulation”中的“OK”,如果前面都正确的话会出现下图所示结果。,7.进入到把信号添加到wave窗口,以及进行运行仿真分析。这两步比较简单,具体不再分析,添加完波形信号如下图所示。,.,后仿真的基本操作步骤,时序仿真的流程,.,后仿真的基本操作步骤,时序仿真的流程,THANKS!,