




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用Verilog HDL进行数字逻辑设计、综合、仿真的步骤及工具软件使用简要说明综合工具使用synplify pro 7.0仿真工具使用 modelsim 5.5e (几个菜单排列与5.6有不同,文中有介绍)布局布线工具及时序仿真模型生成使用 maxplusII 10.0一写在开干之前1 涉及到的文件a 源程序 (*.v)用户编写的用于描述所需电路的module (可能有多个文件,多个module相互调用)如果用于综合,则源程序内用于描述的Verilog语言必须是可综合风格的。否则将只能做功能仿真(前仿真),而不能做综合后的仿真和时序仿真(后仿真)。b 综合后的Verilog HDL 模型(网表) (*.vm)用综合工具synplify对a 进行综合后生成的电路的Verilog HDL 描述。由synplify自动生成(必须在Implementation Option Implementation results选项中选中write mapped verilog netlist后才会生成vm文件)。此文件用于作综合后的仿真c 布局布线后生成的时序仿真模型(网表) (*.vo)文件使用maxplusII对设计进行布局布线之后,生成的带有布局布线及具体器件延迟特性等参数的电路模型的Verilog HDL描述。要让maxplusII生成vo文件,必须在maxplusII的compile interface中选中verilog netlist writer。此文件用于作时序仿真(后仿真)d 测试文件(*.v或*.tf)用户编写的Verilog HDL源程序。用于测试源程序(a,b,c)中所描述电路。在测试文件中调用被测试的module,生成被测点路所需的输入信号。所用Verilog HDL语句不需要是可以综合的,只需语法正确。如果被测试的模型为a,则对应的仿真为前仿真(功能仿真)如果被测试的模型为b, 则对应的仿真为综合后仿真如果被测试的模型为c, 则对应的仿真为后仿真2 强烈建议a 在写用于综合的源程序时,一个源程序文件里只写一个moduleb 源程序文件名与其内所描述的module名相同(如module myadder 文件名myadder.v)c 为了方便管理文件,为每一个设计都单独创建一个目录,目录内创建source, test子目录分别用于存放源程序(用于综合的)和测试文件。d 在F盘创建一个以自己学号为名的目录,将自己的设计都存放在这个目录下面e 不要使用包含中文字符或空格的目录名和文件名,因为有些工具软件不支持f 以上建议不一定是必须的,但是可以减少设计中的很多麻烦,请各位同学尽量采纳。二一般步骤(以一个加法器为例)1在硬盘上建立存放练习的目录(如在机房上机的话最好以自己的学号为名),再在此目录下面建立存放本次实验文件的目录(adder),在adder下建立source和test目录。目录结构如下:d:35020423adder sourcetestexc1sourcetest.在本文中,用来综合的Verilog源文件都存放在source目录下;测试文件存放在test目录下。2.打开synplify pro 如图所示界面中各个区域说明如下:1:快捷按钮,从上到下依次为:Open Project:没什么好说的。Close Project:同上Add File:添加源文件到工程中Change File:改变工程中已经加入的文件。例如在工程中加入了源文件A1.v,后来发现应该加A2.v,可以使用这个按钮;当然也可以先从工程中删除A1.v再从新加A2.vNew Impl:新建一个ImplementationImpl Options:设置Implementation的选项View Log:察看综合的报告文件。里面有警告和出错信息,如果综合成功,里面会有资源占用、时间分析等信息。2:Run按钮所有的设置完毕后用这个按钮开始综合3:工程区域显示当前工程的文件结构等信息4:Implementation区域显示当前Implementation目录中的内容5:Console区域显示一些操作的过程和结果信息6:快捷按钮和菜单区域正式开始干活(以adder为例)1 新建工程菜单File-New,出现图2所示新建文件对话框。选择File Type为Project File (1)选择文件路径(2):d:35020423adder给出文件名(3):adderOK后如图3所示。图2 新建工程图3 新建工程后2 给工程添加源程序如果没有现成的源程序,可以使用synplify新建一个然后编辑;如果有现成的源程序,可以直接用Add files按钮将其添加到工程中;下面讲的是用synplify新建一个。使用菜单New-Files同样出现如图2所示对话框。这次选择File Type 为Verilog File。注意不要选成VHDL File(除非你确实要使用VHDL语言)然后选择文件的路径为d:35020423addersource (注意工程文件路径与此不同)给出文件名adder (缺省Verilog HDL源程序文件扩展名为 .v)如果需要的话,可以直接将复选框Add to Project选中,这样新建文件的同时,就将文件加入到了工程中。也可以不选,在其他时候用add files按钮来加。添加文件后,工程窗口如图四。双击(1)中的源文件的图标可以切换到文件编辑窗口(图5)。鼠标单击区域(2)可以在不同窗口间切换。在编辑窗口中输入下列程序:module adder(cout,sum,a,b,cin);/模块名,输入输出信号列表input2:0a,b;/输入输出信号定义input cin;outputcout;output 2:0 sum;/功能描述assigncout,sum=a+b+cin;endmodule如图5。图4 新建源文件图5 编辑源文件3 Implementation Option设置在Implementation Option中可以设置综合时使用的器件,输出的仿真模型以及综合的约束条件(Constrain)等参数。如图6所示,单击Impl Options按钮或使用右键快接菜单都可以打开Implementation Option对话框,如图7。(1)为选项标签,可以选择需要设置的项目页;在本例中需要对device和Implementation Results两个属性页进行设置图7中(2)为device属性页内的设置内容。Technology 的列表中列出的是synplify软件所支持的所有可编程逻辑器件厂商的各种器件,我们这里选用了Altera公司的Acex1k系列的器件。一般来说,某一个器件系列都会有多种不同规模(逻辑门数)速度档级(器件延迟性能)和封装(管脚个数及器件物理外形尺寸)的器件;我们这里选择Acex1k系列中的EP1K10 速度为-1及封装为TC100的器件。这些参数在实际的设计中可以根据设计的实际情况选择,我们这里只是举了一个例子。图6 Implementation设置图7 Implementation Option对话框切换到Implementation Results选项。如图8所示。(1) 的位置是设置Implementation的名字,工程新建后缺省的Implementation名字为rev_1,为了便于归类,我们将使用altera公司器件的这个Implementation名字改为altera。改完名字之后,synplify会在当前工程文件所在目录中,建立一个和implementation名字相同的子目录,用于存放综合后产生的文件。(2) 如果需要让synplify综合后生成用于综合后仿真的verilog模型,应该将(2)选项:Write Mapped Verilog Netlist选中,这样综合成功后,会生成一个与顶层文件名相同,而扩展名为.vm的文件。这个文件也是一个用verilog HDL描述的文件,只不过是根据综合后生成的电路结构来描述的。当作综合后仿真的电路模型。Result File Name为综合后的逻辑网表文件。通过这个文件可以把综合后的逻辑交给后端的布局布线软件进行后续处理。图8 Implementation Results设置设置好以上选项之后就单击确定按钮;可以发现原来的Implementation名字rev_1已经改为altera了,用资源管理器察看硬盘上的adder目录发现新建了一个altera子目录。如图9。图9 设置完毕后的工程列表图9红圈中标出的是当前工程的顶层文件的名字。当一个工程由多个源程序文件组成时,顶层文件的设置可以通过Implementation Option中的Verilog标签指定,或者将顶层文件托动到Verilog文件夹(图9)的最后一个,因为synplify认为最后一个文件就是顶层文件。好了,该设置的都已经设置完了,接下来的工作就交给计算机,不过还需要下一个命令。单击那个最大的按钮RUN。如果你够牛,那就可能一个错误都没有就显示”DONE”,但是一般情况下,都会有写warning啦error什么的,这时候可以单击工程窗口左边那一列按钮的最后一个View Log,来察看到底发生了什么状况。如果有兴趣,大家可以把源程序中的分号去掉一个重新RUN一把,然后看看有什么事情发生,这样自己写程序时出了错也不至于太紧张。综合成功后,工程窗口右边(图1 中4号区域)发现一些内容,这些都是综合后生成的结果。如图10。图10 综合结果(1) 号区域(3)号区域分别是门级和RTL级的综合结果描述,大家可以用鼠标双击看看有什么事情发生,可以用放大缩小调整显示的效果。(2) 号为生成的vm文件,是我们下一步综合后的仿真所需要的电路模型(3) 号区域为生成的edf网标文件,可以用后端的布局布线工具打开,后仿真的时候会用到。其它的我也不是太清楚,就不说了,有兴趣自己琢磨吧。使用synplify综合的工作基本就完成了,当然还可以用synplify的源程序编辑功能来写我们的测试文件,但是千万记住不应该把测试文件加到我们的synplify工程里去哦。4 前仿真(功能仿真)准备活动:需要描述电路的文件(.v),需要测试文件(.v或.tf),需要modelSim。还是adder.v。再写一个测试文件 t_adder.v存放于d:35020423addertest下。随便什么文本编辑器都可以,当然也可以用synplify 或modelsim的文本编辑功能。t_adder.v测试文件代码如下:module t_adder;reg 2:0 a1,b1;reg cin1;wire cout1;wire 2:0 sum1;adder u1(cout1,sum1,a1,b1,cin1);/adder模块调用initial begina1=0;b1=0;cin1=0;# 100 a1=1;# 100 b1=2;# 100 cin1=1;# 1000 a1=2; b1=3; cin1=0;$stop;endendmodule5 运行modelsim ,使用菜单FileChange Directory改变目录到”d:35020423adder”。改变目录后,下一步的建库操作所自动产生的目录,都会被创建在目录adder中。6 建库所有在仿真中会用到的module都需要预先编译,编译后的结果都会放到所选择的库(目录)中。一个目录下的某一个库只用创建一次,下一次重新进入modelsim的时候,只要选择了相应的目录(步骤5),以前所创建的库都会显示在modelsim的workspace窗口(主窗口左边的部分)中。如果是modelsim se 5.5x版,使用菜单Design-Create New Library,然后在建库对话框中给出Library Name。如果是modelsim se 5.6x版,使用菜单File-New-Library,然后在建库对话框中给出Library Name。在我们的联系中,建议大家对于前仿真、综合后的仿真和后仿真分别建立不同的库;在本例中,我们建立两个库,名字分别为qian和zhong对应前仿真和综合后的仿真。7 编译文件使用工具栏上的编译按钮,弹出如图11所示编译对话框。图11 编译对话框图中(1)为库的选择,意思是当前编译操作的结果存放的地方。如果是前仿真,那我们就把Library选为qian。接着在source子目录下找到adder.v,选中文件,按Compile按钮进行编译(双击文件也可以),然后在test子目录下找到测试文件t_adder.v编译。在编译过程中,如果有错误,会在modelsim主窗口中显示错误信息;文件被修改后要重新存盘和编译。编译完成后,按Done关闭编译窗口。在modelsim主窗口左边的workspace中,选择qian这个库,会发现里面多了两个子项:adder和t_adder。库中列出的子项实际上是编译过的module的名字;8双击t_adder子项,将测试模块Load到仿真环境中主窗口变为如图12所示:图12 Load Design如果Load过程中没有错误,将会在workspace窗体中显示当前仿真环境中被仿真对象的层次结构;使用菜单View-Signal弹出signal窗口;signal窗口中显示的信号是当前workspace中层次结构中被选中的那个模块内部的信号;这使我们在仿真中不但可以观察顶层模块中的信号波形,而且可以观察被调用模块内部的变量;使调试跟加方便。9在signal窗口中用鼠标选择需要观测的信号,然后使用菜单view-wave-selected signals就可以把选中的信号添加到Wave(波形观察)窗口,如图13所示:(如果是modelsim 5.6版,可以在选中信号之后直接用鼠标右键菜单添加信号)(也可以使用主窗口菜单View-Wave先把Wave窗口弹出,然后将signal窗口中的信号拖到Wave窗口)几个常用的工具按钮功能如下:1:打开*.do文件2:保存*.do文件。当添加好信号之后,可以把当前Wave窗口中信号排列顺序、显示方式等信息保存为一个*.do文件;下次对相同模块进行仿真时可以用(1)打开这个文件。3添加光标。所谓光标就是图中那条蓝色的竖线。可以添加多条光标并且可以测量两条光标间的时间长度;4删除当前光标5向前移动当前光标到当前选中(高亮)信号的前一个跳变点6向后移动当前光标到当前选中(高亮)信号的下一个跳变点,5,6可用于查找所关心的信号变化点7波形在时间轴上放大8波形在时间轴上缩小9放大选择的区域。先单击此按钮,然后在波形图中拉开一个区域,系统将放大此区域到整个窗口。10显示全部波形。单击此按钮后,系统会将全部仿真波形压缩(时间轴)到窗口中显示11重新开始仿真12开始仿真(run all),不会停止仿真直到用户按下停止仿真(13)按钮或执行到$stop或$finish等系统任务。13停止仿真若要开始仿真,单击按钮1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【课件】科学计数法课件2025-2026学年+人教版七年级数学上册
- DB32-T 4459-2023 文化产业园区运营管理和服务规范
- 药学专业试题及答案大全
- 考研日语专业试题及答案
- 通信专业课试题及答案
- 湖北省武汉市部分学校2026届高三上学期九月调研考试物理(含答案)
- 河北省衡水市桃城区2025-2026学年高二暑假开学考试试卷英语
- 福建省泉州市2026届高三上学期质量监测 (一)数学试题(含答案)
- 墙体混凝土垫层施工方案
- 平交口改道施工方案
- 香港《儿童发展范畴表现指标》
- 幼儿园大班数学课件《认识货币》
- 黑布林阅读初一10《霍莉的新朋友》英文版
- 中国华罗庚学校数学课本八年级
- 政治校本课程
- 特劳特《定位》PPT通用课件
- GB/T 1732-1993漆膜耐冲击测定法
- 二十四节气演讲稿
- GA/T 2000.7-2014公安信息代码第7部分:实有人口管理类别代码
- 2023年安徽国贸集团控股有限公司招聘笔试模拟试题及答案解析
- 初中作文指导-景物描写(课件)
评论
0/150
提交评论