本实验指导书的所有实验基于EDA实验台进行。采用软件为Quartus II ,硬件芯片为ALTERA 的Cyclone II 系列FPGA芯片EP2C8Q208C8。
使用本EDA实验台进行数字逻辑实验,不需要进行手工接线。实验工作分3步进行: 1:在PC机上,基于Quartus II软件进行原理图(逻辑图)的设计,设计完成后,需要经过引脚锁定、编译下载到EDA实验台上的FPGA芯片中。下载完成后,即在FPGA芯片中形成物理的逻辑电路。此步工作相当于传统实验的基于物理器件的接线操作。 2:在PC机上仿真,验证逻辑的正确性
3:下载到板子上,进行物理验证(需要安装USB Blaster线缆驱动,具体安装方法自行上网查找)。此过程可以用万用表、LED指示灯、七段码等验证实验的正确性。
实验的注意事项
1:Quartus II的工程名和顶层实体名字必须为英文,且实体名字必须和VHDL代码的实体名字严格一致。存储路径最好不要含中文和空格。
2:Quartus II的设计中所有的命名中,名字不要有空格。 3:Quartus II的原理图方式设计中放置“input”“ouput”引脚符号时,引脚符号的虚线框和原件的虚线框要刚好对上,以保证连接上,虚线框分开和部分重叠都不能正确连接。
4:所用到的时钟信号必须锁定到28脚,具体原理参考“实验用到的资源和原理”部分。
实验报告格式和内容
书写实验报告,语言要简练,书写端正、作图正规。按照如下格式和内容书写。
注意:试验5为综合性实验,其格式和实验1到4不同,同时其需要有封面并装订成册。
一般实验(实验1――4)
项目名称
一、实验目的及要求 二、实验仪器设备 三、实验内容、结果 四、实验总结
包括实验中遇到的问题,如何解决遇到的问题;实验后的认识和感悟等。
综合性实验(实验6)
项目名称
一、实验内容 二、实验目的及要求 三、实验仪器设备 四、实验结果 五、实验总结
2
实验用到的资源和原理
需要的资源: 1:逻辑开关
2:发光二极管指示灯 3:20M时钟
数字逻辑实验需要用到的输入为逻辑0、1,由逻辑开关提供,实验板提供了5个逻辑开关,为KEY_OK,KEY_UP,KEY_DOWN,KEY_LEFT,KEY_RIGHT,和FPGA的连接关系如下表1-1。输出的逻辑0、1接到发光二极管,实验台提供了4个发光二极管。实验平台同时提供七段码,具体见表1-1中。
表1-1 FPGA引脚 逻辑开关 PIN_6 PIN_3 PIN_5 PIN_4 PIN_10 时钟 PIN_28 七段码 PIN_37 PIN_39 PIN_40 PIN_41 PIN_43 PIN_44 PIN_45 PIN_46 DIG[0] DIG[1] DIG[2] DIG[3] DIG[4] DIG[5] DIG[6] DIG[7] PIN_15 PIN_30 PIN_31 PIN_33 PIN_34 PIN_35 SEL[5 SEL[4 SEL[3 SEL[2 SEL[1 SEL[0 20M PIN_143 喇叭 KEY_OK KEY_UP KEY_LEFT FPGA引脚 发光二极管 PIN_47 PIN_48 PIN_57 LED[0] LED[1] LED[2] LED[3] KEY_DOWN PIN_56 KEY_RIGHT 从表中可以看出,具体原理如下图0所示(只列出了两个逻辑开关和两个发光二极管,其余同理)。通过拨动逻辑开关实现逻辑0、1的输入,输出的逻辑0、1通过发光二极管指示,1亮0灭。时序电路的实验要用到时钟,由28脚的提供,原理如图0所示。
3
图0
七段码部分原理如下图,其为共阳极数码管,采用动态扫描方法实现6位数码管的同时显示。
4
实验1:基本逻辑门电路功能测试(采用分立元件)
一、实验目的
1:掌握各种门电路的逻辑功能及测试方法。 2:学习用与非门组成其它逻辑门电路。
二、实验用的仪器、仪表
TEC—5实验箱 74LS00二输入四与非门 三态门74LS125
三、实验原理
与非门的逻辑功能是:当输入端中有一个或一个以上低电平时,输出端为高电平。只有当输入端全为高电平时,输出端才为低电平(即有“0”得“1”,全“1”出“0”)。
三态输出门是一种特殊的门电路。它与普通的逻辑门电路不同,它的输出状态除了高、低电平两种状态(均为低阻状态)外,还用第三种状态,即高阻态。处于高阻态时,电路与负载之间相当于开路。三态门主要用途之一是实现总线传输。三态输出门符号与功能表如下(此例以高有效的使能器件为例)。
C0 YA C1
输出高阻 四、实验内容
1:测试二输入与非门的逻辑功能
与非门的输入端接逻辑开关电平,输出端接发光二极管。按表1-2所示测试与非门,并将测试结果填入表中。
A B132F输入
FA•B
表1-1
输出 对地电位 逻辑状态 A 0 0 B 0 1 5
1 1 0 1
2:学习用二输入与非门构成其他逻辑电路的方法,并测试。 与门逻辑功能实现:
根据布尔代数的理论,FA•BA•B,所以用2个与非门即可实现与门逻辑功能。输入A、B接逻辑开关,输出端接发光二极管。参考表1-1,设计表格,并将测试结果填入表中。
AB 或门逻辑功能实现:
F
根据布尔代数的理论,FA•BAB,所以用3个与非门即可实现或门逻辑功能。输入A、B接逻辑开关,输出端接发光二极管。参考表1-1,设计表格,并将测试结果填入表中。
AFB
异或门逻辑功能实现:
根据布尔代数的理论,FABAB,根跟据此异或逻辑表达式经过变换,逻辑图如下,请自行验证此逻辑图的正确性,同时思考如果直接据逻辑表达式画逻辑图,效果如何,近而体会变换的作用。输入A、B接逻辑开关,输出端接发光二极管。参考表1-1,设计表格,并将测试结果填入表中。
ABF
3:测试三态门的逻辑功能 三态门输入端、使能端分别接逻辑开关,输出端接发光二极管。将测试结果填入表1-3中。 表1-3
输入 输出
C A Y 0 0 1
6
1 0 1
五、实验报告
记录、整理实验结果,并用布尔代数的理论进行分析
实验提示:
1、K15—K0为普通的电平开关,为输入端提供高低电平信号,拨上去为1,拨
下去为0。
2.12个发光二极管位于实验箱的下部中间位置,用于指示信号的高低电平,信号输入孔L0—L11接入高电平时,相应的二极管点亮,信号输入孔L0—L11接入低电平时,相应的二极管熄灭。
实验用芯片内部逻辑图
7
实验2:译码器及其应用
一、实验目的
1:理解VHDL语言的设计流程。 2:掌握译码器的逻辑功能及应用。
二、实验用的仪器、仪表
EDA实验板(台) 万用表 PC机
三、实验原理
译码器是一个多输入、多输出的组合逻辑电路。它的作用是把给定的代码进行“翻译”,变成相应的状态。译码器在数字系统中有广泛的用途,如代码变换、数据分配、存储器寻址、组合控制信号等。
本实验以74138为主要实验对象,图2-1为74138的逻辑图和管脚排列图。其中A2,A1,A0为地址输入端,Y0~Y7为译码输出端,E1,E2,E3为使能端。表2-1为74138的功能表,当E1=1,E2+E3=0时,器件使能,地址码所指定的输出端有信号(为0)输出,其余输出端均为无信号(全为1)输出。当E1=0和E2+E3=0两个条件不能同时满足时,译码器被禁止。所用的输出同时为1。
图2-1 74138的逻辑图和管脚排列图
表2-1
输入 1 1 1 1 1 1 1 1 0
输出 0 0 1 1 0 0 1 1 X 0 1 0 1 0 1 0 1 X 0 1 1 1 1 1 1 1 1 8
E1 E2+E3 A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 0 0 0 0 0 0 0 0 X 0 0 0 0 1 1 1 1 X 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 X 1 X X X 1 1 1 1 1 1 1 1 四、实验内容
1:根据功能表,用VHDL语言设计74138,具体步骤如下(可参考实验视频“38
译
码器实验流程.mp4”):
1) 建立一个工作目录,用quartusII-File-New project wizard方式以新建目录为工
作目录建立一个采用VHDL file作为输入的工程,在完成基于VHDL语言实现138设计和仿真验证之后,打开File—Creat Update—Creat Symbol Files for Current File,从而创建一个自己设计的138 。
参考VHDL代码如下:
library ieee;
use ieee.std_logic_1164.all; --use ieee.numeric_std.all;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY decoder3to8 IS
PORT (A2,A1,A0,E3,E2,E1 : IN STD_LOGIC;
Y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );
END ENTITY decoder3to8 ;
ARCHITECTURE BHV OF decoder3to8 IS
SIGNAL A: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN
A <= A2 & A1 & A0; PROCESS ( A )
BEGIN
IF((E1 = '1')and (E2 = '0')and(E3 = '0')) then
else
Y <= \"11111111\"; END IF;
CASE (CONV_INTEGER(A)) IS
WHEN 0 => Y <= \"11111110\"; WHEN 1 => Y <= \"11111101\"; WHEN 2 => Y <= \"11111011\"; WHEN 3 => Y <= \"11110111\";
WHEN 4 => Y <= \"11101111\"; WHEN 5 => Y <= \"11011111\";
WHEN 6 => Y <= \"10111111\"; WHEN 7 => Y <= \"01111111\"; WHEN OTHERS =>Y <= \"11111111\";
END CASE;
END PROCESS; END ARCHITECTURE BHV;
9
2) 重新建立一个目录,把步骤1中的工程文件目录打开,找到对应的*.bsf 核*.vhd,
将此两个文件拷贝到当前目录。关闭前一个工程,以当前新建立的目录为工作
目录,新建一个工程,具体方式如同步骤1。工程建立完毕,首先选择File->New,选择Block Diagram/Schematic File,按OK。出现如下窗口,用鼠标展开Project(如下图标识所示),选中其中的我们设计的138。
用鼠标展开此处
10
2:用自己设计的74138,用原理图方式验证74138逻辑功能,视频中有详细步骤。
将E1,E2,E3和地址输入端A2、A1、A0和开关相接。五个输出端接到LED指示灯。拨动逻辑开关,按表2-2测试功能,并记录测试结果。
表2-2 输入 1 1 1 1 1 1 1 1 0 X 0 0 0 0 0 0 0 0 X 1 0 0 0 0 1 1 1 1 X X 0 0 1 1 0 0 1 1 X X 0 1 0 1 0 1 0 1 X X 输出 E1 E2+E3 A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
3:重复上述验证138逻辑功能的实验步骤,用74138实现逻辑函数。即使用已经设计的138器件,用原理图方式实现如下逻辑函数,其中7420位四输入与非门,可以向放input和output引脚一样,直接输入7420即可找到,直接引用已有的器件,也可以自行设计一个四输入与非门(步骤同设计138一样)。
ZABCABCABCABC,实现该逻辑函数电路如图2-3,将测试结果记录在表2-3
中。
图2-3
表2-3
输入 E1 E2+E3 A B C 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 输出 11
1 0 1 1 1
4、实验板(箱)端的工作
“74138逻辑功能的测”和“用74138实现逻辑函数”部分工作主要完成对逻辑电路功能的测试,采用对输入逻辑开关的切换,实现不同的“0”“1”输入,从而输出端输出不同的逻辑电平,使指示灯亮或灭。完成实验内容中各个表的填入,完成实验工作。
五、实验报告
1:将测试结果填入相应的表格
1) 提供VHDL语言源代码 2) 验证填写表2-2 2-3
2:对实验结果进行分析讨论总结写出实验结论。
12
实验3 加法器
一、实验目的
1、了解半加器、全加器的原理及实现的方法。
2、测试半加器、全加器的逻辑功能。掌握组合逻辑电路的分析方法。 3、学习四位二进制全加器的使用方法。
二、实验用的仪器、仪表
EDA实验台 万用表 示波器 PC机
三、实验原理
算术运算是数字系统的基本功能,更是计算机中不可缺少的基本单元。半加器和全加器是算术运算电路的基本单元,它们是完成一位二进制数相加的一种组合逻辑电路。
两个一位二进制数的加法运算,真值表如表3-1所示。其中S表示和数,C表示进位数。这种加法运算只考虑了两个加数本身,而没有考虑来自低位的进位,所以称为半加器。由真值表得:S=A⊕B C=A•B
表3-1 被加数A 0 0 1 1 加数B 0 1 0 1 和S 0 1 1 0 进位C 0 0 0 1 全加器能够进行加数、被加数和来自低位的进位数相加,并根据求和结果给出该位的进位信号,真值表如表3-2所示。由真值表得:Si = Ai⊕Bi⊕Ci-1 Ci =(Ai⊕Bi) •Ci-1+ Ai •Bi
表3-2
Ai 0 0 0 0 1 1 1 1 Bi 0 0 1 1 0 0 1 1 Ci-1 0 1 0 1 0 1 0 1 Si 0 1 1 0 1 0 0 1 Ci 0 0 0 1 0 1 1 1 多位数加法器——串行进位加法器。若有多位数相加,可采用并行相加串行进位的方式来完成。例如有两个四位二进制数A3 、A2 、A1、A0和B3 、B2 、B1、B0相加,可以采用集成的电路芯片7483完成。
四、实验内容
1、 分析、测试由与非门组成的半加器的逻辑功能
13
由与非门组成的半加器电路如图5-1所示。
ANAND2F2NAND2NAND2instF1NAND2Sinst1inst3Binst2F3NAND2Cinst4图5-1 与非门组成的半加器电路
① 请写出图3-1的逻辑表达式
F1= F2= F3= S= C= ② 根据表3-3测试半加器的逻辑功能,并记录之。
表3-3 A 0 0 1 1 B 0 1 0 1 F1 F2 F3 S C
2、 分析、测试全加器的逻辑功能
分析、测试由异或门和与非门组成的全加器,电路如图5-4所示,完成表5-5的测试。
Si = Ai⊕Bi⊕Ci-1 XORFAAFABFACINPUTVCCINPUTVCCXOROUTPUTFSinst18inst17NAND2NAND2INPUTVCCinst10NAND2OUTPUTFCinst11Ci =(Ai⊕Bi) •Ci-1+ Ai •Bi
inst12
图3-4 异或门和与非门组成的全加器
表5-5 Ai 0 0 1 1
Bi 0 1 0 1 Ci-1 0 0 0 0 14
Si Ci 0 0 1 1 0 1 0 1 1 1 1 1
3.用VHDL语言写出一个带低位进位的2位全加器,用3个Led指示灯显示结果
五、实验步骤
具体步骤参考实验1部分,所不同的是:
此实验的逻辑图中用的原件为双输入与非门NAND2,异或门XOR,加法器7483,完成的原理图如图3-6所示,具体端口名字可以自行命名。所有的输入锁定到逻辑开关,输出锁定到LED指示灯。
HalfAddAINPUTVCCNAND2NAND2NAND2inst1inst3NAND2OUTPUTHalfAddSuminstHalfAddBINPUTVCCinst2NAND2OUTPUTHalfAddCarryinst4XOROUTPUTHAAHABINPUTVCCINPUTVCCHfASinst16NAND2NAND2OUTPUTHfACinst6inst7XORFAAFABFACINPUTVCCINPUTVCCXOROUTPUTFSinst18inst17NAND2NAND2INPUTVCCinst10NAND2OUTPUTFCinst11inst12图C03-6 7483
六、实验报告
B1B2S2S4整理实验数据、图表,并对实验结果进行分析。 VCCA4FULL ADDERinst13 15
实验4 触发器的设计和应用
一、实验目的
1:理解VHDL语言的设计流程。
2:掌握触发器逻辑功能和寄存器的原理。
二、实验用的仪器、仪表
EDA实验板(台) 万用表 PC机
三、实验原理
触发器具有两个稳定状态,用以表示逻辑状态0和1。在一定的外加信号作用下,可以从一种稳定状态翻转为另一稳定状态。它是一个具有记忆功能的二进制信息存储器件。是构成各种时序电路的最基本的逻辑单元。有RS触发器、D触发器、JK触发器等,本实验重点设计和验证用的最为广泛的D触发器。 D触发器的状态方程为Qn1D,其输出状态的更新发生在CP脉冲的上升沿。触发器
的状态只取决于时钟到来前D端的状态。D触发器的功能表如表4-1所示。
表4-1
输 入 输 出
Rd Sd CP D Qn+1 Qn+1
1 0 × × 1 0
0 1 × × 0 1
1 1 ↑ 1 1 0
1 1 ↑ 0 0 1
Qn 1 1 ↓ × Qn
四、实验内容
1、 用VHDL语言设计符合表4-1逻辑功能的D触发器,生成逻辑图,具体生成步骤同
译码器实验,参考视频。
2、 用由D型触发器组成的三位缓冲寄存器测试
由四个D型触发器组成的四位缓冲寄存器的原理如图4-1所示。
16
图4-1 四位缓冲寄存器
⑴ 将D2~D0接逻辑开关,将Q2~Q0接发光二极管显示。将CLR接一开关,先使它接地,
即送入逻辑0,实现触发器清零,清零完毕接高电平1, CP接一开关,实现上升沿的触发。
⑵ 按表3-2所示,给D2~D0依次键入000~111各种不同组合的数据,给CP加单步脉冲信
号,观察Q2~Q0的变化状态,并记录之。
表3-2 D2 D1D0 000 011 101 111
Q2 Q1Q0 十进制的意义 五、实验报告
1:将测试结果填入相应的表格
1) 提供VHDL语言源代码
2) 验证填写表4-1 4-2
2:对实验结果进行分析讨论总结写出实验结论。
17
实验5:计数器
一、实验目的
1:理解VHDL语言的设计流程。
2:掌握计算器的逻辑功能原理和应用。
二、实验用的仪器、仪表
EDA实验板(台) 万用表 PC机
三、实验原理
计数器是一个用以实现计数功能的时序部件。它不仅可以用来计脉冲数,还常用作数字系统的定时,分频和执行数字运算以及其他特定的逻辑功能。
计数器种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计数器、十进制计数器和任意进制计数器。根据计数器的增减趋势,又分为加法、减法和可逆计数器。
五、 实验内容
1.写一个带清零端的16位计数器,并仿真 2.写一个100分频的分频器,并仿真
3.写一个带清零端的加/减可逆四位二进制计数器,计数值用指示灯显示,要求计数器的输入脉冲为2S,黑金盒自带脉冲2MHZ,引脚为28脚。
六、 实验报告
1:将测试结果填入相应的表格
1) 提供VHDL程序 2) 验证表4-1,填表
3) 画出24进制的161实现逻辑图,描述实验结果 2:对实验结果进行分析讨论总结写出实验结论。
18
实验6移位寄存器的设计和应用
一、实验目的
1:理解VHDL语言的设计流程。 2:掌握移位寄存器的功能和应用
二、实验用的仪器、仪表
EDA实验板(台) 万用表 PC机
三、实验原理
移位寄存器是具有移位功能的寄存器。是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。移位寄存器应用很广,可构成移位寄存器型计数器;顺序脉冲发送器;串行累加器;可用作数据转换,即把并行数据转换为串行数据,或把串行数据转换为并行数据。
四、实验内容
移位寄存器测试
图5-1所示是由四个D型触发器组成的左移移位寄存器。
DINDFFDPRNQ0QD1DFFDPRNQ1D2QDFFDPRNQ2D3QDFFDPRNQ3QCLRNinstCLRNinst2CLRNinst3CLRNinst4CPCLR
图5-1 D型触发器组成的左移寄存器 四位左移移位寄存器的功能是,当输入端DIN置1时,第一个触发器的D0=1,当CP的上升沿到来时,Q0=1,这时第二个D触发器的D1=1,但要等下一个CP上升沿到来时才能有Q1=1……。这样随着CP脉冲的变化,移位寄存器的置位就逐个向左移,故称为左移寄存器。
根据上述原理,可以使用4个D触发器构成四位左移移位寄存器。正确设置好4个触发器的连接及其清零引脚CLRN和脉冲信号CLK后,按表3-3所示逐个键入脉冲信号,观察 Q3~Q0的变化,并记录,要求移位前清零,即没有脉冲来的初态为0000,DIN=1。
使CLK、DIN、CLRN分别接逻辑开关,先,使CLR接地,即按一下键盘,实现清零,DIN端的键盘不需要按下恰好为1,按动CLK端的逻辑开关,观察现象并记录于表5-1
表5-1 脉冲个数 Q3Q2Q1Q0 功能 19
0 1 2 3 4
0 0 0 0 如果要构成一个四位右移寄存器,应将图5-2的连接线适当更改,想想怎样改。
五、实验报告
1:将测试结果填入相应的表格
3) 提供VHDL语言源代码 4) 验证填写表5-1
2:对实验结果进行分析讨论总结写出实验结论。
20
附加实验:数字系统的设计
一、实验目的
1:掌握VHDL语言的设计流程。
2:综合应用学过的组合和时序逻辑电路知识,设计一简易秒表数字系统。
二、实验用的仪器、仪表
EDA实验板(台) 万用表 PC机
三、实验原理
本实验为综合设计性实验,设计实现秒表。要用到本门课的众多知识点,如多路选择器、译码器、分频器、计数器等。
五、 设计要求
1:能实现0到59秒的自动周而复始计时 2:通过键盘能暂停计时
3:通过键盘能倒计时59到0,到计时结束,发蜂鸣器报警 4: 通过键盘能复位计时从0开始 5: 计时结果通过两位七段码显示
6:附加:如何考虑键盘的消抖(可选)
六、 实验报告
1:将系统用框图的方式描述 2:写VHDL代码
3:对实验结果进行分析讨论总结写出实验结论。
21
因篇幅问题不能全部显示,请点此查看更多更全内容