《FPGA开发工具使用.ppt》由会员分享,可在线阅读,更多相关《FPGA开发工具使用.ppt(61页珍藏版)》请在三一办公上搜索。
1、FPGA开发工具分类:全球提供FPGA开发工具的厂商有近百家之多,大体分为两类:一类是专业软件公司研制的FPGA开发工具,独立于半导体器件厂商;另一类是半导体器件厂商为了开发本公司产品研制的FPGA开发工具,只能用来开发本公司的产品。本章介绍的FPGA开发工具:本章介绍的FPGA开发工具是QuartusII,该工具属于专用FPGA开发工具,QuartusII是Altera公司研制的FPGA开发工具。QuartusII的版本:从使用者看来各版本的主要功能基本相同,只是有些操作界面有所不同。本章将以QuartusII8.0为例,介绍QuartusII8.0基本使用方法。QuartusII8.0提供
2、的功能很多,读者可参考其他书籍或QuartusII8.0用户手册,学习更多的内容。,4.1 QuartusII 概述 4.2 QuartusII 使用 4.3 原理图文件输入 4.4 参数化模块库使用 4.5 层次化设计流程 4.6 嵌入式逻辑分析仪使用,第4章 FPGA开发工具使用,QuartusII支持哪些FPGA的开发:Altera公司的各种系列的可编程逻辑器件开发,包括:ACEX系列、APEX系列、ARM-based Excalibur系列、Cyclone系列、FLEX系列、HardCopy Stratix系列、MAX系列、Mercury系列和Stratix系列等。QuartusII是
3、否有第三方工具的无缝连接:QuartusII提供了与第三方开发工具的无缝连接,支持Cadence、Mentor、Synopsys等专业软件公司的综合工具和校验工具,能读入和生成标准的EDIF、VHDL及Verilog HDL网表文件。QuartusII使用的硬件环境:无论使用个人电脑、NUIX或Linux工作站,QuartusII都提供了方便的实体设计、快速的编译处理以及编程功能。,4.1 QuartusII概述,QuartusII管理器窗口:运行QuartusII,可以看到QuartusII的管理器窗口,如图所示。管理器窗口主要包含:项目导航窗口、任务窗口、消息窗口,可以通过ViewUtil
4、ity Windows菜单下的选项添加或隐藏这些窗口。,项目导航窗口,任务窗口,消息窗口,设置license.dat文件:为了保证QuartusII的正常运行,第一次运行软件,需要设置license.dat文件,否则工具的许多功能将被禁用。在QuartusII管理器窗口选择ToolsLicense Setup,点击License file的“.”按钮,在出现的对话框中选择License.dat文件或直接输入具有完整路径的文件名,如图所示。,4.2 QuartusII使用,使用QuartusII开发工具的主要步骤:进行FPGA器件的开发和应用,其步骤主要有设计输入、设计处理、波形仿真和器件编程等
5、。在设计的任何阶段出现错误,都需要进行修改,纠正错误,重复上述过程,直至每个阶段都正确为止。使用QuartusII开发工具的举例:下面将以一个6位二进制计数器myexam1.vhd的设计为例,介绍QuartusII的使用流程,介绍如何经过设计各个阶段,最终将myexam1.vhd设计下载到FPGA芯片,使一片空白的FPGA裸片变为一片6位二进制计数器芯片的完整过程。,设计输入,设计处理,波形仿真,器件编程,FPGA裸片,6位二进制计数器,建立文件夹:QuartusII 编辑器的工作对象是项目,项目用来管理所有设计文件以及编辑设计文件过程中产生的中间文档,建议读者在开始设计之前先建立一个文件夹,
6、方便项目的管理。设计文件的种类:在一个项目下,可以有多个设计文件,这些设计文件的格式可以是原理图文件、文本文件(如AHDL、VHDL、Verilog HDL等文件)、符号文件、底层输入文件;第三方EDA工具提供的多种文件格式,如EDIF、HDL、VQM等。以文本文件为例:学习设计输入过程中的主要操作。,4.2.1 设计输入,1.建立设计项目,项目路径,项目名称,顶层实体名,(1)在管理器窗口中选择菜单File/New Project Wizard.,出现新建项目向导New Project Wizard对话框的第一页,输入项目路径、项目名称和顶层实体名,如myexam。,(2)新建项目向导第二页
7、,点击按钮“.”可浏览文件选项,添加或删除与该项目有关的文件。初学者还没有建立文件,可以先跳过该页。,(3)新建项目向导第三页,根据器件的封装形式、引脚数目和速度级别,选择目标器件。读者可以根据具备的实验条件进行选择,这里选择的芯片是Cyclone系列中EP1C6Q240C8芯片。,当前项目,(4)新建项目向导第四页,添加第三方EDA综合、仿真、定时等分析工具,系统默认选择QuartusII的分析工具,对开发工具不熟悉的读者,建议采用系统默认选项。(5)新建项目向导对话框的最后一页,给出前面输入内容的总览。点击Finish按钮,myexam项目出现在项目导航窗口,myexam表示顶层实体文件,
8、如图所示。在任务窗口出现设计项目过程中的全部操作,执行操作命令的方法可以在菜单栏下选择命令、点击工具栏中对应的工具按钮或者在任务窗口双击命令。,任务窗口,2.输入文本文件使用文本编辑器模板:QuartusII支持AHDL、VHDL、及Verilog HDL等硬件描述语言描述的文本文件,关于如何用VHDL描述硬件电路请参考第5章和第6章。这里将结合实例说明如何使用文本编辑器模板输入VHDL文本文件。新建VHDL文本文件:在QuartusII管理器界面中选择菜单FileNew.,或单击新建文件按钮,出现New对话框,如图所示。在对话框Design Files中选择VHDL File,点击ok按钮,
9、打开文本编辑器。在文本编辑器窗口下,按照VHDL语言规则输入设计文件,并将其保存,VHDL文件的扩展名为.vhd。,文件扩展名:QuartusII支持多种硬件描述语言,不同的硬件描述语言编写的文件扩展名不同,如AHDL文件扩展名为.tdf,Verilog HDL文件扩展名为.v,VHDL文件的扩展名为.vhd。QuatusII提供的文本文件编辑模板:使用模板可快速准确地创建VHDL文本文件,避免语法错误,提高编辑效率。例如:用VHDL模板设计一个6位二进制计数器的VHDL文本文件。(1)选择菜单EditInsert Template,打开Insert Template对话框,点击右侧Langu
10、ageTemplate栏目打开VHDL,VHDL栏目下显示出所有VHDL的程序模板,如图所示。,(1)打开模板:选择菜单EditInsert Template,打开Insert Template对话框,点击右侧LanguageTemplate栏目打开VHDL,VHDL栏目下显示出所有VHDL的程序模板。(2)选择模板:在VHDL模板中选择Full DesignArithmeticCoutersBinary Counter,Insert Template对话框的右侧会出现计数器模板程序的预览。这是一个带清零和使能端的计数器模板。点击Insert,模板程序出现在文本编辑器中,其中兰色的字母是关键字
11、,绿色部分为注释语句。(3)修改模板:根据设计要求,对模板中的文件名、信号名、变量名等黑色文字内容进行修改。将实体名binary_counter修改为myexam1;将程序中变量表示改为常数形式;删掉enable输入信号等。,修改后的VHDL代码如下:-Quartus II VHDL Template-Binary Counterlibrary ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity myexam1 is-实体名为myexam1port(clk:in std_logic;-时钟信号clk定义reset:i
12、n std_logic;-复位信号reset定义q:out integer range 0 to 63);-输出信号q定义end entity;architecture rtl of myexam1 isbeginprocess(clk)variable cnt:integer range 0 to 63;beginif(rising_edge(clk)then-时钟clk上升沿if reset=1 then-复位reset为高电平cnt:=0;-计数器复位elsecnt:=cnt+1;-计数器工作end if;end if;q=cnt;-输出当前的计数值end process;end rtl
13、;,myexam1.vhd输入完成!,3.添加或删除与当前项目有关的文件添加文件:如果希望将存放在别处的文件加入到当前的设计项目中,选择菜单AssignmentsSettings,打开如图所示的Settings对话框。在Settings对话框左侧的Cagegory栏目下选择Files项,通过右边File Name栏的“”按钮查找文件选项,点击Add按钮添加文件。Add All按钮的作用是将当前目录下的所有文件添加到项目中。删除文件:如果希望将当前项目中的文件从项目中删除,首先选中待删除文件,Remove按钮则被激活,点击Remove按钮即可。其它功能设置:在Settings对话框下,除了可以进
14、行设计项目的文件设置外,还可以进行与设计有关的各种其它功能设置,如:库Libraries、器件Device、EDA工具EDA Tool、编译Compilation、分析与综合Analysis&Synthesis、定时分析Time Analysis、仿真Simulator、配置 Fitting等设置。,4.指定目标器件指定器件:如果在建立项目时,没有指定目标器件,可以在Settings对话框Cagegory栏目下选择Device项,出现如图所示界面,指定设计项目使用的目标器件。选择系列:在Family下拉列表中选择器件系列;选择封装等:在Show in Available devices lis
15、t中选择封装形式、引脚数和速度级别;选择目标器件:在Available devices中选择目标器件;引脚选项等:点击Device&Pin Options按钮,出现器件和引脚选项对话框,根据设计需要进行配置、编程文件、不用引脚、双用途引脚以及引脚电压等选项的详细设置。,4.2.2 设计处理,设计处理的功能:QuartusII设计处理的功能包括设计错误检查、逻辑综合、器件配置以及产生下载编程文件等,也称作编译Compilation。编译后生成的编程文件可以用QuartusII编程器或其它工业标准的编程器对器件进行编程或配置。如何执行设计处理:编辑设计文件后,可以直接执行编译Compilation
16、操作,对设计进行全面的设计处理。也可以分步骤执行,首先进行分析和综合处理Analysis&Synthesis,检查设计文件有无错误,基本分析正确后,再进行项目的完整编译Compilation。,1.设置编译器初学者可以跳过:初学者选择系统默认的设置,可以跳过编译器设置。如果需要设置:选择菜单AssignmentsSettings,在Settings对话框Category栏目下选择Compilation Process Settings项,可以设置与编译相关的内容。,2.执行编译编译说明:如果一个项目中有多个文件,只要对其中一个文件进行编译处理,需要将该文件设置成顶层文件。设置顶层文件:首先打开
17、准备编译的文件,例如,打开前面编辑的文件myexam1.vhd,执行菜单命令Project/Set as Top-Level Entity,即可。执行编译:选择菜单ProcessingStart Compilation或直接点击工具栏中编译按钮,开始执行编译操作,对设计文件全面检查。编译结束后,出现如图所示的界面并给出编译后信息。,3.锁定引脚什么是锁定引脚:将设计文件的输入输出信号分配到器件指定引脚,这是设计文件下载到FPGA芯片必须完成的过程。需要注意:在锁定引脚完成之后,必须再次进行编译。如何锁定引脚:选择菜单AssignmentsPins,出现Assignment Editor对话框如
18、图所示。由于设计项目已经进行过编译,因此在节点列表区会自动列出所有信号的名称,在需要锁定的节点名处,双击引脚锁定区Location,在列出的引脚号中进行选择。例如,选择clk节点信号,锁定在28号引脚上。重复此过程,逐个进行引脚锁定,所有引脚锁定完成后,再次编译,执行前面2操作。,myexam1.vhd引脚锁定成功!,4.定时分析报告编译正确后,在编译报告栏选择Timing Analyses可查看详细定时分析信息。定时分析报告主要内容:整个系统的最高时钟频率Fmax、建立时间Tsu、保持时间Th、时钟到输出时间Tco等。,会看定时分析报告!,4.2.3 波形仿真,何为波形仿真:是在波形编辑器中
19、将设计的逻辑功能用波形图的形式显示,通过查看波形图,检查设计的逻辑功能是否符合设计要求。波形仿真的目的:设计文件描述的逻辑功能是否能实现预期的目标,需要通过波形仿真进一步检验。波形仿真分析是验证逻辑功能正确性必不可少的环节。波形仿真的步骤:新建波形文件、设置波形仿真器、插入仿真节点、编辑输入波形、运行仿真器、检查输出波形是否符合设计要求。,1.新建波形文件选择菜单FileNew.,在New对话框中选择VerficationDebugging FilesVector Waveform File,在出现的波形编辑窗口,显示一个空的波形文件,将文件保存为myexam1.vwf,该文件与先前编辑的文件
20、myexam1.vhd同名,只是后缀不同。,2.设置仿真器仿真器设置:鼠标右键单击项目名选择Settings或直接选择菜单命令AssignmentsSettings,在Settings对话框的Category栏目下选择Simulator Settings项,在右侧出现的对话框中设置仿真器。可以进行仿真模式、仿真文件、仿真周期等设置。仿真模式设置:有时序仿真Timing、功能仿真Functional和快速仿真Timing Using Fast Timing Model等三种仿真模式。时序仿真又称后仿真,是考虑器件各种延时情况下进行的仿真。功能仿真又称前仿真,功能仿真不考虑器件延时,理想情况下的逻
21、辑验证。一般选择时序仿真。仿真文件设置:在仿真器设置窗口的仿真输入选项Simulator input栏目下,可以看到仿真文件myexam1.vwf。如果没有,查找该文件,将myexam1.vwf列在Simulator input栏目下。,3.插入仿真节点在波形编辑窗口的Name栏目下,点击鼠标右键,选择InsertInsert Node or Bus.,出现Insert Node or Bus对话框如图所示,点击Node Finder按钮,查找节点信息,插入节点。,插入节点的过程:如图所示。首先选择合理的筛选Filter范围,这里给定的是Pins:all,单击List,列出所选节点信号;接着在
22、Nodes Found栏目下,选择波形仿真需要观察的节点信号;然后单击送入选中按钮,在Selected Nodes栏目下,就会列出选中节点。全部节点选择完成后,按ok确认,所有选中的节点信号就会出现在波形仿真的窗口中。,4.编辑输入波形编辑最大仿真时间:选择菜单EditEnd Time.,根据需要修改最大仿真时间,如2s。编辑网格时间:选择菜单EditGrid Size.,根据需要修改网格大小,如50ns,通常用网格大小表示信号状态的基本维持时间。编辑输入激励信号的波形:先选中一个输入节点,如选中时钟信号clk,然后单击左侧赋值快捷键中的时钟键,实现clk信号的时钟输入。也可以拖动鼠标,选定信
23、号的某个时间段进行赋值,对reset的赋值就是采用这种方式。输入信号编辑完成后,保存该文件。根据设计文件myexam1.vhd编辑:计数器功能需要编辑两个激励信号clk和reset,clk加入时钟信号;reset设置为开始阶段高电平,使计数器清零,接着为低电平,使计数器工作。,5.运行仿真器运行仿真器:选择菜单ProcessingStart Simulation或点击仿真快捷按钮运行仿真器,仿真波形窗口将给出对应输入波形的输出波形,最下方的信息窗口显示仿真操作的相关信息。如果仿真波形与逻辑设计不符:检查设计文件myexam1.vhd对计数器的功能描述是否正确,如果修改设计文件myexam1.v
24、hd,需要重新编译,再次进行波形仿真,直至达到设计要求。myexam1.vhd文件的仿真波形如图所示:从仿真波形可以看出,这是一个带有高有效复位端reset、上升沿触发的6位二进制加法计数器,与myexam1.vhd文件描述的逻辑功能一致。,myexam1.vhd仿真成功!,4.2.4 器件编程,何为器件编程:编译和波形仿真正确后,QuartusII将生成编程数据文件,如.pof和.sof等编程数据文件,通过下载电缆将编程文件下载到预先选择的FPGA芯片中。下载成功后,该FPGA芯片就会执行设计文件描述的功能。器件编程步骤:编程硬件连接、编程文件的产生、运行编程操作。器件编程操作成功后,查看F
25、PGA功能与设计文件描述的功能是否一致。,1.编程硬件连接下载电缆的连接:在进行编程操作之前,首先将下载电缆的一端与PC机对应的端口进行相连,下载电缆的另一端与编程器件相连,下载电缆连接好后才能进行编程器的操作。与PC机的哪个端口连接:编程电缆不同,与PC机连接的端口就不同。使用MasterBlaster下载电缆编程,将MasterBlaster电缆连接到PC机的RS-232串口。使用ByteBlasterMV下载电缆,将ByteBlasterMV电缆连接到PC机的并口。使用USB Blaster下载电缆,将USB Blaster电缆连接到PC机的USB口。,2.编程操作选择菜单ToolsPr
26、ogrammer或点击工具栏中编程快捷按钮,打开编程窗口如图所示。读者需要根据自己的实验设备情况,进行器件编程的设置。,作者根据自己的实验设备,进行设置的情况如下:(1)下载电缆Hardware Setup设置:USB Blaster。(2)配置模式Mode设置:JTAG模式。(3)配置文件:自动给出当前项目的配置文件myexam1.sof。如果需要自己添加配置文件,则单击Add File添加配置文件。(4)执行编程操作:单击编程按钮Start,开始对器件进行编程。编程过程中进度表显示下载进程,信息窗口显示下载过程中的警告和错误信息。(5)实际检验:器件编程结束后,在实验设备上实际查看FPGA
27、芯片作为计数器的工作情况,可以加入1kHz的时钟信号,用示波器观察各输出引脚波形。或者给计数器加入频率为1Hz的时钟信号,输出引脚连接发光二极管,观察输出数据的变化。如果计数器输出工作正常,说明读者已经基本学会了FPGA的开发流程以及QuartusII的使用。,myexam1.vhd配置成功!,3.其它编程文件的产生QuartusII在编译过程中会自动产生编程文件,如.pof和.sof文件。但对于其它格式的文件,如二进制格式的.rbf配置数据文件,需要专门进行设置才能产生。产生.rbf文件过程如下:选择菜单FileConvertProgramm Files,出现对话框。首先,在对话框的Outp
28、ut Promramming file列表中选择Raw Binary(.rbf)。然后,点击Input files to convert栏中的SOF Data,此时Add File按钮被激活,点击Add File按钮,添加输入数据文件myexam1.sof,点击OK即可产生.rbf文件。查找设计项目目录,可以找到myexam1.rbf文件。,添加.sof文件,4.3 原理图文件输入,原理图文件:原理图是设计人员最为熟悉的电路描述方法,QuartusII提供了图形编辑器,通过图形编辑器可以编辑图形和图表模块,画出熟悉的原理图,产生原理图文件(.bdf)。原理图文件处理:原理图文件产生后,仍然需要
29、进行设计处理、波形仿真、器件编程,这些操作与前面介绍的过程基本相同,这里不再重复介绍。符号库:为简化原理图的设计过程,QuartusII建立了常用的符号库,在库中提供了各种逻辑功能的符号,包括宏功能(Macrofunction)符号和图元(Primitive)等,供设计人员直接调用。编辑原理图文件的步骤:建立原理图文件、输入符号、连接符号等。,1.建立原理图文件选择菜单FileNew,在出现的对话框中选择Design FilesBlock DiagramSchematic File,则打开图形编辑器,出现空白的原理图文件,如图所示。选择菜单FileSave as,输入文件名,保存该文件。,2.
30、使用模块符号库图形编辑器的左侧是输入按钮,最常用的是模块符号按钮,单击模块符号按钮,打开symbol对话框,如图所示。在对话框下,可以选择各种逻辑电路符号,方便绘制原理图时使用。QuartusII已经预先存放了设计中常用的电路模块符号,在进行原理图设计输入时可以随时调用。QuartusII在安装目录c:Altera/80/quartus/libraries/下,设有三个子目录分别存放了三个库。,(1)megafunctions(宏功能模块)宏功能模块是参数化的模块,模块的各个参数由设计者为满足设计要求自行定制,只要修改模块参数,就可以得到满足需要的特定模块。宏功能模块设有:算术运算模块arit
31、hmetic、门单元模块gates、I/O模块IO和存储器模块storage。(2)others(其它模块)这是一个与maxplux2兼容的模块库,包含74系列的器件符号和各种组合电路模块符号,在模块编辑器中可以查看符号内部的电路结构。例如,输入二选一数据选择器符号21mux,在模块编辑器中双击该符号,就会出现21mux的内部电路结构和说明。(3)primitves(图元)图元主要包括以下几种功能模块:buffer(缓冲器)、logic(基本逻辑符号)、pin(引脚符号)、storage(触发器)和other(其它功能模块)。其中最重要的就是pin目录下的输入引脚input和输出引脚outpu
32、t,这两个引脚是任何原理图文件都要用到的引脚符号。(4)自己创建模块符号设计过程中,创建符号是经常用到的功能之一。读者可以为设计项目创建专门为自己使用的模块符号,方便在原理图编辑中多次调用。,自己创建模块符号步骤:首先打开已编译成功的文件,例如打开文件myexam1.vhd。然后选择菜单FileCreate UpdateCreate Symbol Files for current File,即可完成当前文件myexam1.vhd符号的创建。查看自己创建的模块符号:打开Symbol对话框,可以看到Libraries栏目的Project文件夹中包含了用户创建的模块符号myexam1,如图所示。调
33、用自己创建的模块符号:与调用其他模块符号的方法一样。,3.模块符号输入输入符号的过程都是一样的,这里以输入自己创建的模块符号myexam1为例,其过程如下:(1)在图形编辑器窗口下,选择菜单EditInsert Symbol或点击工具栏中模块符号图标,也可以直接在编辑器空白处双击鼠标左键,出现Symbol对话框。(2)在Symbol对话框的Project中,可以看到自己创建好的模块符号myexam1,在Symbol对话框右侧出现该符号。如果扩展quartuslibraries中的文件夹,可以选择QuartusII提供的各类模块符号。也可以直接在Name栏中输入关键字,选择符号。(3)点击OK按
34、钮,在图形编辑器中点击鼠标左键,插入模块符号myexam1。(4)重复以上三步,可输入其它逻辑符号。右键选中符号,拖动鼠标,可复制并连续输入符号。删除符号时,选中符号,按键盘Delete键即可。Symbol对话框左下角的三个复选框表示输入符号的不同方式:连续输入符号(Repeat-insert Mode)、以图表模块形式输入符号(Insert Symbol As Block)、打开宏模块导航MegaWizard Plug-In Manager(Launch MegaWizard Plug-In)。,4.引脚输入注意:原理图的输入输出必须连接相应的引脚,并对引脚进行命名才能使用。引脚输入:扩展S
35、ymbol符号库quartuslibraries中的文件夹PrimitivesPin。选择引脚类型:bidir(双向引脚)、input(输入引脚)、output(输入引脚)。引脚命名步骤:鼠标右键单击引脚符号,打开Properties属性对话框,在General栏的Pin name(s)中填写自定义的引脚名称。或者用鼠标指向引脚符号的pin_name,双击鼠标,键入引脚名称,按回车键,自动指向下一个引脚的pin_name 处,继续对下一个引脚命名。例如:myexam1需要连接的引脚类型有两个input 和一个output。,5.符号连接符号连接工具:在QuartusII的模块编辑器中用“智能”
36、连接工具(节点、总线和管道工具)连接模块和符号。管道用于连接图表模块,代表进出模块的一个或多个I/O端口信号的总线组。符号连接方法:鼠标位于符号的引脚边沿处,鼠标箭头指针自动变成十字形画线指针,按住左键托动鼠标至连接结束点放开,形成符号之间的连接。如果连接线名称一致,如q5.0,可以不用连线,逻辑上这两处连接线是连接在一起的,如图所示。连接命名方法:右键单击该连接线,选择Properties,在Node Properties对话框General中输入连线名q5.0,点击确定按钮。修改连接方式:右键单击该连接线,有节点node line、总线bus line或管道conduit line三种方式
37、。例如:图所示的q5.0选择的是总线bus line方式。,myexam1.vhd模块调用成功!,6.原理图文件编辑保存原理图文件,执行菜单命令project/set as top-level entity,将当前编辑的文件设为顶层实体文件,就可以对其进行编译、仿真和其它操作。编译和波形仿真操作与前一节介绍的过程完全一致。,会用原理图编辑器啦!,4.4 参数化模块化库的使用,参数化模块库有什么:参数化模块库LPM(Library of Parameterized Modules)中包含许多已经设计好的功能模块,设计者根据需要调用这些模块。参数化模块库优势:设计者根据需要定义或修改模块参数。通过
38、修改参数确定模块功能,以满足设计者不同场合的需要,大大提高设计效率。举例:下面以648ROM的设计为例,说明LPM的使用步骤。,1.ROM设计举例(1)在图形编辑窗口下,选择菜单EditInsert Symbol或点击工具栏中模块符号图标,在Symbol对话框中点击Symbol as block按钮。也可以选择菜单ToolMegaWizard Plug-In Manager,在出现的MegaWizard Plug-In Manager第一页,如图所示,选中Create a new custom anager,点击Next按钮。图中对话框的三个选项内容如下:Create a new custom
39、 megafunction variation:创建新的宏功能函数;Edit an existing custom megafunction:编辑已有的宏功能函数;Copy an existing custom megafunction variation:复制已有的宏功能函数。,(2)第二页如图所示。对话框右侧分别显示用户使用的目标器件,待生成文件的类型,这里选择VHDL,输入文件目录和文件名myrom1.vhd。对话框左侧是可以直接生成宏功能模块的目录。这里选择Memory Compiler中ROM 1-PORT模块,点击Next按钮。,(3)第三页如图所示。系统ROM数据宽度默认8,存储
40、数据量默认64。根据设计要求将ROM数据宽度设为8、存储数据量设为64。,(4)第四页如图所示。选择地址和输出数据是否需要寄存,系统默认需要寄存,这里选择地址需要寄存,输出数据不寄存。当选择不寄存输出数据时,时钟信号clock就不会再连接至输出端。如果设计需要,还可以进行时钟使能端、寄存器的复位端设置。,(5)第五页如图所示。指明初始化ROM所使用的数据文件名myrom1.mif。,(6)第六页,给出648ROM设计产生的各类文件说明,点击Finish,完成ROM的设计。在图形编辑窗口下,出现myrom1的图形如图所示,可以向调用其它元器件一样方便连接使用。,2.建立ROM初始化文件初始化RO
41、M数据文件格式:有.mif(Memory Initialization File)格式和.HEX格式,这里使用的是.mif文件格式。初始化ROM数据文件编辑:可以用文本编辑器编辑ROM数据文件,也可以用QuartusII软件自带的工具编辑产生ROM数据文件。,(1)QuartusII软件产生ROM数据文件步骤:选择菜单FileNew,在New对话框中选择Memory Initialization File,打开.mif文件输入界面,直接输入存储器需要存储的数据,如图所示,这里输入的是一组正弦波数据,数据文件保存为myrom1.mif。右键点击地址编号框,在弹出的对话框中可以选择地址和存储数据的
42、基数,默认十进制数。注意:ROM文件和初始化数据文件应保存在同一个目录中。,(2)用文本编辑器编写ROM数据文件使用文本编辑器编辑ROM数据文件,文件格式如下:DEPTH=64;%用十进制数描述的ROM地址深度,地址位宽=5%WIDTH=8;%用十进制数描述的ROM数据宽度,数据位宽=8%ADDRESS_RADIX=UNS;%地址基数,可以是BIN、DEC、HEX、OCT或UNS格式%DATA_RADIX=UNS;%数据基数,可以是BIN、DEC、HEX、OCT或UNS格式%CONTENT BEGIN%在地址中指定内容%0.1:0;%地址0、1的数据均为0%14:1;%地址14数据为1%8:7
43、,6,5;%地址8数据为7,后面地址的数据依次为6、5%END;注意:ROM文件和初始化数据文件应保存在同一个目录中。,3.ROM文件的仿真验证将648ROM的文件作为顶层设计文件,连接输入引脚和输出引脚,形成完整的电路图。,编译仿真后得到波形图如图所示,可以看到ROM仿真结果与初始化数据文件中的内容一致。,会用参数化模块库啦!,4.5 层次化设计流程,何为层次化设计:复杂系统描述经常采用多层次的设计结构。多层次的设计结构指的是在一个设计项目中,顶层模块调用底层模块的结构方式。QuartusII支持层次化设计,设计者可以灵活进入每层设计文件的编辑窗口,对文件进行编辑。层次化设计方式:可以采用文
44、本文件也可以采用原理图文件进行层次化设计,用硬件描述语言描述的文本文件如何对底层同类型的文本文件进行调用,将在书中第5章介绍。本节主要介绍:原理图文件的层次化设计方法,在图形编辑器中创建顶层原理图设计文件(.bdf),采用原理图文件调用底层文件,底层设计文件可以是文本或原理图文件。由于每个层次中的设计文件可以是不同格式的设计文件,也称为混合设计法。,混合设计过程中应注意的问题:(1)同一设计项目中,顶层设计文件和底层设计文件名称不能重复;(2)顶层文件中调用的符号所代表的文件为底层设计文件;(3)顶层文件或符号文件不能自身递归调用;(4)顶层设计文件可以通过打包的方法降低为底层文件,供其它顶层
45、文件调用;(5)同一设计项目中的各个设计文件都可以重新编译、修改、保存或打包,打包后要及时在上层文件中更新并保存。层次化设计举例:将前面设计完成的计数器模块myexam1和ROM模块myrom1作为底层文件,在顶层实体文件中调用,进行层次化设计形成一个新的原理图文件myexam.bdf。设计步骤:打开项目myexam建立顶层文件、连接底层模块和符号、顶层文件的编译和仿真、显示层次化设计结构。,1.建立顶层文件myexam建立原理图文件myexam.bdf,设为顶层实体文件。在原理图中调入设计好的子模块:ROM模块myrom1和计数器模块myexam1。实现下述功能:随着时钟信号的加入,从低位地
46、址到高位地址依次变化,自动读取ROM中预先存储的数据。,2.连接底层模块和符号将计数器模块myexam1的输出与ROM模块myrom1的地址端相连,两个模块的时钟相连,连接输入和输出引脚,构成完整的顶层原理图文件myexam.bdf。,3.顶层文件的编译仿真对原理图文件myexam.bdf进行编译,成功后,建立波形文件myexam.vwf,进行波形仿真,仿真后得到波形图如图所示。从图中可以看到该文件实现了在时钟信号clk的控制下,自动按顺序依次读取ROM中预先存储的数据输出qout,且带有复位信号控制端reset。,模拟信号显示方式选择:QuartusII支持模拟波形的显示方式,这里希望输出信
47、号qout以模拟信号的方式显示,选中输出信号qout,单击鼠标右键,在出现的菜单项中选择Display Format/Analog Waveform,屏幕出现编辑输入向量文件的对话框,如图所示。,模拟信号显示操作:选择模拟信号后再次仿真,在myexam.vwf窗口下,选中输出信号qout,单击鼠标右键,在出现的菜单项中选择Display Format/Analog Waveform,屏幕出现输出信号qout模拟显示方式的波形图,如图所示。层次化设计举例结论:图中可以看出,myexam.bdf电路实现的功能是带有高有效复位信号的正弦波信号发生器。如果将myexam.bdf数据输出与8位数模转换器DAC相连,就可产生正弦波信号输出。如果修改ROM的数据文件myrom1.mif,就可以获得所需要的其它输出波形。,4.层次显示对顶层原理图文件进行编译成功后,在QuartusII的项目导航窗口Project Navigation下,显示出整个项目中各模块之间的设计层次,如图所示。项目myexam顶层电路调用两个底层模块,层次树中的每个文件都可以通过双击文件名打开,并送到前台显示。选择菜单ProjectSet as Top-Level Entity命令可以将当前打开的文件设置为顶层设计文件,对其进行修改并重新编译。,学习层次化设计很有用呀!,