vhdl实验一

时间:2022-07-12 12:11:33 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
苏州科技大学天平学院电子与信息工程学院

数字系统设计技术





实验名称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 下载方式或ASActive Serial Programming 下载方式,因此必须将源文件转化为*.sof *.pof 结尾的下载用数据流文件,以供 后续下载到芯片中使用。下载文件的生成步骤如下: 1.12 QuartusII 项目管理中的管脚分配窗口

Step1、分配管脚:选择Assignments 菜单的pins 选项,进入管脚分配界面。管脚分 配也与实际电路密切相关,在该程序中,两输入与门的两个输入引脚可指定为拨动开 11

关的两个拨键12,即对应着Cyclone II 芯片的8182 管脚,输出引脚可指定为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、当程序下载成功之后,实验板上出现的现象:当开关12同时置“1”时,LED小灯才会被点亮,与理论相符合。


本文来源:https://www.wddqw.com/doc/ad67ae225b1b6bd97f192279168884868762b8e8.html