12010.12QuartusⅡ是Altera公司在21世纪初推出的CPLD/FPGA集成开发环境,它是该公司前一代CPLD/FPGA集成开发环境MAX+PUSⅡ的更新换代产品。QuartusⅡ提供了一种与结构无关的设计环境,其界面友好,使设计者能方便地进行设计输入、快速处理和器件编程。QuartusⅡ提供了完整的多平台设计环境,能满足各种特定设计的需要。QuartusⅡ是单片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具;QuartusⅡ与Matlab和DSPBuilder结合,可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。QuartusⅡ可以直接利用第三方的综合工具,如LeonardoSpectrum,并能直接调用这些工具。QuartusⅡ具备仿真功能,同时也支持第三方的仿真工具,如ModelSim。QuartusⅡ包括模块化的编译器。QuartusⅡ在对设计进行处理时可以进行全编译,也可以单独运行其中的某个功能模块。QuartusⅡ还包含许多十分有用的LPM模块,它们是复杂或高级系统构建的重要组成部分。QuartusⅡ软件加强了网络功能,它具有最新的Internet技术,设计人员可以直接通过Internet获得Altera的技术支持。Altera与业界处于领先地位的EDA工具厂商组成ACCESS联盟,确保了AlteraEDA工具与这些支持Altera器件的EDA工具之间顺畅接口。Altera致力于提供电路设计人员都非常熟悉的逻辑开发环境。Altera的新一代开发软件QuartusⅡ支持器件种类众多,如APEX20K、Cyclone、APEXⅡ、Excalibur、Mercury以及Stratix等新器件系列。QuartusⅡ支持多时钟定时分析、LogicLock基于块的设计、SOPC、内嵌SignalTapⅡ逻辑分析仪、功率估计器等高级工具。QuartusⅡ包含有MAX+PLUSⅡ的GUI,且易于MAX+PLUSⅡ的工程平稳地过渡到QuartusⅡ开发环境。6•第一讲电子系统设计初步可编程器件设计与QuartusII使用可编程器件设计流程建立工程编写设计文件指定设计约束文本输入图形输入模块输入器件选择管脚分配编译分析综合适配仿真建立波形文件输入仿真节点输入激励信号编程配置PS模式JTAG模式AS模式7•第一讲电子系统设计初步可编程器件设计与QuartusII使用流程QuartusII软件使用8工程建立910这个界面是让你指定在这个项目中,你将使用哪款芯片。在这个例子中我们选择ACEX1K系列的芯片,所以在Family一栏中选择ACEX1K,在下面我们选择EP1K10TC100-3的芯片。111213下面介绍如何建立一个文本(HDL)设计文件:141516编辑文本文件•对文本文件进行编辑时,文本编辑器窗口的标题名称后面将出现一个星号(*),表明正在对当前文本进行编辑操作,存盘后星号消失。•在文本编辑中,我们可以直接利用QuartusⅡ软件提供的模板进行语法结构的输入,方法如下:•(1)将鼠标指针放在要插入模板的文本行。•(2)在当前位置右击,在快捷菜单中选择InsertTemplate命令,或单击图中的“插入模板”快捷按钮,则弹出如下图所示的插入模板对话框。•QuartusⅡ软件会根据所建立的文本类型(AHDL、VHDL或VerilogHDL),在插入模板对话框中自动选择对应的语言模板。•(3)在下图所示的插入模板对话框的TemplateSection选项组中选择要插入的语法结构,单击OK按钮确定。•(4)编辑插入的文本结构。17插入模版界面18建立图形设计文件建立图形设计文件19•QuartusⅡ图形编辑器也称为块编辑器(BlockEditor),用于以原理图(Schematics)和结构图(BlockDiagrams)的形式输入和编辑图形设计信息。QuartusⅡ的图形编辑器可以读取并编辑结构设计文件(BlockDesignFiles)和MAX+PLUSⅡ图形设计文件(GraphicDesignFiles)。可以在QuartusⅡ软件中打开图形设计文件并将其另存为结构图设计文件。在这里,用图形编辑器替代了MAX+PLUSⅡ软件中的图形编辑器。20•QuartusⅡ软件为实现不同的逻辑功能提供了大量的基本单元符号和宏功能模块,设计者可以在原理图编辑器中直接调用,如基本逻辑单元、中规模器件以及参数化模块LPM等。可按照下面的方法调入单元符号到图形编辑区。•(1)在图所示的图形编辑器窗口的工作区中双击,或单击图中的“符号工具”按钮,或选择菜单Edit / InsertSymbol,则弹出如下图所示的Symbol对话框。基本单元符号的输入21输入单元符号界面22•(2)单击单元库前面的加号(+),直到使所有库中的图元以列表的方式显示出来;选择所需要的图元或符号,该符号显示在Symbol对话框的右边;单击OK按钮,所选择符号将显示在下图的图形编辑工作区域,在合适的位置单击放置符号。重复步骤,即可连续选取库中的符号。•如果要重复选择某一个符号,可以在上图中选中“重复输入”复选框,选择一个符号以后,可以在图形编辑区重复放置。放置完成后右击,选择Cancel命令取消放置符号。23输入设计项目和存盘元件输入对话框24•(3)要输入74系列的符号,方法与步骤(2)相似,选择其他库,打开maxplus2列表,从其中选择所要的74系列符号。•当选择其他库或兆功能函数库中的符号时,图中的“以块形式插入”复选框有效。如果选中该复选框,则插入的符号以图形块的形状显示。•(4)如果知道图形符号的名称,可以直接在Symbol对话框的符号名称文本框中输入要调入的符号名称,Symbol对话框将自动打开输入符号名称所在的库列表。如直接输入74161,则Symbol对话框将自动定位到74161所在库中的列表。•(5)图形编辑器中放置的符号都有一个实例名称(如inst1,可以简单理解为一个符号的多个复制项的名称),符号的属性可以由设计者修改。在需要修改属性的符号上右击,在弹出的下拉菜单中选择Properties命令,则弹出SymbolProperties对话框,如图所示。在General选项卡中可以修改符号的实例名;Ports可以对端口状态进行修改;Parameters选项卡中可以对LPM的参数进行设置;Format选项卡可以修改符号的显示颜色等。25•要建立一个完整的原理图设计文件,调入所需要的逻辑符号以后,还需要根据设计要求进行符号之间的连线,以及根据信号I/O类型放置I/O或双向引脚。•(1)连线•符号之间的连线包括信号线和总线。如果需要连接两个端口,则将鼠标指针移动到其中一个端口上,这时鼠标指针自动变为“+”形状,一直按住鼠标的左键并拖动鼠标到达第二个端口,放开左键,即可在两个端口画出信号线或总线。在连线过程中,当需要在某个地方拐弯时,只需要在该处放开鼠标左键,然后再继续按下左键拖动即可。•(2)放置引脚•引脚包括输入(input)、输出(output)和双向(bidir)三种类型,放置方法与放置符号的方法相同,即在图形编辑窗口的空白处双击,在Symbol对话框的符号名称文本框中输入引脚名,或在基本符号库的引脚库中选择,单击OK按钮,对应的引脚就会显示在图形编辑窗口中。•要重复放置同一个符号,可以在Symbol对话框中选中重复输入复选框,也可以将鼠标指针放在要重复放置的符号上,按下Ctrl键和鼠标左键不放,此时鼠标指针右下角会出现一个加号,拖曳鼠标指针到指定位置,松开鼠标左键就可以复制符号了。26•为引线和引脚命名•引线的命名方法是:在需要命名的引线上单击一下,此时引线处于被选中状态,然后输入名字。对单个信号线的命名,可用字母、字母组合或字母与数字组合的形式,如A0、A1、clk等;对于n位总线的命名,可以采用A[n–1...0]形式,其中A表示总线名,可以用字母或字母组合的形式表示。•引脚的命名方法是:在放置引脚的pin_name处双击,然后输入该引脚的名字,或在需命名的引脚上双击,在弹出的引脚属性对话框的引脚名称文本框中输入该引脚名。引脚的命名方法与引线命名一样,也分为单信号引脚和总线引脚。27选择图形文件后,next,出现如下图形设计编辑窗;双击输入元件和引脚,并连接电路,完成设计。保存文件。2829接下来编译写好的程序:编译30编译窗口31开始:32修改所有编译中出现的错误;编译中出现的警告一般可以忽略。仿真仿真分:功能仿真、时序仿真。33341.选择pin:all3.选择要加入的引脚4.加入到右边2.点击List5.点击OK加入所选节点3536设置激励信号,并保存波形文件:37选择仿真工具,进行仿真:38仿真工具:39仿真结果:怎样验证仿真结果是否正确?40层次化原理图设计方法将所需元件全部调入原理图编辑窗并连接好将设计项目设置成可调用的元件41层次化原理图设计方法连接好的全加器原理图f_adder.bdf设计全加器顶层文件42管脚分配重新编译下载至芯片43管脚锁定:当一个项目的顶层实体设计完成后,就可以进行管脚锁定和约束。锁定前先进行一些设置:Assignment→Device器件与管脚选项→Device&Pin…44将未使用的管脚设置:inputtri-stated(输入三态)还可以进行配置芯片的设置;IO管脚电压规格的设置,等等45管脚锁定:Assignment→AssignmentEditer项目实体定义的IO端口与芯片管脚的对应关系:1.取决于所选的实验模式2.实验连接关系详见:实验箱使用手册46重新编译项目下载:Tools→Programmer(sof文件)采用JTAG模式下载47数字电路实验箱48数字电路实验箱介绍功能说明:8bitsDIP开关8bits复位开关、4×4矩阵键盘8×8点阵输出、8位七段数码管LCD液晶显示、27个LED显示A/D、D/A转换、E2PROM等模块0~5V、-2.5V~+2.5V模拟量输出蜂鸣器、喇叭、JTAG模块交通灯、电梯、步进电机、通信模块VGA、USB、RS232接口模块单片机小系统模块(含地址锁存)4个信道脉冲输出2信道连续可调脉冲输出(2HZ~24MHZ)49务必将CPLD/FPGA芯片上未使用的引脚设置为“输入三态”类型。5051•ENTITYmux21aIS•PORT(a,b:INBIT;•s:INBIT;•y:OUTBIT);•ENDENTITYmux21a;•ARCHITECTUREoneOFmux21aIS•BEGIN•y=aWHENs='0'ELSE•b;•ENDARCHITECTUREone;52•ENTITYmux21aIS•PORT(a,b:INBIT;•s:INBIT;•y:OUTBIT);•ENDENTITYmux21a;•ARCHITECTUREoneOFmux21aIS•SIGNALd,e:BIT;•BEGIN•d=aAND(NOTS);•e=bANDs;•y=dORe;•ENDARCHITECTUREone53•ENTITYmux21aIS•PORT(a,b,s:INBIT;•y:OUTBIT);•ENDENTITYmux21a;•ARCHITECTUREoneOFmux21aIS•BEGIN•PROCESS(a,b,s)•BEGIN•IFs='0'THEN•y=a;ELSEy=b;•ENDIF;•ENDPROCESS;•ENDARCHITECTUREone;宏功能模块概述•AlteraLPM宏功能模块是一些复杂或高级的构建模块,可以在QuartusⅡ设计文件中和门、触发器等基本单元一起使用,这些模块的功能一般都是通用的,比如Counter、FIFO、RAM等。•Altera可以提供的基本宏功能模块有门单元模块、算术运算模块、I/O模块和存储器模块等。5455LPM_ROM宏模块应用定制LPM_ROM元件定制新的宏功能块564.4LPM_ROM宏模块应用4.4.3定制LPM_ROM元件