数字电路FPGA实验讲义 Quartus Ii使用说明 Quartus Ii Web edition Software下载地址: http://dl.alteracom/?edition=web 请按照网站说明要求下载注册。 下面给出该软件的基于原理图设计的常用基本操作,包括原理图输入、连线、宏模块建 立、总线操作、编译仿真、管脚定义以及下载实现等基本操作步骤,更多功能需要同学们在 实践中不断探索积累经验 新建项目 双击 Quartus II图标启动软件,点击File菜单下NeW选项,进入如下界 (2 New New Quartus II Project 4 Design Files AHDL File Block Diagram/Schematic File EDIF File Qsys System File State Machine file SystemVerilog HDL File Td Script File Verilog HDL File VHDL File 4 Memory Files Hexadecimal (Intel-Format) File Memory Initialization File 4 Verification/ Debugging Files In-System Sources and Probes File Logic Analyzer Interface File SignalTap II Logic Analyzer File niversity Program VWF d Other Fil AHDL Indude File Block Symbol File Chain Desaription File Synopsys Design Constraints File OK Cancel Help 如要新建项目直接点击0K,然后点Next,输入项目的存放目录和项目名称 后再点Next进入器件选择界面, Device family选择 Cyclone II, Available device选择EP3C25Q240C8,如下图所示:
数字电路 FPGA 实验讲义 Quartus II 使用说明 Quartus II Web Edition Software 下载地址: http://dl.altera.com/?edition=web 请按照网站说明要求下载注册。 下面给出该软件的基于原理图设计的常用基本操作,包括原理图输入、连线、宏模块建 立、总线操作、编译仿真、管脚定义以及下载实现等基本操作步骤,更多功能需要同学们在 实践中不断探索积累经验。 一、 新建项目 双击 Quartus II 图标启动软件,点击 File 菜单下 New 选项,进入如下界 面: 如要新建项目直接点击 OK,然后点 Next,输入项目的存放目录和项目名称 后再点 Next 进入器件选择界面,Device family 选择 Cyclone Ⅲ,Available device 选择 EP3C25Q240C8,如下图所示:
New Project Wizard Family Device Settings [page 3 of 5 Select the family and device you want to target for compilation You can install additional device support with the Install Devices command on the tools menu Device family Show in Ava Family: Cydone Package Devices: All coun Target device Speed grade O Auto device selected by the Fitter Name filter o Specific device selected in 'Available devices ist v Show ad O Other: n/a Available devices Name Core Voltage LEs User I/Os EP3C25F321.2V 24624216 60825 EP3C253212y 24624215 P3c25Q24.1.2N 24624149 点击界面下面的Next,进入 EDA Tool设置界面,直接点Next,进入新窗 口后点 Finish,返回工程界面,点击工具栏新建文件图标如下: a Quartus II 32-bit-E: /shiyan2015xia/wangyong/wangyong- wangyong File Edit View Project Assignments Processing Tools Window Help v 日日4 C:wangyong navigator △ Cydone II:EP3c25024c8 i wangyong 进入新建文件类型选择界面,选择 Block Diagram/ Schematic file如下图 所 Cy New New Quartus I Project AHDL File Block Diagram/Schematic File EDIF File Qsys System File State Machine File Systemverilog HDl file Td Script File 点击0K后进入原理图设计界面
点击界面下面的 Next,进入 EDA Tool 设置界面,直接点 Next,进入新窗 口后点 Finish,返回工程界面,点击工具栏新建文件图标如下: 进入新建文件类型选择界面,选择 Block Diagram/Schematic File 如下图 所示: 点击 OK 后进入原理图设计界面
原理图的设计 1、电路图输入: 在原理图设计界面点击工具栏 Symbol Tool图标如下所示: 国线③ 进入如下界面: Quartus安装目录下的 libraries子目录存放的是系统库里的电路模块,双 击 Libraries窗口中的 quartus/ libraries一行,出现常见库文件目录如下 4 B f: /altera/quartus/ibraries/ b O megafunctions a others altera\quartus\libraries\ primitives子目录下分别为缓冲逻辑单元( buffer)、基本逻辑 单元(ogic)、其它单元( other)、引脚单元(pin)和存储单元( storage)五个子类。 Buffer子类 中包含的是缓冲逻辑器件,如 alt in buffer、 alt out buffer、wire等; logic子类中包含 的是基本逻辑器件,如and、or、xor等门电路器件; other子类中包含的是常量单元, 如 constant、vcc和gnd等;pin子类中包含的是输入、输出和双向引脚单元; storage 子类中包含的是各类触发器,如df、tf等。 altera\quartus\libraries\ others子目录下包含了 MAX Plus2所有的常用的逻辑电路 和 Opencore_plus函数,这些逻辑函数可以直接应用到原理图的设计上,其中74系列
二、 原理图的设计 1、电路图输入: 在原理图设计界面点击工具栏 Symbol Tool 图标如下所示: 进入如下界面: Quartus 安装目录下的 libraries 子目录存放的是系统库里的电路模块,双 击 Libraries 窗口中的 quartus/libraries 一行,出现常见库文件目录如下: altera\quartus\libraries\ primitives 子目录下分别为缓冲逻辑单元(buffer)、基本逻辑 单元(logic)、其它单元(other)、引脚单元(pin)和存储单元(storage)五个子类。Buffer 子类 中包含的是缓冲逻辑器件,如 alt_in buffer、alt_out_buffer、wire 等;logic 子类中包含 的是基本逻辑器件,如 and、or、xor 等门电路器件;other 子类中包含的是常量单元, 如 constant、vcc 和 gnd 等;pin 子类中包含的是输入、输出和双向引脚单元;storage 子类中包含的是各类触发器,如 dff、tff 等。 altera\quartus\libraries\ others 子目录下包含了 MAX Plus2 所有的常用的逻辑电路 和 Opencore_plus 函数,这些逻辑函数可以直接应用到原理图的设计上,其中 74 系列
模块的说明书见器件手册或实验课程网站中的参考资料中 altera\quartus\libraries\ megafunctions是参数化函数,包括LPM 函数( Library of Parameterized Modules)和 MegaCore AMPP函数( Altera Megafunction Partners Program),包含 arithmetic、 gates、I/0和 storage 四个子类。 arithmetic子类中包含的是算法函数,如累加器、加法器、乘 法器和LPM算术函数等; gates子类中包含的是多路复用器和门函数;I/0 子类中包含的是时钟数据恢复(CDR)、锁相环(PL)、千兆位收发器(GXB) LⅦDS接收发送器等; storage子类中包含的是存储器、移位寄存器模块和 LPM存储器函数。 下图中选择了一个两输入与门 Libraries 4 0 f: / altera/quartus /braies/ b O megafunctions b a others 口 primitives D白 buffer 号and12 号and2 号 Name v Repeat-insert mode 点击oK后将与门放入原理图设计窗口中,下图中的74390是从 altera\quartus\libraries\ others子目录下的 MAXPlus2中取出的。 D回气"气、口、、 10/ 1CLKA 1QB 1CLKB 1QC 1QD 2CLR 2QB 2CLKA 2QC 2CLKB 2QD instDUAL COUNTER 2、电路连线: 在原理图设计窗口上端的工具栏里,常用按钮如下图所示:
模块的说明书见器件手册或实验课程网站中的参考资料中。 altera\quartus\libraries\ megafunctions 是参数化函数,包括 LPM 函数(Library of Parameterized Modules)和 MegaCore AMPP 函数(Altera Megafunction Partners Program),包含 arithmetic、gates、I/O 和 storage 四个子类。arithmetic 子类中包含的是算法函数,如累加器、加法器、乘 法器和 LPM 算术函数等;gates 子类中包含的是多路复用器和门函数;I/O 子类中包含的是时钟数据恢复(CDR)、锁相环(PLL)、千兆位收发器(GXB)、 LVDS 接收发送器等;storage 子类中包含的是存储器、移位寄存器模块和 LPM 存储器函数。 下图中选择了一个两输入与门: 点 击 OK 后 将 与 门 放 入 原 理 图 设 计 窗 口 中 , 下 图 中 的 74390 是 从 altera\quartus\libraries\ others 子目录下的 MAXPlus2 中取出的。 2、电路连线: 在原理图设计窗口上端的工具栏里,常用按钮如下图所示:
这几个按钮从左到右依次为: 原理图输入:用于添加工程中所需要的各种原理图函数和符号。 输入输出管脚工具:用于给电路添加输入输出管脚。 宏模块工具:用于添加一个宏模块,用户可定义输入和输出以及一些相关参 数,用于自顶向下的设计,下面会介绍其使用方法 正交节点工具:用于画垂直和水平的连线,同时可定义节点的名称。 正交总线工具:用于画垂直和水平的总线。 正交管道工具:用于模块之间的连线和映射 斜线节点工具:用于画垂直和水平的连线,同时可定义节点的名称 斜线总线工具:用于画垂直和水平的总线 斜线管道工具:用于模块之间的连线和映射。 画图工具:分别为矩形、圆形、直线和弧线工具 部分连线工具:使用此项可以实现局部连线 橡皮筋工具:使用此项移动图形元件时引脚与连线不断开。 3、宏模块工具操作 有两种方法生成电路模块: (1)、点击宏模块工具图标,在原理图窗口中按住鼠标左键拖动得到宏模块如下图 所示: I O Type 点击选中宏模块,按鼠标右键,在弹出窗口中选 Properties进入如下界面: ca Block Properties I/osE Parameter Format Name ck name 在Name中输入宏模块名称,点Jos定义模块输入输出管脚如下:
这几个按钮从左到右依次为: 原理图输入:用于添加工程中所需要的各种原理图函数和符号。 输入输出管脚工具:用于给电路添加输入输出管脚。 宏模块工具:用于添加一个宏模块,用户可定义输入和输出以及一些相关参 数,用于自顶向下的设计,下面会介绍其使用方法。 正交节点工具:用于画垂直和水平的连线,同时可定义节点的名称。 正交总线工具:用于画垂直和水平的总线。 正交管道工具:用于模块之间的连线和映射。 斜线节点工具:用于画垂直和水平的连线,同时可定义节点的名称。 斜线总线工具:用于画垂直和水平的总线。 斜线管道工具:用于模块之间的连线和映射。 画图工具:分别为矩形、圆形、直线和弧线工具 部分连线工具:使用此项可以实现局部连线。 橡皮筋工具:使用此项移动图形元件时引脚与连线不断开。 3、宏模块工具操作 有两种方法生成电路模块: (1)、点击宏模块工具图标,在原理图窗口中按住鼠标左键拖动得到宏模块如下图 所示: 点击选中宏模块,按鼠标右键,在弹出窗口中选 Properties 进入如下界面: 在 Name 中输入宏模块名称,点 I/Os 定义模块输入输出管脚如下:
Pd Block Properties General I/Os [Parameter Format 1 ! INPUT 点击NEW定义输入输出管脚名称,点 INPUT下拉可选择管脚是输入、输出或双向 端口,定义完成按OK后得到宏模块如下: oUTPUT 再点击选中宏模块,按鼠标右键,在弹出窗口中选 Create Design File from Selected Block进入 如下界面: Pa Create Design File from Selected Block -X- 和◎ VHDL O Verilog o Schematic a Add the new design file to the current project File name: wymk bdf Cancel 选 Schematic用原理图创建子模块,模块电路创建完成并保存,先不关闭子模块创 建窗口,在子模块创建窗口,点Fe菜单,选 Create/ Update中的 Create Symbol File For current file,保存后就完成了子模块创建,此时可以删除刚才建立的模块,而 在 Symbol Tool中就可以直接调用该模块。 (2)、在当前电路图中,将电路中的输入输出管脚添加完成并保存,点Fie菜单, 选 Create/ Update中的 Create Symbol File For Current File,可直接生成可调用的电路 模块
点击 NEW 定义输入输出管脚名称,点 INPUT 下拉可选择管脚是输入、输出或双向 端口,定义完成按 OK 后得到宏模块如下: 再点击选中宏模块,按鼠标右键,在弹出窗口中选 Create Design File from Selected Block 进入 如下界面: 选 Schematic 用原理图创建子模块,模块电路创建完成并保存,先不关闭子模块创 建窗口,在子模块创建窗口,点 File 菜单,选 Create/Update 中的 Create Symbol File For Current File,保存后就完成了子模块创建,此时可以删除刚才建立的模块,而 在 Symbol Tool 中就可以直接调用该模块。 (2)、在当前电路图中,将电路中的输入输出管脚添加完成并保存,点 File 菜单, 选 Create/Update 中的 Create Symbol File For Current File,可直接生成可调用的电路 模块
4、总线操作 这里只介绍一下总线的命名和总线的抽取操作,下图所示7474译码器输出有7个管 447 pin name ABc OB pin named PW2341 oin names pin names IPIN 231 d LTN pn⊥name7 RBIN OF PN236 PT230 inst1 BCD TO 7SEG 可以将输出管脚定义为总线类型,例如命名为 pin name106.0],利用总线工具画总线与 pin_name106.0]相连,选总线弹右键在 Properties中定义总线的名称为aa60],如要实现 a6.0与7474的输出管脚相连,可以在7474的输出管脚上画短线,并分别命名为a[o] a(1]、a12]、a3]、a[4]、a[5]、a[6],实现了总线与分支单线的连接,如下图所示 7447 OB 3.0 pin_namely(8.0] OD d LTN d RBIN BIN inst1 BCD TO 7SEG 、编译与仿真 1、编译 点击 Process菜单下的 Start Compilation进行编译,在编译中如出现错误,请在编译窗 口中读取编译错误说明,修改错误,直到编译通过为止。 2、仿真 Fe菜单下点New,选 University Program VWF进入波形仿真界面,如下图所示:
4、总线操作 这里只介绍一下总线的命名和总线的抽取操作,下图所示 7474 译码器输出有 7 个管 脚, 可以将输出管脚定义为总线类型,例如命名为 pin_name10[6..0],利用总线工具画总线与 pin_name10[6..0]相连,选总线弹右键在 Properties 中定义总线的名称为 aa[6..0],如要实现 aa[6..0]与 7474 的输出管脚相连,可以在 7474 的输出管脚上画短线,并分别命名为 aa[0]、 aa[1] 、aa[2]、 aa[3]、 aa[4] 、aa[5]、aa[6],实现了总线与分支单线的连接,如下图所示: 三、 编译与仿真 1、 编译 点击 Process 菜单下的 Start Compilation 进行编译,在编译中如出现错误,请在编译窗 口中读取编译错误说明,修改错误,直到编译通过为止。 2、 仿真 File 菜单下点 New,选 University Program VWF 进入波形仿真界面,如下图所示:
s Simulation Waveform Editor -E: /shiyan 2015xia/fpga/shiyanban1-shiyanban1 File Edit View Simulation Help v 国线县点三厘器题厢圖明 Master Time Bar: 0 ps Pointer: 959.8ns Value at ps 800ns 160.0 ns 240.0 ns 320, ns 在Name窗口弹右键选 nsert node or bus如下所示 Simulation Waveform Editor -E: /shiyan2015xia File Edit View Simulation Help弓 国线县点怎厘器)题 Master Time Bar: 0 Value at o ps 80.0 ns Name 0 Delete Insert Node or Bi 弹出窗口如下 Insert Node or Bus Name Type INPUT Cancel Value type:9-Level Node Finder. Disno Bus width: 1 Start index: 0 a Display gray code count as binary count 点击 Node finder进入仿真管脚选择界面如下
在 Name 窗口弹右键选 Insert Node or Bus 如下所示: 弹出窗口如下: 点击 Node Finder 进入仿真管脚选择界面如下:
(2 Node Finder Nodes Found Selected Nodes 点击List得到电路中的输入输出管脚列表,选择要方阵的管脚添加到右边窗口中,点击 oK后进入仿真波形设置界面如下 Simulation Waveform Editor -E: /shiyan 2015xia/fpga/shiyanban1-shi File Edit View Simulation Help V 国线从县点短删足回 Master Time Bar: 1.6us Pointer: 210. 22 Value at ps80;ns160,0ns24,0ns320, 1.6us name1 BO B1 粤mmn0% 选中要输入波形的管脚,在工具栏选择输入高低电平或者时钟信号,在Edit菜单中有仿 真结束时间设置和仿真时间单位设置,另外在相应管脚的波形设置窗口,可以右键选择 定区域,然后点击工具栏的高低电平可以任意设置输入波形。输入波形完成后在 Simulation菜单中选择功能仿真或时序仿真等 四、管脚定义和下载实现 1、管脚定义 在 Assignments菜单中选 Pin planner进入管脚定义窗口,在窗口下面的管脚列表窗口 中,双击对应的管脚行的 Location按钮,弹出管脚选择窗口,如下所示: x Named: o>Edt: X PIN_33 n PIN 114 In pin_name1 pin name2 -> pin_ name Ou o pin_ name 10[6] Output out pin _ name 10[5] Output PIN 38 >pin name 10[4 Output PIN_39 吗 pin name1o3 Output 图pme10 ou PIN 43 PIN 44
点击 List 得到电路中的输入输出管脚列表,选择要方阵的管脚添加到右边窗口中,点击 OK 后进入仿真波形设置界面如下: 选中要输入波形的管脚,在工具栏选择输入高低电平或者时钟信号,在 Edit 菜单中有仿 真结束时间设置和仿真时间单位设置,另外在相应管脚的波形设置窗口,可以右键选择 一定区域,然后点击工具栏的高低电平可以任意设置输入波形。输入波形完成后在 Simulation 菜单中选择功能仿真或时序仿真等。 四、 管脚定义和下载实现 1、管脚定义 在 Assignments 菜单中选 Pin Planner 进入管脚定义窗口,在窗口下面的管脚列表窗口 中,双击对应的管脚行的 Location 按钮,弹出管脚选择窗口,如下所示:
根据实验板说明书给出的各个外设对应的管脚号码,选择对应的管脚号。 管脚定义完成需要重新编译。 3、下载实现 在Tool菜单中选 Programmer进入下载页面,如下所示 Programmer-E: /shiyan 2015xia/fpga/shiyanban1-shiyanban1-[or File Edit View Processing Tools Window Help v 4 Hardware Setup.. USB-Blaster (USB-01 Mode: JTAG F Enable real-time ISP to allow background programming( for MAX II and MAXV de Device >u Start output files/shiyanban I. EP3C25Q240 0013C Auto Detect Delete 在 Hardware Setup中选择USB- Blaster,在 Add file中选择要下载的sof文件,该文件 在用户项目目录中的 output file子目录中,最后点击 Start按钮下载实现 五、 megafuntions数字锁相环的使用 在系统 megafuntions中,数字锁相环 altpll模块可以实现比较精确的时钟信号的分 频和倍频,下面简要介绍其设计步骤 选择 megafuntions中的I/0子目录中的 altpll如下所示: Libraries altdq ∵ altas 号 altiobuf in 号 altiobuf out .8 altlvds_x altvds tx *S atoll s altpll reconfig 点击OK后进入模块命名窗口,点Next进入锁相环设置界面,在输入时钟处输入 24Mz(实验板上外接的晶振时钟),如下
根据实验板说明书给出的各个外设对应的管脚号码,选择对应的管脚号。 管脚定义完成需要重新编译。 3、 下载实现 在 Tool 菜单中选 Programmer 进入下载页面,如下所示: 在 Hardware Setup 中选择 USB-Blaster,在 Add File 中选择要下载的 sof 文件,该文件 在用户项目目录中的 output_file 子目录中,最后点击 Start 按钮下载实现。 五、 megafuntions 数字锁相环的使用 在系统 megafuntions 中,数字锁相环 altpll 模块可以实现比较精确的时钟信号的分 频和倍频,下面简要介绍其设计步骤。 选择 megafuntions 中的 I/O 子目录中的 altpll 如下所示: 点击 OK 后进入模块命名窗口,点 Next 进入锁相环设置界面,在输入时钟处输入 24MHz(实验板上外接的晶振时钟),如下: