QuartusII使用入门.ppt_第1页
QuartusII使用入门.ppt_第2页
QuartusII使用入门.ppt_第3页
QuartusII使用入门.ppt_第4页
QuartusII使用入门.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章 Quartus II使用入门,4.1 Quartus II简介 Quartus II是Altera公司的综合性PLD开发软件,支持原理图、VHDL、Verilog HDL以及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在PC、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。,Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。 对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 Quartus II通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。,4.1.1 Quartus II的设计流程,与Maxplus II相比,Quartus II 不仅仅是支持器 件类型的丰富和图形界面的改变。Altera在 Quartus II中包含了许多诸如SignalTap II、 Chip Editor和RTL Viewer的设计辅助工具,集 成了SOPC和HardCopy设计流程,并且继承了 Maxplus II友好的图形界面及简便的使用方法。,4.1.2 Quartus II的设计特点,渐进式编译缩短了设计周期; SOPC Builder系统级设计; MegaWizard插件管理器,迅速方便地集成多种知识产权(IP)内核; 功耗分析工具,满足严格的功率要求; 存储器编译器功能,轻松使用嵌入式存储器。,1编译增强特性提高设计效率 2更快集成IP 3在设计周期的早期就对I/O引脚进行分配和确认 4功率分析和优化 5存储器编译器 6支持CPLD、FPGA和基于HardCopy的ASIC 7使用全新的命令行和脚本功能自动化设计流程,4.1.3 Quartus II的图形用户界面,Project navigator窗口 编辑输入窗口 Status窗口 Message窗口 Tcl Console窗口,4.2 Quartus II 使用方法,4.2.1 设计输入 常用的设计输入方式: 原理图输入 文本输入 第三方EDA工具输入,原理图输入方式 Block Design File(.bdf文件) 优点:几乎所有的EDA工具都会提供原理图输入方式,简单易用且非常直观; 缺点:模块库不兼容导致可移植性不好。 Quartus II的原理图输入方式实现了从原理图模块到HDL描述语言的双向自动转换功能,即可以实现原理图和HDL的混合输入,这在进行大型设计时是相当有意义的。,文本输入方式 VHDL(.vhd文件), Verilog-HDL(.v文件) , AHDL(.tdf文件) 优点:利于模块的划分复用,可移植性好,通用性好,设计不因芯片的工艺和结果的不同而变化,更利于向ASIC移植。 波形输入方式 使用波形输入法时,只要绘制出激励波形和输出波形,EDA软件就能自动地根据响应关系进行设计。 状态机输入方式 (.smf文件) 使用状态机输入法时,设计者只需要画出状态转移图,EDA软件就能生成相应的HDL代码或者原理图。,第三方EDA工具输入 EDIF Netlist (.edf文件):网表文件输入 VQM Netlist (.vqm文件):网表文件输入 网表记录的是设计的组成以及连接方式,由第三方综合工具 产生或者IP供应商提供。可以理解为是已经综合完成的设 计,Quartus II会根据网表的描述进行布局布线将设计具体部 署到确定Altera器件中。默认情况下不会重新编译。,1.创建新工程,工程:就是当前设计的描述、设置、数据以及输出的集合,Quartus II会将这些存储在不同类型的文件中并置于同一文件夹下。 在开始设计之前,必须创建工程。 (1)首先新建一个文件夹用于保存即将创建的工程(不要保存在桌面上)。 (2)打开Quartus II软件,在主界面中执行FileNew Project Wizard命令,按照向导的提示,完成设置工程文件夹、工程名称以及顶层实体名称。,创建工程的步骤,注意: 顶层实体名称必须与设计顶层文件的文件名一致,与VHDL设计中的顶层实体名一致。 实体名称不能为中文、不能使用VHDL的关键字或者与Quartus II设计库中的模块名称相同。 推荐: 一般情况下,推荐工程文件夹、工程名称以及顶层实体名使用相同的名称。,(3)选择目标芯片,(4)进行EDA工具设置。(此步骤可直接跳过) (5)新建工程完毕。,2.程序编辑,(1)执行FileNew菜单命令打开新建对话框,新建一个VHDL File,保存。 (2)在新建的VHDL文档中进行设计输入。 (3)完成VHDL语言输入之后,执行ProcessingAnalysis Current File命令,启动语法检查。如果在Message窗口中出现Error,在修改后再次执行分析,直至没有错误提示为止。,3.分配引脚,(1)在分配引脚之前,必须首先对设计进行分析及语法检查。在Quartus II主界面中执行ProcessingStartStart Analysis & Elaboration命令,进行分析与语法检查,如果发现错误,修改后再次执行检查,直至没有错误为止。 (2)执行AssignmentsPins,进行引脚分配。,4.2.2 编译,在Quartus II主界面中执行ProcessingStart Compilation命 令,可在状态窗口中看到当前编译的状态。遇到编译错 误会立即终止编译流程,修改后再次编译,直至成功。,编译过程,Analysis & Synthesis:综合器将HDL描述翻译成基本的逻辑门、存储器、触发器等基本逻辑单元的连接关系(网表)。在这个过程中,综合器会根据用户的约束与本身的算法优化生成的网表,目的是让生成的设计拥有更快的速度并占用更好的资源。 Fitter:根据目标器件进行布局布线,利用芯片内的可用逻辑资源最终将设计在物理层次上实现。 Assembler:生成编译输出文件。 Timing Analyzer:时序分析流程。,4.2.5 原理图输入方式 1.D触发器设计 (1)使用New Project Wizard新建一个工程,工程文件夹、工程名、顶层实体名均为DFF_BDF。 (2)打开工程,在Quartus II界面中执行菜单命令FileNew新建一原理图文件;保存设计文件到工程目录,并命名为DFF_BDF.bdf。 (3)执行EditInsert Symbol菜单命令,或者在原理图的空白处双击打开Symbol对话框。 primitivesstorage dff,新建原理图设计文件,插入符号,MegaFuntions:宏功能函数库,其中包含Altera提供的LPM/MegaFunction宏功能模块,是参数可定制的已经完成设计与验证的复杂逻辑模块。 Others:其他库中包含了与Maxplus II兼容的中等规模符号模块,如常用的74系列逻辑的符号模块。 primitives:基本符号模块库包含所有基本符号模块,比如各种逻辑门、触发器、输入输出端口等。,查找元件,(4)添加输入输出模块。 (5)对输入输出模块命名。 (6)模块连接。 (7)编译、仿真和配置。,引脚命名,最终完成的D触发器原理图,2.LPM计数器设计,LPM(Library Parameter MagaFunction,参数化宏功能模块库) Altera设计的一系列可以被参数化定制的逻辑功能模块 包含门电路、加法器、乘法器、ROM、RAM等众多设计模块 例:在原理图编辑器中插入一个LPM计数器 设计要求:计数器对输入时钟进行计数,每3个时钟周期输出一个时钟周期进位脉冲。采用同步置位方式,计数器宽度为2位。,设计步骤,(1)使用New Project Wizard新建一个工程,工程文件夹、工程名、顶层实体名均为deccount。 (2)打开工程,在Quartus II界面中执行菜单命令FileNew新建一原理图文件。 (3)保存设计文件到工程目录,并命名为counter.bdf。 (4)在新建的原理图文件中的空白处双击,打开Symbol窗口。点击左下方的【MegaWizard Plug-In Manager】按钮打开MegaFunction插入管理器窗口。 (5)选中Create a new custom megafunction variation, arithmeticLPM_COUNTER VHDL,输出文件命名为lpm_count。,插入管理器,选择MegaFunction类型,(6)进入计数器定制页面,设置计数器的计数宽度与计数方式,计数器宽度设置为2bits,计数方式设置为加法计数。 (7)设置计数器类型与附加端口,设置二进制计数,选中Carry-out复选框,令计数器在每次溢出的时候输出一个时钟周期的脉冲。 (8)设置控制端口,添加一个同步可控置位端口。 (9)MegaWizard Plug-In Manager供选择的文件类型。 (10)完成定制。,定制计数器宽度与计数方式,计数器类型与附加端口,控制端口设置,定制完的计数器原理图,4.3 使用Quartus II 设计数字逻辑,4.3.1 层次化设计方法3分频器设计 1.设计的层次化 2.3分频器设计 3.3设计步骤,(1)打开deccount工程,在工程目录下找到并打开lpm_count.vhd文件。 (2)在Quartus II界面中执行FileNew命令新建一个VHDL文件,作为顶层设计保存为deccount.vhd。 (3)完成编译和仿真。,3分频器仿真波形,4.3.2 有限状态机设计A/D采样控制器设计,1.有限状态机 状态机是一种很重要的时序电路,是许多数字电路的核心部件。 可以认为状态机是组合逻辑与时序逻辑两者的特殊组合。 状态机按照有序的方式遍历预先定义的状态序列,状态是二进制数0和1的特定组合,一般存储在寄存器、锁存器、PROM、计数器或双稳态器件中。 根据在产生输出过程中,是否使用输入信号,分成两类: 摩尔型状态机 米立型状态机,状态机的两种基本类型,Mealy型状态机,Moore型状态机,Moore型状态机:输出仅仅是当前状态的函数; Mealy型状态机:输出是当前状态和输入信号的函数。,Mealy型状态机输出的变化先于Moore型状态机输出地变化,因为Mealy机的输出在输入变化后立即发生变化;而Moore机的输出则是在输入发生变化之后,还要等待时钟的到来输出才发生变化。 2.有限状态机示例 Moore型状态机示例 假设一个逻辑电路有A和B两个输入端和一个输出端Z,在以 下条件满足的情况下输出1: A端连续两个周期输入相同的值; 在满足第一个条件的情况下,B端输入1.,(1)INIT :初始状态; (2)A0 :A端输入1个0,Z输出0; (3)A00 :A端输入2个0,Z输出1; (4)A1 :A端输入1个1,Z输出0; (5)A11 :A端输入2个1,Z输出1; (6)B1A1:满足第一个条件后,B输入1,A也输入1,Z输出1; (7)B1A0:满足第一个条件后,B输入1,A输入0,Z输出1;,library ieee; use ieee.std_logic_1164.all; entity FSM_Moore is port( clk, a, b : in std_logic; z : out std_logic); end entity FSM_Moore; architecture behav of FSM_Moore is type sreg_type is (init, a0, a1, a00, a11); signal sreg: sreg_type; begin,process(clk) begin if clkevent and clk=1 then case sreg is when init=if a=0 then sregif a=0 then sregif a=0 then sreg=a00; elsif a=1 and b=0 then sreg=a1; elsif a=1 and b=1 then sreg=a11; end if;,when a1 =if a=0 then sregif a=0 and b=0 then sregsreg=init; end case; end if; end process; with sreg select z=0 when init|a0|a1, 1 when a00|a11, 0 when others; end architecture behav;,Moore型状态机RTL图,Mealy型状态机示例 状态机共有S0S7 8个状态,当输入Xi=1时状态随时 钟依次转换,如果Xi=0则返回初始状态S0;输出ZO 在状态S0、 S2、 S4、 S6输出0,其他状态输出1。,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FSM_Mealy IS PORT (clk,xi : IN STD_LOGIC; zo : OUT STD_LOGIC); END ENTITY FSM_Mealy; ARCHITECTURE behav OF FSM_Mealy IS TYPE STATES IS (s0,s1,s2,s3,s4,s5,s6,s7); SIGNAL state : STATES ; BEGIN PROCESS(xi,state) BEGIN IF (clkEVENT AND clk=1 ) THEN CASE state IS,WHEN s0=zozozo=0; IF(xi=1) THEN state=s3; ELSE state=s0; END IF;,WHEN s3=zozozo=1; IF(xi=1) THEN state=s6; ELSE state=s0; END IF;,WHEN s6=zozo=1; IF(xi=1) THEN state=s0; ELSE state=s0; END IF; END CASE; END IF; END PROCESS; END ARCHITECTURE behav;,Mealy型状态机RTL图,Moore型或Mealy型的选择,从功能上说,根据定义可以建立Moore机或Mealy机,它们的主要的主要区别在于输出的时序。 在Moore机中,输出在时钟的边沿到达的几个门延迟之后即得到输出值,并且在该时钟周期的剩余时间内保持不变,即使输入在该时钟周期内发生变化,输出值也不变。然而,因为输出与当前状态有关,由输入产生的任何效果将延迟到下一个时钟周期。 在Mealy机中,因为输出是输入的函数,如果输入改变,输出可以在一个时钟周期中间发生改变。这使Mealy机比起Moore机来,对输入变化的响应要早一个周期,但也使输出随着假输入的变化而变化。输入线上的噪声也会传到输出端。 Moore机比对应的Mealy机可能需要更多的状态。,3 有限状态机设计A/D采样控制器设计,TLC5510TI(德州仪器)的高速A/D转换器 精度:8位;转换速率:20MHz 常用来与FPGA/CPLD结合构成高速数据采集系统 设计步骤 (1)使用New Project Wizard新建一个工程,工程文件夹、工程名、顶层实体名均为TLC5510。 (2)在Quartus II界面中执行菜单命令FileNew新建一原VHDL文件。 (3)保存设计文件到工程目录,并命名为TLC5510.vhd。 (4)完成编译和仿真。,TLC5510引脚说明,为引脚、表贴封装形式()。 :模拟信号地; :模拟信号输入端; :时钟输入端; :数字信号地; :数据输出端口。为数据最低位,为最高位; :输出使能端。当为低时, 数据有效,当为高时,为高阻抗; :模拟电路工作电源; :数字电路工作电源; :内部参考电压引出端之一,当使用内部电压分压器产生额定的基准电压时,此端短路至端; :参考电压引出端之二; :参考电压引出端之三; :内部参考电压引出端之四,当使用内部电压基准器产生额定的基准电压时,此端短路至端。,TLC5510引脚图,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY TLC5510 IS PORT(CLK : IN STD_LOGIC; -采样控制ctl_GP_LatchFlag输入 D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); -8位AD数据 ADCLK: OUT STD_LOGIC; -TLC5510的CLK ADOE: OUT STD_LOGIC; -TLC5510的OE输出使能低电平有效 DATA: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位数据 END ENTITY TLC5510;,ARCHITECTURE behavioural OF TLC5510 IS TYPE ADS_STATES IS (State0_typ,State1_typ); SIGNAL sta_G_CurrentState : ADS_STATES; SIGNAL sta_G_NextState : ADS_STATES; SIGNAL ctl_GP_LatchFlag : STD_LOGIC; BEGIN,COM: PROCESS(sta_G_CurrentState) -A/D采样控制状态机 BEGIN CASE sta_G_CurrentState IS WHEN State0_typ = ADCLK ADCLK ADCLK =0 ; ctl_GP_LatchFlag = 0 ; -DCLK = 1; sta_G_NextState = State0_typ; END CASE; END PROCESS COM;,REG: PROCESS (CLK) -状态机驱动进程 BEGIN IF(CLKEVENT AND CLK = 1)THEN sta_G_CurrentState = sta_G_NextState; END IF; END PROCESS REG; LATCH:PROCESS(ctl_GP_LatchFlag)-ctl_GP_LatchFlag -上升沿锁存数据 BEGIN IF ctl_GP_LatchFlagEVENT AND ctl_GP_LatchFlag = 1 THEN DATA = D; END IF; END PROCESS LATCH; ADOE = 0; END ARCHITECTURE behavioural;,TLC5510采样控制器仿真波形图,TLC5510采样控制器RTL图,实验五:完成自动售货机的VHDL设计,要求:有两种硬币:1元或5角,投入1元5角硬币输出货物,投入2元硬币输出货物并找5角零钱。 状态定义:S0表示初态,S1表示投入5角硬币,S2表示投入1元硬币,S3表示投入1元5角硬币,S4表示投入2元硬币。 输入信号:state_input(1)表示投入1元硬币,state_input(0)表示投入5角硬币。输入信号为1表示投入硬币,输入信号为0表示未投入硬币。 输出信号:comb_outputs(1)表示输出货物,comb_outputs(0)表示找5角零钱。输出信号为1表示输出货物或找钱,输出信号为0表示不输出货物或不找钱。,自动售货机的状态转换图,状态为S0、S1、S2、S3和S4; 输入为state_input(0,1); 输出为comb_outputs(0,1);,LIBRARY IEEE; USE IEEE.std_logic_1164.ALL;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论