苏州科技大学天平学院电子与信息工程学院 数字系统设计技术 实验名称Quartus_II开发环境的熟悉与使用 学生姓名周妍智 学 号 1430119231 专业班级 通信1422 指导教师 刘传洋 年 月 日— 年 月 日 一、 实验目的 1. 熟悉Quartus II 的编译环境; 2. 了解在Quartus II 环境下运用VHDL 语言的编程开发流程,包括源程序的编写、 编译、模拟仿真及程序下载。 二、 实验内容 1. 二输入与非门电路的实现; 2. 其他简单门电路的实现; 三、 实验要求 1. 在Quartus II 环境下完成对电路工作情况的仿真模拟; 2. 完成配置程序的下载,并在实验板上对程序进行最终验证。 四、 实验步骤 1. 以二输入与非门电路为例,介绍在Quartus II 环境下的编程开发流程 (1) 启动Quartus II。 启动QuartusII 可以看到主界面由四部分构成:工程导向窗口、状态窗口、信息窗口 和用户区。如图1 所示。 图1 QuartusII 基本界面 (2) 利用向导,建立一个新项目。 在File 菜单中选择New Project Wizard 选项启动项目向导。 Step1:如图1.2 所示,分别指定创建工程的路径,工程名和顶层文件名。工程名和 顶层文件可以一致也可以不同。 一个工程中可以有多个文件,但只能有一个顶层文件。这里我们将工程名取为: simple,顶层文件名取为and2_gate。 Step2:点击Next>按钮,页面二是在新建的工程中添加已有Verilog HDL 文件的,本 实验不需做任何操作。 Step3:点击Next>按钮,进入页面三,完成器件选择。器件的选择是和实验平台的硬 件相关的,根据我们的实 验开发板,它使用的是Cyclone II 系列型号为EP2C8Q208C8 的器件,找到相应的器 件。 Step4:后面两步分别是对EDA 工具的设定和工程综述,都不作任何操作。点击Finish 完成工程创建。 (3) 新建一个VHDL 文件。 Quartus II 中包含完整的文本编辑程序(Text Editor),在此用VHDL 来编写源程 序。新建一个VHDL 文件,可以通过快捷按钮,或快捷键Ctrl+N,或直接从File 菜单 中选择New...都可以,弹出页式对话框后选择VHDL File,点击OK 按钮。 (4) VHDL 程序输入。 在用户区VHDL 文件窗口中输入源程序,保存时文件名与实体名保持一致。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity nand_gate2 is port(a,b:in std_logic; y:out std_logic); end nand_gate2; architecture behaviors of nand_gate2 is begin y<=a nand b; end behaviors; (5) 对源程序进行语法检查和编译。 使用 快捷按钮,对以上程序进行分析综合,检查语法规范;如果没有问题则编译 整个程序,使用 。如果 出现问题,则对源程序进行修改,直至没有问题为止。 (6) 仿真。 Quartus II 内置波形编辑程序(Waveform Editor)可以生成和编辑波形设计文件, 从而设计者可观察和分析模拟结果。Quartus II 中的仿真包括功能仿真 (Functionnal)和时序仿真(Timing),功能仿真检查逻辑功能是否正确,不含器 件内的实际延时分析;时序仿真检查实际电路能否达到设计指标,含器件内的实际延 时分析。两种仿真操作类似,只需在processing 菜单中选择Simulater Tool,在其 Simulater mode 中进行选择即可。 现以时序仿真为例,介绍仿真的具体操作过程: Step1、 新建一个波形文件:该过程与新建VHDL 文件类似,只是在弹出页式对话框后选择Vector Waveform File。 Step2、 在波形文件中加入所需观察波形的管脚:在Name 中单击右键,选择选项,出现Insert Node or bus 对话框,此时可在该对话框的Name 栏直接键入所需仿真的管脚名,也可点击Node Finder按钮,将所有需仿真的管脚一起导入。在Pins 下拉列表框中选择合适的选项,点击List 按钮,将所需仿真的管脚移至SelectNodes 框中。点击OK进入波形仿真界面。 Step3、 给输入管脚指定仿真波形 :分别选中输入管脚,使用波形编辑器: 对其输入波形进行编辑。最后保存波形文件。 Step4、点击simulator tool 会话框中的star按钮,进行波形仿真。注意:进行时序仿真前必须编译整个设计,产生时序仿真的网表文件。 (7) 下载文件的生成。 实验板上Cyclone II 器件使用的是JTAG 下载方式或AS(Active Serial Programming) 下载方式,因此必须将源文件转化为*.sof 或*.pof 结尾的下载用数据流文件,以供 后续下载到芯片中使用。下载文件的生成步骤如下: 图1.12 QuartusII 项目管理中的管脚分配窗口 Step1、分配管脚:选择Assignments 菜单的pins 选项,进入管脚分配界面。管脚分 配也与实际电路密切相关,在该程序中,两输入与门的两个输入引脚可指定为拨动开 11 关的两个拨键1和2,即对应着Cyclone II 芯片的81、82 管脚,输出引脚可指定为LED 灯D1,即对应Cyclone II 芯片的87 管脚。在管脚分配栏中,Filter 选项中选择 Pins :all,然后双击各端口对应的location 项,将程序中的输入输出脚分配到 Cyclone II 芯片的管脚上,并保存。 Step2、编译:使用进行整体编译,系统将自动生成*.pof 文件和*.sof 文件。 (8) 下载。实验电路板接7.5V-9V 电源,确保其供电正常;连接下载电缆到实验板上 的AS(串行)下载口;点击进入下载界面。点击Hardware Setup 选择所用下载工具, Mode 选项选择Active Serial Programming 方式。点击Add File...加入下载数据流 文件and2_gate.pof,进行下载。点击Start 按钮开始下载。下载完 成后关闭电源,拔下下载线,重新上电程序就可以运行了。(说明:当选择JTAG 下 载方式时应选择*.sof 下载文件,数据是直接下载到FPGA 芯片中,不过当断电后数 据即消失,下次上电后要重新下载数据;当选择AS(Active Serial Programming)下 载方式时应选择*.pof 下载文件,数据下载到存储芯片EPCS4 中,每次上电后FPGA 从 EPCS4 芯片中读取数据加载后运行,所以当以AS 模式下载完成后拔下下载线后重新 上电程序才运行,不过掉电后数据不消失,不需要重新下载。) 2. 其他简单门电路的实现 在数字电路中,二输入或门电路、异或门电路、与非门电路、或非门电路的逻辑 表达式真值表如下所示:表1.1、几种简单电路的逻辑表达式和真值表 表1 几种简单逻辑电路的表达式和真值表 下面分别给出这些门电路的行为描述方式(Behavioral)和逻辑寄存器传输描述方式 (RTL)。不难看出,行为描述方式和逻辑表达式十分接近,而寄存器传输描述方式 则是以真值表为依据进行编写的。 具体操作步骤如下: (1) 利用向导,建立一个新项目,工程名为exp1,顶层文件名也指定为logic_gate。 (2) 新建一个VHDL 文件。 (3) 在VHDL 文件中输入程序: RTL级描述方式源程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity logic_gate is port(a,b:in std_logic; c1,c2,c3,c4:out std_logic); end logic_gate; architecture behaviors of logic_gate is begin c1<=a or b; c2<=a xor b; c3<=a nand b; c4<=a nor b; end behaviors; 行为级描述方式源程序: library ieee; 13 use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity logic_gate is port(a,b:in std_logic; c1,c2,c3,c4:out std_logic); end logic_gate; architecture reg_style of logic_gate is signal sss:std_logic_vector(1 downto 0); begin sss<= a & b; process(sss) begin CASE (sss) IS WHEN "00" => c1<='0';c2<='0';c3<='1';c4<='1'; WHEN "01" => c1<='1';c2<='1';c3<='1';c4<='0'; WHEN "10" => c1<='1';c2<='1';c3<='1';c4<='0'; WHEN "11" => c1<='1';c2<='0';c3<='0';c4<='0'; WHEN OTHERS => c1<='0';c2<='0';c3<='0';c4<='0'; END CASE; end process; end reg_style; (4) 进行语法检查和综合编译。 (5) 进行时序仿真。 (6) 分配管脚,生成下载文件。 (7) 下载。 五、 实验结果 1、波形仿真图如下: 图2 波形仿真图 2、当程序下载成功之后,实验板上出现的现象:当开关1和2同时置“1”时,LED小灯才会被点亮,与理论相符合。 本文来源:https://www.wddqw.com/doc/ad67ae225b1b6bd97f192279168884868762b8e8.html