《FPGA设计基础 Modelsim SE的使用方法.ppt》由会员分享,可在线阅读,更多相关《FPGA设计基础 Modelsim SE的使用方法.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ModelSim仿真工具西安邮电学院计算机系西安邮电学院计算机系逻辑仿真工具modelsim具有广泛的应用,我们讲述:n代码仿真;n门级仿真和时序验证。前言前言2022/12/252西安邮电学院计算机系在完成一个设计的代码编写工作之后,可以直接对代码进行仿真,检测源代码是否符合功能要求。这时,仿真的对象是代码,比较直观,速度比较快,可以进行与其它软件相类似的多种手段的调试(如单步执行等)。在设计的最初阶段发现问题,可以节省大量的精力。代码仿真代码仿真2022/12/253西安邮电学院计算机系代码仿真需要的文件代码仿真需要的文件n设计源代码设计源代码:可以使用语言或Verilog HDL语言。(
2、这里以附录用Verilog语言编写的位计数器为例进行说明)n测试激励代码测试激励代码:根据设计要求编写输入输出的激励程序,由于不需要进行综合,书写具有很大的灵活性。n仿真模型库仿真模型库:根据设计内调用器件供应商提供的模块而定。2022/12/254西安邮电学院计算机系建立工程建立工程:在modelsim中建立Project。如图2.1所示,点击file-new-project。得到creat project的弹出窗口,如图.所示。在project name栏中填写你的项目名称,建议和你的顶层文件名字一致。Projectlocation是你的工作目录,你可通过browse按钮来选择或改变。De
3、fault library name可以采用工具默认的work。代码仿真步骤代码仿真步骤2022/12/255西安邮电学院计算机系图2022/12/256西安邮电学院计算机系图2022/12/257西安邮电学院计算机系2022/12/258西安邮电学院计算机系给工程加入文件给工程加入文件:ModelSim会自动弹出Add Items tothe project窗口,如下图所示所示。选择Add Exsiting File后,根据相应的提示将文件加到该project中。2022/12/259西安邮电学院计算机系图2022/12/2510西安邮电学院计算机系编译编译:编译(包括原代码和库文件的编译)
4、,编译可点击Comlile-Comlile All来完成。2022/12/2511西安邮电学院计算机系装载文件装载文件:如图,点击Simulate-Simulate后,如图所示,选定顶层文件(激励文件),ADD加入,然后点击load,装载。2022/12/2512西安邮电学院计算机系图2022/12/2513西安邮电学院计算机系图52022/12/2514西安邮电学院计算机系开始仿真:如下图示开始仿真:如下图示2022/12/2515西安邮电学院计算机系仿真波形如下图2022/12/2516西安邮电学院计算机系波形信号的保存波形信号的保存:有时,在波形窗口拖放了很多的信号,可以保存起来以后调入
5、。在wave窗口,File-Save format,保存成*.do文件。以后需要调入时,在modelsim主窗口命令行内执行:do*.do即可。2022/12/2517西安邮电学院计算机系 使用综合软件综合后生成的门级网表或者是实现后生成的门级模型进行仿真,不加入时延的仿真就是门级仿真。可以检验综合后或实现后的功能是否满足功能要求,其速度比代码功能仿真要慢,但是比时序仿真要快。在门级仿真的基础上加入时延文件.sdo文件的仿真就是时延仿真。优点是:比较真实的反映逻辑的时延与功能,缺点是速度比较慢,如果逻辑比较大,那么需要很长的时间。门级仿真和时序仿真门级仿真和时序仿真2022/12/2518西安
6、邮电学院计算机系在这里仿真以Altera 的器件为例。利用经过综合布局布线的网表和具有时延信息的文件进行仿真,可以比较精确的仿真逻辑的时序是否满足要求。2022/12/2519西安邮电学院计算机系n综合布局布线生成的网表文件综合布局布线生成的网表文件n测试激励测试激励n元件库元件库n时序仿真需要综合布局布线生成的具有时延信息的文时序仿真需要综合布局布线生成的具有时延信息的文件(件(sdfsdf)文件。文件。仿真需要的文件仿真需要的文件2022/12/2520西安邮电学院计算机系在在QuartusQuartus中正确设置仿真工具:中正确设置仿真工具:如图所示,点击Quartus的Assignme
7、nt菜单下的EDA Tools Settings,进入图中,点击EDA tool type,在Tools Settings的下拉菜单中,根据你所使用的语言与Modelsim的版本,作相应的选择。仿真步骤仿真步骤2022/12/2521西安邮电学院计算机系图2022/12/2522西安邮电学院计算机系图图2022/12/2523西安邮电学院计算机系用用QusrtusQusrtus产生仿真所需要的网表与产生仿真所需要的网表与sdfsdf文件文件:在作了第一步的正确设置后,每当你完成一次编译,Quartus会自动在你的当前Project 目录下生成一个simulation目录,在该目录下,就有我们所
8、需要的文件。如果使用VHDL语言,网表文件是.VHO,SDF文件.SDO;如果使用Verilog语言,网表文件是.VO,SDF文件也是.SDO。2022/12/2524西安邮电学院计算机系在在ModelSimModelSim中建立中建立ProjectProject:与代码仿真相似,建立工程,并加入文件。不同的是,门级仿真或时序仿真,则是加入综合后的网表文件,源代码文件不需要,可以将其从Project中删除。2022/12/2525西安邮电学院计算机系编译源代码和网表:编译源代码和网表:源代码的编译可点击Comlile-Comlile All来完成。2022/12/2526西安邮电学院计算机系库
9、文件的编译:库文件的编译:库文件的编译:库文件的编译如下所述在成功建立Project后,Modelsim中如下图示:2022/12/2527西安邮电学院计算机系编译Vo和testbench文件2022/12/2528西安邮电学院计算机系弹出上图所示窗口。在Design下,点开wok,双击你的testbench,再单击Add按钮。在Libraries下,单击Add按钮,将刚才在QUARTUS里面生成的库加入,本例加入如下图两个库文件:2022/12/2529西安邮电学院计算机系添加所需要的库文件添加所需要的库文件2022/12/2530西安邮电学院计算机系对于时序仿真,还要加入(sdf)文件,单
10、击SDF,再单击Add,将SDF文件加入,如下图示:2022/12/2531西安邮电学院计算机系添加标准的延迟文件添加标准的延迟文件2022/12/2532西安邮电学院计算机系通过Browse加入SDF文件,在Apply to Region框内填入延迟文件所对应的模块。在上图中,coun4_tp为测试激励程序,mycount为被仿真的模块在激励程序中的例化名字。单击ok将SDF文件加入,然后单击load,就可以开始仿真了。2022/12/2533西安邮电学院计算机系仿真准备:仿真准备:致此我们已经准备好了仿真所需要的所有文件:源代码或网表文件,testbench文件,库文件,SDF文件。下面开
11、始仿真。如图所示,点击Simulate-Simulate后,2022/12/2534西安邮电学院计算机系2022/12/2535西安邮电学院计算机系开始仿真:开始仿真:与代码仿真一样,在这里就不在说明。后仿真波形如下图示:2022/12/2536西安邮电学院计算机系module count4(out,reset,clk);output 3:0 out;input reset,clk;reg 3:0 out;always(posedge clk or posedge reset)begin if(reset)out=0;else out=out+1;end endmodule 附加源代码及测试代
12、码附加源代码及测试代码2022/12/2537西安邮电学院计算机系timescale 1ns/1ns include count4.v module coun4_tp;reg clk,reset;wire3:0 out;parameter DELY=100;count4 mycount(out,reset,clk);always#(DELY/2)clk=clk;2022/12/2538西安邮电学院计算机系initial begin clk=0;reset=0;#DELY reset=1;#DELY reset=0;#(DELY*20)$finish;end endmodule 2022/12/2539西安邮电学院计算机系