数字逻辑实验指导书Word文档格式.docx
《数字逻辑实验指导书Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字逻辑实验指导书Word文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
y7
y6
y5
y4
y3
y2
y1
y0
1
译码器不需要像编码器那样用一个输出端指示输出是否有效。
但可以在输入中加入一个输出使能端,用来指示是否将当前的输入进行有效的译码,当使能端指示输入信号无效或不用对当前信号进行译码时,输出端全为高电平,表示无任何信号。
本例设计中没有考虑使能输入端,读者自己设计时可以考虑加入使能输入端时,程序如何设计。
三、实验内容
本实验通过VHDL实现一个3—8译码器功能模块,通过改变输入a[2..0]的值,从而改变输出y0—y7的数值。
实验中信号与管脚连接见下表
信号名称
FPGAI/O名称
功能说明
Pin_P9
3位输入
Pin_R9
Pin_T9
Pin_A3
8位输出
Pin_B4
y2
Pin_A4
y3
Pin_B5
y4
Pin_A5
y5
Pin_C6
y6
Pin_B6
y7
Pin_A6
四、实验步骤
下面将通过这个实验,向读者介绍在Quartus软件下项目文件的生成、编译、管脚分配以及时序仿真等的操作过程。
(本实验指导书使用QuartusPrime17.1Lite版本)
1.建立工程
1)选择开始菜单下或者桌面上的Quartus图标,运行Quartus软件,进入下图所示界面。
选择软件中的菜单File>
New或者界面中的New图标,选择新建NewQuartusPrimeProject,进入新建工程对话框。
3)点击NEXT进入工程设定对话框如下图所示。
第一个输入框为工程工作文件夹地址输入框,设定好后所有工程相关文件将统一存放在该文件夹下;
第二个输入框为工程名输入框;
第三个输入框为该工程的顶层文件名输入框。
本例中工程文件夹名、工程名、顶层文件名都为decoder38。
4)点击NEXT,进入工程类型对话框,选择Emptyproject。
5)点击NEXT,进入工程文件对话框。
在该界面下我们可以添加工程所需的文件,这里由于是新建工程故不添加任何文件。
6)点击NEXT,进入器件选择对话框,这里我们选择Family>
CycloneⅣE;
Packege>
FBGA;
Pincount>
256然后选择下方芯片EP4CE10F17C8即FPGA平台主芯片。
7)点击NEXT进入EDA工具设置对话框,如下图所示,在这里我们将仿真工具设置为ModelSim-Altera,即选择Simulation>
ModelSim-Altera>
VHDL。
8)点击NEXT进入工程信息汇总对话框。
该对话框汇总了本工程中所有的设置信息,确认无误后点击NEXT进入工程编辑界面。
2、QuartusPrime开发环境简介
建立工程后就可以进入QuartusPrime集成开发环境(如下图所示)
从图中可以看出QuartusPrime集成开发环境大致可以分为4个窗口,最左上角为工程管理窗口,包括原代码文件、约束文件和仿真测试文件的管理;
左中窗口为工程流程向导,涵盖FPGA开发过程中分析、综合、管脚分配、布局布线及静态时序分析的整个流程;
右边主窗口为各种文件和报表的打开窗口;
最下方窗口为工程信息框,显示综合过程信息等内容。
有了以上基本认识,下面我们就来实现本实验指导书的第一个实验3-8译码器。
3、工程实现
1)如下图所示,点击菜单File>
New,在新建菜单下选择VHDLFile。
2)在新建的文件内输入相应的设计代码,代码如下:
LIBRARYIEEE;
USEIEEE.std_logic_1164.ALL;
ENTITYdecoder38IS
PORT(a:
INstd_logic_vector(2DOWNTO0);
y:
OUTstd_logic_vector(7DOWNTO0));
ENDdecoder38;
ARCHITECTURErtlOFdecoder38IS
BEGIN
PROCESS(a)
BEGIN
CASEaIS
WHEN"
000"
=>
y<
="
00000001"
;
001"
00000010"
010"
00000100"
011"
00001000"
100"
00010000"
101"
00100000"
110"
01000000"
111"
10000000"
WHENOTHERS=>
00000000"
ENDCASE;
ENDPROCESS;
ENDrtl;
3)代码输入完成确认无误后,选择菜单Processing/AnalyzeCurrentFile或点击编辑窗口中工具栏图标
,进行HDL代码语法分析。
4)语法分析无误后,选择Processing/Start/StartAnalysis&
Synthesis,或者按下快捷键Ctrl+K,或者点击工具栏图标
,进行HDL文件的分析和综合。
5)分析和综合完成后就可以对工程进行管脚分配。
可以利用QuartusPrime中PinPlanner进行可视化的管脚分配。
点击上方工具条中的PinPlanner图标,或者选择菜单栏中的Assignments>
PinPlanner。
此时应看到如下界面
在界面下方的窗口中的输入输出信号后,输入对应的FPGA管脚标号(或将信号拖拽到上方的Package图中对应的管脚上),并指定I/O输入输出标准。
(远程云端硬件实验平台I/O电压电流均为3.3V2mA)。
管脚设置完成后如图,
关闭PinPlanner即完成管脚分配
6)管脚约束完成后,就可以指定下载所需文件的类型。
远程云端硬件实验平台下载需要.rbf类型的下载文件,该文件的生成需要在工程中设定后才可由QuartusPrime软件自动产生。
具体方法如下,首先点击菜单栏中的Assignments>
Device,选择DeviceandPinOptions。
然后选择ProgrammingFiles,在右侧对话框中勾选RawBinaryFile(.rbf),点击OK确认。
此时工程全编译后Quartus软件即会自动生成远程云端实验平台所需的.rbf下载文件。
7)点击菜单栏中的Processing>
StartCompilation或者图标栏中的
完成整个工程的编译。
8)如果将文件下载到本地开发板,则点击菜单栏中Tools>
Programmer或者图标栏的Programmer,进入硬件编程管理界面。
将AlteraUSBBlaster的USB端连接电脑,JTAG端连接开发板JTAG口,打开开发板电源。
将HardwareSetup选择成USB-Blaster,Mode选择成JTAG,同时选择工程文件夹下的.sof文件作为写入文件。
点击Start,将.sof文件下载到开发板上的FPGA中,本工程完成。
五、实验报告
1、进一步熟悉和理解QuartusPrime软件的使用方法和工程实现的流程。
2、仿照3-8译码器实现数字电路中最基本的与门、或门、非门及比较器、多路选择器等基本逻辑电路的VHDL代码。
实验二4选1多路选择器设计
1、了解多路选择器设计的原理。
2、进一步熟悉QuartusPrime软件的使用方法和VHDL输入的全过程。
3、进一步掌握实验系统的使用。
多路选择器是数字系统设计中经常使用的模块,其特点是在选择信号控制下,输出端与确定的数据通道联通,并随数据通道的信号变化而变化。
在本实验中,我们将实现一个4选1多路选择器,因此将有一个2位的选择信号,4个数据输入信号和1个数据输出信号。
本实验要求通过VHDL实现一个4选1多路选择器。
通过选择信号sel[1..0]实现数据输出通路dataout在不同的数据输入通路datain0—datain3之间切换,并观察输出信号随输入信号的变化而变化。
实验中信号与管脚连接如下表
sel[0]
通路选择信号
sel[1]
datain0
数据输入通路
datain1
Pin_N8
datain2
Pin_P8
datain3
Pin_R8
dataout
数据输出通路
1、打开QuartusPrime软件,新建一个工程。
2、建完工程之后,再新建一个VHDL空白源文件。
3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,读者可参照光盘中提供的示例程序。
4、编写完VHDL程序后,保存。
5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。
6、编译仿真无误后,依照拨动开关、LED与FPGA的管脚连接表进行管脚分配,然后进行综合和实现。
7、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。
观察实验结果是否与自己的编程思想一致。
五、实验报告
1、绘出仿真波形,并作说明。
2、进一步熟悉QuartusPrime软件
3、尝试编写VHDL程序,实现多路分配器功能。
4、将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。
实验三异步清零和同步使能加法计数器设计
1、了解二进制计数器的工作原理。
2、进一步熟悉QuartusPrime软件的使用方法和VHDL输入。
3、理解时钟在时序逻辑电路中的作用。
二进制计数器是应用最多、功能最全的计数器之一,含异步清零和同步使能的加法计数器的具体工作过程如下:
在时钟上升沿的情况下,检测使能端是否允许计数,如果允许计数(定义使能