vhdl实验一

  • 格式:docx
  • 大小:359.57 KB
  • 文档页数:6

苏州科技大学天平学院电子与信息工程学院数字系统设计技术实验名称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 isport(a,b:in std_logic;y:out std_logic);end nand_gate2;architecture behaviors of nand_gate2 isbeginy<=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 isport(a,b:in std_logic;c1,c2,c3,c4:out std_logic);end logic_gate;architecture behaviors of logic_gate isbeginc1<=a or b;c2<=a xor b;c3<=a nand b;c4<=a nor b;end behaviors;行为级描述方式源程序:library ieee;13use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity logic_gate isport(a,b:in std_logic;c1,c2,c3,c4:out std_logic);end logic_gate;architecture reg_style of logic_gate issignal sss:std_logic_vector(1 downto 0);beginsss<= a & b;process(sss)beginCASE (sss) ISWHEN "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小灯才会被点亮,与理论相符合。