QUARTUS+II+使用教程.pdf

上传人:tbuqq 文档编号:4741557 上传时间:2019-12-05 格式:PDF 页数:16 大小:239.46KB
返回 下载 相关 举报
QUARTUS+II+使用教程.pdf_第1页
第1页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《QUARTUS+II+使用教程.pdf》由会员分享,可在线阅读,更多相关《QUARTUS+II+使用教程.pdf(16页珍藏版)》请在三一文库上搜索。

1、第 2 章 QUARTUS II 使用教 程 2 2.1 Quartus II 的安 装 . 2 2.1.1 安装 Quartus II. . 2 2.1.2 安装 License. . 2 2.2 FIFO 设计实 例 2 2.2.1 新建工 程 . 3 2.2.2 创建设计文 件 . 3 2.2.3 编译过 程 . 6 2.2.4 编译报告与延时分 析 . 6 2.2.5 运行仿 真 . 7 2.3 设计流 程 10 2.3.1 设计输 入 . 10 2.3.2 编 译 . 17 2.3.3 延时分 析 . 19 2.3.4 仿 真 . 20 2.4 系统级设 计 20 2.4.1 SOP

2、C 设 计 . 20 2.4.1 DSP 设 计 21 2.5 设计实 例 22 2.5.1 UART 控制 器 . 22 2.5.2 I 2 C 总线控制 器 24 2.5.3 USB2.0 控制 器 26 2 第 2 章 QUARTUS II 使用教程本章 以 Quartus II 4.1 版本为例。所选实例使用的CPLD/FPGA 器 件为 Cyclone 系列 CP1C20F400C7。 2.1 Quartus II 的安 装 Quartus II 的安装需要较高的系统配置,建议 256M 以上 内存,奔腾 II 以上的 CPU; 配置过低将使得编译过程十分 缓慢。2.1.1 安装 Q

3、uartus II 安装 QuartusII 之前建议浏 览一下安装文件夹下的帮助文件及注意事项。运行 选 择 Install Quartus II Software,以后全部 结束2.1.2 安装 License 第一次运行 Quartus II 会要求授权码验证,选择菜单Tools/License Setup ,弹出图2.1 所示对话框,点击“”按钮选择 License.dat 文件即可。如果不安装License,也可以试用, 但 不能使用仿真等功能。2.2 FIFO 设计实例本节以FIFO (First-In-First-Out 先进先出)缓冲存储器为例,介绍一下 Quarstus II

4、 的软件设计基本流程。图 2.2 新建项目3 2.2.1 新建工程选择菜单 File New Project Wizard,弹出新 建项目向导对话框(如图2.2)。对话框中第一项是项目保 存的位置(路径),第二项是项目名称,第三项是项目顶层 实体( entity ) 名。建议工程名称和顶层实体名一样,需要 注意的是,实体名必须和设计中实际的顶层实体名称一致。 本例中,项目所有的文件都保存到E:/qdesign/Fifo 文件夹 下。 点击 Next ,询问该目录不存在是否要创建,选择是。 如图 2.3 。 图 2.3 创建工作目录紧接着的两页不用设置, 在第四页, 选择所用的PLD (FPGA

5、) 系列, 这里选Cyclone , 如图 2.4。在图2.5 中,选择器件为CP1C20F400C7。 点 击 Next , 出现新建项目的设置信息,检查无误后点击Finish 按钮结束。2.2.2 创建设计文件点击工具栏中 “New ” 按钮 (或 者选择菜单FileNew ),选择VHDL File 。如图 2.6。 图 2.4 器件系列输入 Fifo 的 VHDL 代码。 如下: - a first-in first out memory, uses a synchronising clock - generics allow fifos of different sizes to b

6、e instantiated library IEEE; use IEEE.Std_logic_1164.all; entity FIFO is generic(m, n : Positive := 8); -m is fifo depth, n is fifo width 图 2.5 器件 名称 4 port(RESET, WRREQ, RDREQ, CLOCK : in Std_logic; DATAIN : in Std_logic_vector(n-1) downto 0); DATAOUT : out Std_logic_vector(n-1) downto 0); FULL, EM

7、PTY : inout Std_logic); end FIFO; architecture V2 of FIFO is type Fifo_array is array(0 to (m-1) of Bit_vector(n-1) downto 0); signal Fifo_memory : Fifo_array; signal Wraddr, Rdaddr, Offset : Natural range 0 to (m-1); signal Rdpulse, Wrpulse, Q1, Q2, Q3, Q4 : Std_logic; signal Databuffer : Bit_vecto

8、r(n-1) downto 0); 图 2.6 设计输入文件begin -pulse synchronisers for WRREQ and RDREQ -modified for Synplify to a process sync_ffs : process begin wait until rising_edge(CLOCK); Q1 0); elsif (Rdpulse = 1 and EMPTY = 0) then Databuffer Rdaddr) else (m - (Rdaddr - Wraddr) when (Rdaddr Wraddr) else 0; EMPTY Z);

9、 end V2; 对上述程序做以下几点 说明:信号用于复位,仿真或运行开始时应使 RESET 保持至少一个时钟周期高电平(使CLOCK 上升沿 可以检测到RESET 信号)。为请求读信号,在 数据缓冲区非空情况下(EMPTY=0 ), RDREQ 的下 降沿 会发出读操作请求(Rdpulse = 1 ),在下一个CLOCK 上升 沿到来之后会引6 发读操作,DATAOUT 数据线上会出现数 据。为请 求写信号,在数据缓冲区非满 情 况 下 (FULL=0 ) , WRREQ 的下 降沿会发出写操 作 请 求 ( Wrpulse = 1 ),在下一个CLOCK 上升 沿到来之后 会 引发写操作,

10、将图 2.7 编译后的界面DATAIN 数据线 上出现的数据写入缓冲区。2.2.3 编译过程保存此 VHDL 文件,点击工具栏中“Start Compilation”(或者选择菜单 Processing Start Compilation)进行编译。如图2.7 。 编译 完毕会弹出对话框显示0 个 error ,但有几个warning ,可 以暂时不用理会它。2.2.4 编译报告与延时分析编译完后 会产生一个编译报告栏, 见 图 2.8 。图中 Flow Summary 页显示此设计共占用的逻辑单元LE(logic elements ) 为 116 个( 2)。 LE 是最小的逻辑单元,每个

11、LE 含有四 个查 找表( LUT,四输入变量的快速逻辑产生器)、一个 带有同步使能的可编程触发器、一个进位链和一个级联 图 2.8 编译报告7 链。另外,占用引脚22 个,存储单元 和 PLL(phase-locked loop 锁相环)都为0。 在图2.8 编 译报 告中,展开左边一栏中 Timing Analyer 项, 选择 Timing Analyzer Summary, 查看延时分析总结(如图 2.9) 。 该总结显示最差情况的时延,其中包括tsu (输入建立时 间)、 th (输入保持时间)、tco (时钟到输出的时间)、 tpd(引脚到引脚的延时)等等。图 2.9 延时分析报告

12、在 图 2.8 编译报告中,展开左边一栏中Timing Analyer 项, 选择 Timing Analyzer Summary,查看延时分析总结(如图 2.9)。该总结显示最差情况的时延,其中包括 tsu(输入 建立时间)、 th (输入保持时间) 、 tco (时钟到输出的时间)、 tpd (引脚到引脚的延时)等等。可以在Assignments 菜 单中选择Timing Setting 命令,对项目的延时要求进行设 定。 2.2.5 运行仿真点击工具栏中 “New ” 按钮新建文件, 选择 Other Files 栏中 Vector 图 2.10 新建向量波形文件 WaveForm Fi

13、le 。 如图 2.10 所示。保存此新建 的 波 形 文 件 为 fifo.vwf 。 在图 2.11 所示文件中的左栏位置点击 右键,选择Insert Node or Bus。 出现图2.12 所示的对话 框,点击Node Finder 按钮。图 2.11 打开插入节点对话 框 8 在出现的 Node Finder 对话框中,选择 Filter 为 “ Pins:all”,点击 List 按钮,左栏出现列表,再点击“ ”按 钮,将左栏中所有的节点选入到右栏。点击OK 关闭对话 框。 现在要给定输入信号, 首先是时钟信号,在图 2.14 中, 选定 CLOCK 信号,点击按钮,出现如图2.1

14、5 所示的对 话框,保持默认设置, 确定后出现CLOCK 信号。 图 2.12 插 入节点图 2.13 载入所有节点设定 DATAIN 信号,选择 DATAIN ,点击按钮,保持默认设置点击OK 按钮, DATAIN 会出现递增的计数信号。设定 RDREQ 信号,选 定 RDREQ,点击按钮,修改Count 参数为 40ns ,如图 2.16 。 设定 RDREQ 信号,选定WRREQ,点击按钮,修 改 Count 参数为 20ns。 图 2.14 设置输入波形信号9 设 定 RDREQ 信号,选定RESET,点击按钮,在RESET 开 始处设定5ns 的高电平。 图 2.15 Clock 设

15、置图2.16 设 置 RDREQ 信号 点击工具栏中 “Start Simulation”按钮进行 仿真,仿真结果如图2.17 。 下面对仿真结果进行分析,结 果如下:下降沿以后,经过大约2.5 时钟周期 EMPTY 变为低电平(数据已写入)。下降沿以 后,经过大约1.5 个时钟周期, DATAOUT 总线上出现数据 (读 出)。因为写数据比读数据快,过一段时间FULL 信 号变为高电平(缓冲区满),写数据请求不再有效,直到 读出一个数据,FULL 变低电平后才重新有效。图 2.17 仿 真结果10 2.3 设计流程本节将详细介绍各个设计环节。 2.3.1 设计输入(1) 多种设计输入方法自

16、带设计输入1) 原理图式图形设计输入;2) 文本编辑: AHDL、VHDL、Verilog ; 3) 内存编辑: Hex、第三 方工具4) EDIF 5) HDL 6)其他如混合设计格 式;利用 LPM 和宏功能模块来加速设计输入各种输入文件 格式如图 2.18 所示: 图 2.18 设计输入文件(2) 图表与 原理图编辑器该编辑器既可以编辑图表模块,又可以编辑 原理图。图表模块编辑是主要的顶层设计的主要方法 原理图编辑是传统的设计输入方法用户可以利用 加入 Quartus II 提供的LPMs,宏功能等函数以及用户自 己的库函数来设计提供“ 智能 ” 的模块连接和映射图 表模块的设计流程如下

17、:产生一个新的模块设计文件 1) 画出图表模块或输入设计单元符号图 2.19 新建 bdf 文件 2) 输入接口和参数信息3) 连接各个设计单元(利 用单连线,总线等保存设计,文件的后缀名为.bdf(Block Diagram/Schematic File)顶层模块可以是用户产生的 HDL 文件或图形编辑文件从顶层设计可以产生设计 单元,头文件,或转化成Verilog/VHDL 文件下面介绍一 下如何设计一个顶层图表文件,以及如何根据此文件产生 设计文件。新建 bdf 文件,如图2.19。 图 2.21 设置 I/O 口创建模块及其I/O 端口下面创建一个模块 block1 , 它有四个输入口

18、, 一个输出口,一个 8 位的双向口。 1) 点击 按钮( Block Tool ),在文件中拖出一个方框创 建模块。 2) 右击该模块, 选菜单 Block Properties 。 3) 在 General 栏中设置 Name 为“ block1”,I/Os 栏中添加I/O 接口如图2.21 。 点击 “ 确定 ” 按钮后,模块如图 2.22 。智 能” 连接和映射图 2.22 模块结果根据以上的方法, 设计另 一个模块 block2 ,它有 CLK 和 SEL 两个输入口,一个 DATA20 输出口,使用直角管道工具 (Orthogonal Conduit Tool) 连接两模12 块以

19、及输入输出端口, 如图 2.23 所示。 图 2.23 管道工具管道工具会自动根据名称连接,右键单击 管道,选择Property ,打开Conduit Property 对话框,选 择 Signals 页,查看连接关系,如图2.24。其中 Signal 代 表输入端口, inst 代表block1 , inst3 代表 block2 。Quartus II 提供各种逻辑功能符号,包括图元(Primitive )、 LPM (Library of Parameterized Modules)函 数和宏功能 (Macrofuncion ) 符号。其 .bdf 文件既能包含模块符号, 又能包括原理图

20、符号。图 2.24 管道属性下面,我们在上 图的基础上,增加一个乘法器,将block1 和 block2 的数据 相 乘。利用 MegaWizard Plug-In Manager 输入宏功能符号 和 LPM 库函数的步骤如下:图 2.25 输入符号名13 1) 在.bdf 文件上(图2.23 的空白部分)双击,弹出如图2.25 所示的对话框,在 Name 框输入 lpm_mult 。 2) 点击 OK 后,出现如图2.26 所示对话框,对乘法器进行配置。选择 VHDL,则此乘法器将产生VHDL 的设计文件。3) 点击 Next 进入下一页,设置 dataa 数据宽度为8,datab 数据 宽

21、度为 3。如图 2.27 所 示。点击 Finish 结束。鼠标处会 出现乘法器的符号, 放 图 2.26 MegaWizard Plug-In 设置对 话框 到合适的位置即可。图 2.27 设置乘法器的输入数据 宽度 现在要把 block1 和 block2 的数据线连接到乘法器上, 因 为名称不匹配,需要明确告诉管道对应关系。利用直角 管道 工具 将 block1 、 block2 分别 与乘法器相连, 在 block1 与管 道之间出现符号,它表示block1 与管道之间的映射 关 系,双击它,打开映射属性对话框,进入Mapping 页, 设置 映射关系如图2.28 所示。图 2.28

22、设置映射关系点 击确定后,引出一个方框显示此映射关系。同样的方法设 置 block2 与管道的映射。最终结果如图2.29 所示。 14 图 2.29 信号映射产生设计文件给模块定义并产生模块所 代表的设计文件。以block1 为例,右键单击block1 模块, 选择 Create Design File from Selected Block,弹出图 2.30 所示对话框。 设置如图。 确定后,会创建出一个 Block1.vhd 文 件,它包括输入输出口的定义,需要用户增加内部实 现。其产生的VHDL 代码如下: 图 2.30 设置输出设计 文件 LIBRARY ieee; USE ieee.

23、std_logic_1164.all; - Entity Declaration ENTITY block1 IS - ALTERA_IO_BEGIN DO NOT REMOVE THIS LINE! PORT ( CS : IN STD_LOGIC; /WR : IN STD_LOGIC; CLK : IN STD_LOGIC; /RD : IN STD_LOGIC; 15 BUSY : OUT STD_LOGIC; DATA : INOUT STD_LOGIC_VECTOR(7 downto 0) ); - ALTERA_IO_END DO NOT REMOVE THIS LINE! EN

24、D block1; - Architecture Body ARCHITECTURE block1_architecture OF block1 IS BEGIN END block1_architecture; (3) 支持的第三方工具支持的综合 工具包括: (* 表示支持内部链接 支持的仿 真工具有: Verilog- 驱动支持内部链接的第三 方 EDA 工具输入文件的流程。在Assignmens 菜 单中选择 EDA Tool Settings ,出现如图2.31 所示的对话框。第三方 EDA 工具也可以驱动Quartus II 的设计输入。16 图 2.31 第三方综合工具Quartu

25、s II 驱动不支持内部链接的第三方 EDA 工具输入文件的流程。在Project 菜单中选择 EDA Tool Settings ,出现如图 3.32 所示对话框。 如果用一个非内 部链接的 EDA 工 具产生 VHDL、Verilog 、EDIF 文件,就 需要阐明 .lmf 文件来给定文件格式。图 2.32 第三方仿真工 具 17 2.3.2 编译Quartus II 编译器的功能包括设计错误 检查、逻辑综合、Altera 适配器件以及为仿真、定时分析 和器件编程产生的输入文件。1. 编译类型(1) 只是综合 并输出网表编译设计文件,综合产生门级代码编译 器只运行到综合这步就停止了编译器

26、只产生估算的延 时数值(2) 完全的编译,包括编译,网表输出,综合, 配置器件编译器除了完成以上的步骤,还要将设计配置 到 ALTERA 的器件中去编译器根据器件特性产生真正 的延时时间和给器件的配置文件2. 编译设置向导选择菜 单 Assignmens Wizards Compiler Settings Wizard,打开编 译设置向导对话框,在第 2 页中包括两项设置,其一为编 译方式:一般编译(Normal compilation,较少空间较多编 译时间)和优化编译(Smart compilation,较多空间较少编 译时间);其二为是否削减接点( Node)名字。如图2.33 所示。图

27、 2.33 编译设置向导3. 设置 选择菜单 Assignmens Settings,打开设置管理器, 该管理器包括了编 译、延时分析、18 仿真等各项设置。此处介绍和编译相关 的设置。(1) 分析综合( Analysis counter40=“000000“; else counter40=counter40+1; load=0; end if; 图 2.39 Uart 结构 end if; end process; 由于本设计中选取一位数据4 个 时钟周期, 因此当计数到 “100111” 时,表示 10 位 数据发送 完毕;此时将加载信号“load ”置 1,则向移位寄存器加载10 位数

28、据。此计数器的时钟信号由3 位计数器的进位信号提 供,3 位计数器程序为如下:process(clk) begin if clkevent and clk=1then if counter4=“0011“then counter4=“0000“; 23 carry=1; else counter4=counter4+1; carry=0; end if; end if; end process; 当计数脉冲为3 时,计数器清 零并发出进位信号“carry ”,“carry ”既是6 位计数器的时钟 信号,又是移位寄存器的移位脉冲,移位寄存器实际上在发 送器中是一个并串转换器,其程序为如下: process(load,carry) begin if load=1then reg10(9 downto 0)=regin(9 downto 0); else if carryevent and carry=1 then din=reg10(0); reg10(8 downto 0)=reg10(9 downto 1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1