




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.实验五 ModelSim仿真【实验内容】1.仔细阅读ModelSim软件简要使用说明〔下文〕。〔"实例代码〞压缩包用于ModelSim软件学习用〕2.Testbench写法简要介绍。〔可以参考"Testbench模版〞〕3.用ModelSim完成10位全加器的功能仿真。ModelSim软件简要使用说明ModelSim是对VHDL,Verilog,SystemC以及混合语言编写的设计文件进展仿真和调试的工具软件。1.仿真流程在ModelSim中对一个设计进展仿真的根本步骤如下列图所示:2.仿真具体步骤Createanewproject选择"File>New>Project〞,会弹出对话框,如下图:其中:"ProjectName〞项:填写要创立的工程的名字。"ProjectLocation〞项:确定创立的工程所要存放的位置。请在E盘下建文件夹!"DefaultLibraryName〞项:填写工程的工作库的名字。注:在用ModelSim进展仿真之前,必须要对设计文件进展编译,生成与设计文件逻辑功能相对应的设计单元。由于ModelSim是用库文件来进展仿真的,所以编译后的设计单元需要存放在库文件里。这个库文件叫作"工作库〞。926以上三项填写完毕后,点击"OK〞按钮,会在指定的位置处创立工程及工作库,如下图:在工作库文件夹内,有一个名为"_info〞的特殊格式文件,如下图:这个文件指定了此文件夹为ModelSim的工作库文件夹。在编译步骤内生成的所有设计单元都会被添加到工作库文件夹内。Addingobjectstotheproject在上一步点击OK后,ModelSim会弹出一个对话框,如下图:其中:"CreateNewFile〞项:在工程中创立新的设计文件。"AddE*istingFile〞项:把已经存在的设计文件参加到工程中。"CreateSimulation〞项:在工程中创立仿真配置文件。"CreateNewFolder〞项:在工程中创立新的文件夹。〔1〕创立文件夹。〔此步骤也可以不要,不过推荐采用此步骤,便于文件管理〕选择"CreateNewFolder〞项,在弹出的对话框中输入要创立的文件夹的名字,如下图:点击"OK〞按钮,会在"Workspace〞列表里显示出新创立的文件夹。如下图:〔2〕将设计文件参加到文件夹内。选择"AddE*istingFile〞项,会弹出对话框,如下图:其中:"FileName〞项:指定设计文件所在位置。"Referencefromlocation〞项:表示只将设计文件与工程关联起来。"Copytoprojectdirectory〞项:表示将设计文件复制一份到工程目录下。存放的具体位置由"Folder〞项指定。指定设计文件的具体位置后,选择"Copytoprojectdirectory〞项,并通过"Folder〞项,将存放位置改成"HDL〞,如下图:点击"OK〞按钮,会在工程文件夹内多出两个设计文件,如下图:这两个设计文件就是从指定的路径下将源文件复制过来的。点击"OK〞按钮后,会在"Workspace〞列表的"HDL〞文件夹里新参加两个设计文件。如下图:pilingyourdesign将设计文件参加到工程中以后,就可以编译设计文件了,编译器会将编译生成的设计单元添加进你所创立的工作库中。编译的步骤如下:〔1〕编译设计文件。在"Workspace〞列表的"Project〞栏内,点击右键,在弹出的列表中选择"pile>pileAll〞,如下图:如果设计文件编译无误,每个设计文件后面的"Status〞栏会有绿色的对勾,否则会有红色的错叉出现。当有错叉出现时,需要根据ModelSim的"Transcript〞栏内的提示信息修改设计文件,并重新编译,直到编译通过为止。编译通过后,由设计文件编译成的设计单元会被参加到工作库中,如下图:〔2〕查看编译后的设计单元。点击"Workspace〞列表里的"Library〞栏,展开"WorkLIB〞库,会看到编译后参加到库中的设计单元。如下图:Loadingthedesignintothesimulator编译后生成的设计单元需要参加到仿真器中才能进展仿真。由于测试文件〔testbench〕例化了要仿真的模块,所以只需要将测试文件生成的设计单元加载到仿真器中。双击"Workspace〞列表内工作库下测试文件生成的设计单元,就可以将其加载到仿真器中。也可以选择"Simulate>StartSimulation〞,会弹出一个对话框,展开"WorkLIB〞工作库,选中测试文件生成的设计单元,如下图:点击"OK〞按钮即可将测试文件生成的设计单元加载到仿真器中。设计单元成功加载到仿真器后,ModelSim会自动弹出仿真器,并将"Workspace〞列表切换成"sim〞栏,如下图:Runningthesimulation运行仿真器进展仿真的步骤如下:〔1〕将信号参加到波形窗口中。在"Workspace〞列表内,选择"sim〞栏。右键点击测试文件生成的设计单元,在弹出的列表里选择"Add>AddtoWave〞,如下图:参加信号后的波形窗口如下图:也可以在"Objects〞列表里选择感兴趣的信号参加到波形窗口里。方法是选**号,右键单击此信号,在弹出的列表里选择"AddtoWave〞,会弹出三个选项,如下图:其中:"SelectedSignals〞项:表示参加到波形窗口中的信号是被选中的信号,即图中"Objects〞列表里的"count〞信号。"SignalsinRegion〞项:表示参加到波形窗口中的信号是"Objects〞列表里的所有信号,即图中"Objects〞列表里的"clk〞、"reset〞和"count〞信号。"SignalsinDesign〞项:表示参加到波形窗口中的信号是测试文件生成的设计单元里的所有信号,即图中"Workspace〞列表里的"test_counter〞下面展开的所有设计单元的信号。其中"SignalsinDesign〞的效果与上一种方法效果是一样的。〔2〕运行仿真器,开场仿真。点击"run〞按钮,就可以进展仿真了,如下图:需要注意的是,"run〞按钮每次只能仿真100ns,如果要一直仿真下去的话,点击"runall〞按钮可以实现。如下图:如果要停顿仿真,可以按"break〞按钮,如下图:如果要重新仿真,可以按"restart〞按钮,如下图:Debuggingyourresults对仿真波形进展分析,确定逻辑是否正确。如果没有得到你要的仿真结果,则需要修改设计文件,并重新编译,加载到仿真器中进展仿真。注:ModelSim的编译器在对设计文件进展编译时,并不会对设计文件进展综合,即将设计文件与硬件对应,这点从上面的仿真步骤也可以看出,仿真步骤中并没有选择器件型号的步骤。因此编译时生成的设计单元并没有包含硬件信息,即不会存在器件延时,所以只用ModelSim作的仿真是一种功能仿真,有时也称为"前仿真〞。如果想用ModelSim作仿真时参加器件的延时信息,模拟硬件来仿真,则需要Quartus的配合才能完成。参加器件延时信息的仿真称为"后仿真〞,仿真结果接近真实器件的运行结果。关于ModelSim作"后仿真〞,有兴趣的读者可查阅相关资料自学,我们这里只介绍"前仿真〞。Testbench写法简要介绍描述测试信号的变化和测试过程的模块叫做测试平台〔Testbench〕,它可以对电路模块进展动态的测试。通过观测被测试模块的输出信号是否符合要求,可以调试和验证逻辑系统的设计和构造是否正确,便于发现问题并修改。Testbench用于测试模块的示意图如下图:由示意图可知,Testbench要对被测模块进展测试,需要产生被测模块所需的鼓励信号〔比方时钟信号,复位信号等〕,这个就像我们用Quartus波形仿真时拖波形一样,只是Testbench里需要我们用代码来实现波形的变化。产生的鼓励信号需要与被测模块对口〔比方产生的时钟信号要送入时钟输入口,产生的复位信号要送入复位输入口等〕,如何实现对口,这就需要对被测试模块的例化来实现。例化的写法如下:被测模块名 例化进Testbench后的模块名〔.被测模块输入口 Testbench产生的鼓励信号,.被测模块输出口 Testbench里用来显示输出的信号〕;上面的示意图对应的例化写法为:被测模块名例化进Testbench后的模块名( .Input_1 (In_1), .Input_2 (In_2), .Input_3 (In_3), .Output_1 (Out_1), .Output_2 (Out_2), .Output_3 (Out_3));更具体的写法请参考Testbench模版。10位全加器的功能仿真实验要求【输入端口】 【输出端口】clk, //模块时钟 dout[9:0], //和数rst, //模块复位 cout //高位进位din_1[9:0], //加数1din_2[9:0], //加数2cin //低位进位以抓图的方式给出仿真波形图,并对结果作适当分析。补充说明`timescale10ns/1ns时钟clk的产生写法:InitialClk=0;always#50clk=~clk; //表示从仿真开场算起,每隔50个时间单位,将clk翻转一次复位rst的产生写法:Initial //下面的写法使rst=1持续的时间为120个时间单位begin#0 rst=1'b0; //仿真开场时,rst置0#5 rst=1'b1; //仿真开场后5个时间单位时,rst置1#125 rst=1'b0; //仿真开场后125个时间单位时,rst置0end加数的产生写法:always(negedgeclk)//时钟下降沿将加数改变begindi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国PVC标签纸行业发展分析及投资风险与战略研究报告
- 2025-2030中国NAD补充剂行业市场现状分析及竞争格局与投资发展研究报告
- 2025-2030中国LHD(装载运输和倾卸)装载机行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国L-羟脯氨酸(CAS 51-35-4)行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国ICU电动病床行业应用领域与需求发展趋势预判研究报告
- 2025-2030中国DNA诊断和和测试行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国5G+工业互联网行业市场发展分析及市场前瞻与投资策略研究报告
- 2025-2030中国1-辛硫醇市场经营管理风险与投资价值研究研究报告版
- 2025-2030个人护理品行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030WiFi插座和插头行业市场现状供需分析及投资评估规划分析研究报告
- 矿山化验室安全培训
- 清华大学告诉你普通人如何抓住DeepSeek红利
- 《法律职业伦理》课件-第四讲 律师职业伦理
- (2025)辅警招聘公安基础知识必刷题库及参考答案
- 人教版(2024)七年级下册英语Unit 5 Here and Now 单元教学设计(共6课时)
- 动态博弈模型构建-深度研究
- 二零二五年度城市排水管网运维合作协议4篇
- 点亮人文关怀守护生命花开-护理人文关怀模式在一例脑卒中后焦虑患者中的应用
- 2024年无锡职业技术学院高职单招语文历年参考题库含答案解析
- Unit 1 Animal friends Section A Grammar Focus英文版说课稿-2024-2025学年人教版(2024)七年级英语下册
- 2024 大模型典型示范应用案例集-1
评论
0/150
提交评论