ImageVerifierCode 换一换
格式:DOCX , 页数:65 ,大小:2.23MB ,
资源ID:10402920      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10402920.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(quartus II和modelsim的基本使用.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

quartus II和modelsim的基本使用.docx

1、quartus II和modelsim的基本使用目录1 quartus II 基本操作 3(1)新建工程 3(2)文件的组织形式 7(3)给工程添加一个文件 7(4)文件的编译 102Modelsim的基本使用 12(1) 测试平台testbench 12(2) 在modelsim中编写测试文件和用户设计的模块 12(3) 基本仿真流程 141,creat the working design library 142,compile the design uints 153,optimize the design 164,load the design 175,run the simulati

2、on 18(4) modelsim 工程 201,create a new project 202,add objects to the project 213,compile the design 214,optimize for design visibility 225,load the design 22(5) 使用多个库进行仿真 221, 建立实验环境 222,新建工程 233, 关联其他库 243 quartus II 和modelsim 的联合使用 27(1)ip核的使用 27(2)从quartus II调用modelsim进行仿真 341,基本设置 342,仿真 39(3)mo

3、delsim 直接仿真quartus II的IP核。 391,脚本记录文件 402,仿真需要的库 513,关联库并仿真 52我所使用的是quartus II verison 11.1,使用的语言是verilog HDL,打开软件界面如下图所示:1 quartus II 基本操作(1)新建工程选择file菜单下的new project wizard,会弹出如下图所示界面:点击next,来到下面的页面:第一栏要输入的是工程的存储路径,我输入的是:G:/code/verilog test/20150411_basic_tool/t1第二栏是工程的名字:basic_tool第三栏里会自动填入和工程名字

4、一样的字符,默认工程中顶层模块的名字和工程名相同,顶层模块在工程的编写过程中是可以更改的,这个先不用管它。需要注意的是路径必须是英文路径,文件夹和工程名字只能是英文字母或者”_”。然后点击next进入如下图所示的界面这个界面的意思是如果在工程文件夹下已经有verilog HDL文件了,可以直接添加进来作为工程文件,先不用管它直接next进入如下图所示的界面:刚才称呼的一系列“界面”换成“窗口”比较合适。这个窗口的目的是选择期间型号。先随便选一个就行,像我选的是cyclone II系列的ep2c8q208c8芯片。然后点击next进入下图所示的窗口:这个窗口的目的选择仿真工具和语言,也可以先不选

5、。点击NEXT进入下面窗口:这个窗口是对刚刚所有操作的总结,便于检查哪些参数设定错了,到目前为止,工程目录下依然什么都没有:但是当我们点击finish的时候,工程目录下出现了一个文件夹和两个文件如下图所示:工程的基本配置信息就包含在里面,后缀.qpf的文件就是 quartus project file.以后可以通过双击该文件直接打开工程。(2)文件的组织形式新建工程之后,主界面左上角出现了如下图所示的窗口:如果没有的话到view菜单下找找,问题不大。它显示了工程的器件型号和层次结构。在quartus II工程中,每一个verilog HDL文件都是一个模块(module),模块之间通过端口互联

6、,可以是平行的关系,也可以构成上下级的层次关系,一般上层模块会在自己的文件中调用下层模块。顶层模块处于这个层次的最顶端。(3)给工程添加一个文件在菜单栏依次单击file-new,会出现下图所示的窗口:选择verilog HDL file ,然后点击OK。会出现如下图所示的文件页面:一般背景是白色的,我觉得刺眼就设成黑色的了,在tool-option选项下可以更改这些设置。在编辑文件之前先把它保存在工程目录下是个好习惯。我把文件命名为mul保存之后工程目录下出现了变化如下图:在工程导航界面也多了一个文件如下图所示:(如果熟练使用快捷键的话,从新建文件到保存文件可以不用鼠标,自己摸索吧)接下来往文

7、件里写入代码:这是一个二选一多路器的模块,a,b是输入,sel是选择信号,c是输出。Sel是高电平的时候b的状态会被输出,sel是低电平的时候,a的状态会被输出。(4)文件的编译上图中下面被按下的按钮主要检查当前文件是否有语法错误。而它上面那个横三角一样的按钮是对整个工程进行编译。对整个工程进行编译包括了对单个文件进行语法检查,或者应该这样理解:在编译工程之前应当保证语法没错误,如果开发者忘记了进行语法检查而直接编译工程,quartus II会自动进行语法检查。在你没按顺序操作的时候,quartusII会自动帮你补齐被漏掉的操作步骤。此时的工程名还叫做basic_tool。但是工程中没有bas

8、ic_tool.v这个文件,编译整个工程的时候会报错:找不到顶层文件。此时应当把我们工程中唯一的.v文件mul.v设为顶层模块。操作方法是右击工程导航中的mul文件,如下图所示:编译成功之后到底我们的代码能做什么?可以通过RTL视图来理解这个问题。也就是寄存器传输级别的视图。在task窗口下一次点击:compile design -analysis & synthesis-netlist viewers-RTL viewer得到如下图所示的视图:我们刚刚的代码通过编译变成了下载所需的文件,这个文件被下载到FPGA中之后,FPGA芯片里就会有上图所示的逻辑门被搭建起来。它正是二选一多路器的门级结

9、构。2Modelsim的基本使用我所使用的modelsim版本是modelsim SE 10.1a。打开软件界面如下图所示:(1) 测试平台testbench在仿真之前必须写一个测试文件,它也是一个模块。是调用顶层模块的模块,但它并不属于工程的一部分,最终也不会被下载到芯片中。它的作用就是产生激励信号输入给用户编写的模块,然后通过观察输出来分析设计是否符合要求。既然不会被下载到芯片中,如何给激励信号,又如何产生输出?modelsim会通过仿真完成这个过程。(2) 在modelsim中编写测试文件和用户设计的模块File-new-source-Verilog打开文件编辑界面如下图所示:任意输入一

10、个字符之后就可以CTRL+S保存,我把它保存在一个单独的文件夹中,命名mul.v注意该软件也不支持中文路径。接下来可以手动写入代码,我是直接粘贴了quartus II工程中的代码。如下图所示:同样的方式新建测试文件并编写,保存。如下图所示:(3) 基本仿真流程1,creat the working design library在开始仿真之前,我们要新建一个库并且把与仿真有关的文件编译到库中。从菜单栏依次点击:file -change directory会出现创建新的库的对话框,默认库的名字是work,我们无需更改就用这个名字。点击OK我们就有了a new library 叫做 work接下来会

11、出现对话框让我们指定 a logical mapping to it,我把它指定到了上一步保存测试文件的位置。如下图所示:当你点击确定之后看一下相应文件夹下都出现了哪些新的东西,但是不要通过文本编辑器之类的工具随意更改这新信息。同时在软件界面最下面的transcript窗口中也会出现相应记录:再看library窗口下出现了一个空的work库:2,compile the design uints建好了库我们就把仿真相关的文件编译到库中。依次点击:compile-compile出现如下图所示的对话框:如果compile无效,可能是有别的工程处于打开的状态,关闭它就好了。选中要编译的文件,点击com

12、pile。当编译结束后点击done。从transcript窗口下的记录可以得知编译的结果。编译结束之后work库出现了新的变化:3,optimize the design把下面的命令输入transcript窗口:vopt +acc tb -o tb_opt这个命令的含义和作用先不必深究。注意空格,否则会报错。然后点击键盘的enter键,命令开始执行。优化结束之后,work库又有了新的变化:4,load the design在transcript窗口输入命令 vsim tb_opt,点击enter开始执行,如下图所示:load the design成功之后软件界面也发生变化:5,run the

13、simulation仿真调试的过程比较复杂,这里只列出几个简单步骤,以后会详细介绍。上图中的M1代表模块mul的一个实体,在本例程中mul模块也只有一个实体。鼠标右击出现菜单,左击add wave。会把该实体的输入输出信号全部加入到仿真波形窗口如下图所示:接下来点击上面的run图标(在点之前把run的时间设置为2000ns)然后波形窗口就会仿真出从0s到2000ns之间四路信号的状态变化:那个像黑色放大镜一样的图标(zoom full)会把全部波形充满整个屏幕。从波形观察,用户编写的模块mul实现了二选一多路器的功能。(4) modelsim 工程既然新建一个work库就可以仿真,为什么还需要

14、modelsim的工程呢?因为modelsim工程可以更好地组织文件和保存仿真配置信息。1,create a new project首先新建一个文件夹并把设计文件拷贝到该文件夹下:首先change directory到刚刚新建的工程文件夹t3 。具体步骤参考(3)基本仿真流程1,creating the work design library然后菜单栏依次点击file -new-project,出现如下图所示的对话框:Project name 我命名为mulProject location 自动指向了刚刚新建的工程文件夹t3.默认的库名称依然用work。最下面的modelsim.ini是初始化

15、配置文件,这里不用深究。然后点击ok;工程文件夹下出现了变化:后缀为.mpf就是modelsim project file 。以后可以双击该文件直接打开modelsim并进入该工程。2,add objects to the project同时软件界面出现了对话框,因为我们已经有写好的.v文件了,所以选择adding existing file然后把mul.v和tb.v添加进去。随后软件界面恩恩工程面板出现了刚才添加的文件:后面的问号代表他们还没有通过编译。3,compile the design选择compile all,也可以分别选中每个文件单独编译。如果找不到快捷图标就到菜单栏的compi

16、le中去找。编译成功之后问号会变绿色的对号,如果没通过编译会显示红色的X号。编译成功的文件会包含到work库中。4,optimize for design visibility把下面的命令输入transcript窗口:vopt +acc tb -o tb_opt然后点击enter。5,load the design在transcript窗口输入命令 vsim tb_opt,点击enter开始执行。(5) 使用多个库进行仿真1, 建立实验环境新建一个叫做resource_library的文件夹,把前面写好的mul.v文件复制进来。在不同的路径下新建一个叫做testbench的文件夹,把前面写好的

17、tb.v文件复制进来。打开modelsim,按照前面介绍的建立库的方式建立一个叫做part_lib的库,并把mul.v编译到库中。注意编译的时候默认的库是work,要改选成刚刚建立的part_lib.2,新建工程按照前面介绍过的方式新建工程,我们要建立一个只包含测试文件的工程。注意两点:1, 在新建工程之前change derectory到包含测试文件的文件夹下。2, 下图中的copy library mapping要选中。然后把tb.v加入工程中并编译。3, 关联其他库(1)按照以前介绍过的方法:vopt +acc tb -o tb_opt结果报了一个错误:这个错误是说没有找到mul.v文件

18、。按照上一节的方法把mul.v文件加入工程,然后编译到work库中当然可以解决问题。但是在mul.v已经被编译到part_lib库的情况下,我们有另外一种办法。在transcript窗口中输入下面的命令即可退出仿真:quit -sim(2)关联part_lib库: 1, 选中simulate图标出现如下图所示的窗口:在design标签下不勾选左下角的enable optimization.然后在library标签下点击search library窗口右侧的add图标。在出现的对话框中点击browse。然后从中选中part_lib的路径。点击ok。这样库的关联就完成了。回到design标签下发现

19、design unit是空的。只需点击work库中的tb.v。design unit就出现了,右下角的ok按钮也解除了禁用状态。点击这个OK仿真就开始了。3 quartus II 和modelsim 的联合使用(1)ip核的使用在集成电路的可重用设计方法学中,IP核,全称知识产权核(英语:intellectual property core),是指某一方提供的、形式为逻辑单元、芯片设计的可重用模块。Quartus II 提供了功能丰富的免费ip核。把常用通用的功能封装成IP核,开发过程中直接调用IP核非常方便。我们将调用一个rom的ip核。1,首先在quartus II中建立一个叫做rom的工

20、程。2,然后建立一个memeory文件,她是rom的初始化文件,记录的是rom的每个位置存储的值,我们通过编辑这个文件可以更改rom初始化的值。A,新建文件,选择memeory initialization file.点击ok之后出现下图所示对话框,这里可以选择rom的大小和深度。点击ok之后出现了文件,它的样子非常形象:点击代表存储位置的方格即可编辑它存储的值。编辑完成之后点击保存。.mif文件出现在了工程中:3 ,调用IP核产生rom模块。菜单栏依次点击tool -megawizard plug_in manager出现如下图所示的对话框,使用ROM的IP核并不是这一章节的重点,所以不做详

21、细介绍。就按照图片一步步勾选一直点next就可以了。 上图中在左侧选择了我们要生成的ip核:一个端口的rom右侧给这个模块命名为ROM上图给rom指定了初始化文件。 点击finish之后如果出现了这个对话框就点yes 。之后我们看到rom.v文件出现在了工程中,现在只需要能看懂它的端口就够了。这个rom模块内部实现rom功能的代码被隐藏了。4, 写测试文件(2)从quartus II调用modelsim进行仿真因为上一节准备的工程中调用了IP核,它的功能代码被隐藏起来,我们无法把它的代码文件拷贝出来加入modelsim工程中,通过从quartus II中调用modelsim的方法可以避开这个问

22、题。1,基本设置A,在上一节的基础上,点击:tool-option在左侧选择EDA TOOL OPTIONS,然后在modelsim那一栏填入调用modelsim的地址。这个地址可以通过右击modelsim桌面图标,然后选择属性看到。注意不要填入末尾的modelsim.exe。B,菜单栏选择assignments-setting,然后在出现的对话框中选择EDA TOOL SETTING 下面的simulation:在右侧nativelink settings下激活comlile test bench,然后点击Test Benches按钮:点击new按钮:填入test bench的名字:rom_

23、tb.点击file name右侧三个省略号一样的按钮:来到工程目录下选中写好的testbench文件,点击OPEN按钮:点击ADD按钮:然后点击OK:继续点击OK:点击APPLY ,OK.2,仿真编译通过之后点击RTL simulation图标(在tool-simulation菜单下也可以找到)随即就会调用MODELSIM进行仿真。要注意在这之前modelsim要处于关闭状态。这个过程比较慢但是最终我们得到了仿真波形:从波形来看,rom的功能正常,而且初始化成功。Modelsim 有一个版本是modelsim-altera,quartus调用它会快一些。(3)modelsim 直接仿真quar

24、tus II的IP核。第二节的仿真方式显然不够灵活。如果看过前面章节的介绍,已经可以猜到我们将通过关联IP核的库到work库的方法实现仿真。这个方法网络上教程非常多,大体思路都是把220model.v、altera_mf.v、altera_primitives.v、cycloneii_atoms.v这几个库文件编译之后关联work库。也可以把它们编译成modelsim的系统库。具体方法在下面的网址里:可能是由于版本问题,我把这几个库关联之后依然得不到想要的波形。下面介绍一种方式,就是通过quartus调用modelsim的方法获得编译库的信息,然后就知道需要哪些库了。在上一节quartus 调

25、用modelsim完成仿真之后,把transprint窗口的内容复制下来内容如下:1,脚本记录文件# Reading D:/Program Files/modeltech_10.1a/tcl/vsim/pref.tcl # / ModelSim SE 10.1a Feb 22 2012 # /# / Copyright 1991-2012 Mentor Graphics Corporation# / All Rights Reserved.# /# / THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION# / WHICH IS

26、 THE PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS# / LICENSORS AND IS SUBJECT TO LICENSE TERMS.# /# do rom_run_msim_rtl_verilog.do # if !file isdirectory verilog_libs # file mkdir verilog_libs# # # vlib verilog_libs/altera_ver# * Warning: (vlib-34) Library already exists at verilog_libs/altera_ver

27、.# # vmap altera_ver ./verilog_libs/altera_ver# Copying D:Program Filesmodeltech_10.1awin32/./modelsim.ini to modelsim.ini# Modifying modelsim.ini# * Warning: Copied D:Program Filesmodeltech_10.1awin32/./modelsim.ini to modelsim.ini.# Updated modelsim.ini.# vlog -vlog01compat -work altera_ver d:/alt

28、era/11.1/quartus/eda/sim_lib/altera_primitives.v# Model Technology ModelSim SE vlog 10.1a Compiler 2012.02 Feb 22 2012# - Compiling module global# - Compiling module carry# - Compiling module cascade# - Compiling module carry_sum# - Compiling module exp# - Compiling module soft# - Compiling module o

29、pndrn# - Compiling module row_global# - Compiling module TRI# - Compiling module lut_input# - Compiling module lut_output# - Compiling module latch# - Compiling module dlatch# - Compiling module prim_gdff# - Compiling module dff# - Compiling module dffe# - Compiling module dffea# - Compiling module

30、dffeas# - Compiling module prim_gtff# - Compiling module tff# - Compiling module tffe# - Compiling module prim_gjkff# - Compiling module jkff# - Compiling module jkffe# - Compiling module prim_gsrff# - Compiling module srff# - Compiling module srffe# - Compiling module clklock# - Compiling module alt_inbuf# - Compiling module alt_outbuf# - Compiling module alt_outbuf_tri# - Compiling module alt_iobuf# - Compiling m

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1