数字电路实验指导书.docx
《数字电路实验指导书.docx》由会员分享,可在线阅读,更多相关《数字电路实验指导书.docx(81页珍藏版)》请在冰豆网上搜索。
数字电路实验指导书
数字电子技术实验
指导书
江苏科技大学电子信息学院
目录
实验一基本逻辑门器件功能与参数测试1
实验二组合逻辑电路的分析与设计6
实验三时序逻辑电路分析与设计11
实验四基于CPLD/FPGA的组合逻辑电路设计16
实验五基于CPLD/FPGA的时序逻辑电路设计23
实验六状态机初步28
实验七音乐播放电路34
附录
(一)常用电路的Verilog实现范例40
附录
(二)QuartusII使用简明教程49
附录(三)部分集成电路引脚排列60
实验一基本逻辑门器件功能与参数测试
一、实验目的
1.掌握集成逻辑门基本的功能。
2.掌握数字器件主要参数的测试方法。
二、实验设备及器件
1.EEEC-010B实验箱
2.74LS00四二输入与非门
3.74HC00四二输入与非门
4.74LS02四二输入或非门
5.74LS86四二输入异或门
6.74LS125三态缓冲器(三态门)
三、实验内容及步骤
为了测试们电路的逻辑功能,门电路的输入端应接相应的电平信号(利用实验箱上的拨动开关,输入高/低电平),输出接LED发光管显示输出电平状态(利用实验箱提供红、黄、绿三种色彩的LED发光管,做输出显示,注意该实验箱LED显示部分,高电平驱动LED点亮,低电平驱动LED熄灭)。
1.与非门逻辑功能测试
用74LS00(四二输入与非门)进行实验,引脚图如图1-1所示,按照图1-2所示接线
图1-1
图1-2
根据表1-1,改变输入端A、B的电平状态,观测输出显示并将结果填入表中,将实验实测结果与理论结果对比给出结论。
表1-174LS00测试表
输入
输出Y
A
B
理论值
实测值
0
0
0
1
1
0
1
1
2.或非门逻辑功能测试
用74LS02(四二输入或非门)进行实验,引脚图如图1-3所示,按照图1-4所示接线
图1-3
图1-4
根据表1-2,改变输入端A、B的电平状态,观测输出显示并将结果填入表中,将实验实测结果与理论结果对比给出结论。
表1-274LS02测试表
输入
输出Y
A
B
理论值
实测值
0
0
0
1
1
0
1
1
3.异或门逻辑功能测试
用74LS86(四二输入异或门)进行实验,引脚图如图1-5所示,按照图1-6所示接线,
图1-5
图1-6
根据表1-3,改变输入端A、B的电平状态,观测输出显示并将结果填入表中,将实验实测结果与理论结果对比给出结论。
表1-374LS86测试表
输入
输出Y
A
B
理论值
实测值
0
0
0
1
1
0
1
1
4.*三态门逻辑功能测试
A.用74LS125(三态门)进行功能验证实验,引脚图如图1-7所示,按照图1-8所示接线,注意将输出接到逻辑笔观测输出状态
图1-7图1-8
根据表1-4,改变输入端D、EN的电平状态,观测输出显示并将结果填入表中,将实验实测结果与理论结果对比给出结论。
表1-474LS125测试表
输入
输出Y
A
EN
理论值
实测值
0
0
0
1
1
0
1
1
5.*三态门应用
按照图1-9接线,二个三态门输出端并在一起,其中一个三态门输入端D接方波(约2HZ),另一个输入端D接高电平“1”,二个使能端EN中一个接1,一个接0(不能同时为0),输出接逻辑笔,观测输出显示并将结果填入表中,将实验实测结果与理论结果对比给出结论。
图1-9
表1-574LS125测试表
输入
输出Y
A10
A2
EN1
EN2
理论值
实测值
6.TTL和CMOS器件电压传输特性测试
用74LS00和74HC00,进行数字器件电压传输特性测试,按照图1-10所示,连接线路按照表1-6要求在输入端输入不同的电压值,观测门电路输出的对应电压值,并记录在表1-6中,完成该表格后,根据表格数据绘制输入输出电压曲线。
图1-10
表1-6数字器件电压传输特性测试
输入电压(V)
输出电压(V)
74LS00
74HC00
0
0.4
0.8
1.0
1.2
1.4
1.6
1.8
2.0
2.2
2.4
2.6
2.8
3.0
3.2
3.4
3.6
3.8
4.0
4.5
5.0
四、预习要求
1.复习数字基本门电路的工作原理。
2.熟悉实验用数字器件的引脚排列。
3.根据提供的实验原理图,设计实验接线图。
4.画好实验测试用表格。
五、实验要求
1.画出测试电路原理图,并将实验结果填入相应表格。
2.分析根门电路功能。
3.根据要求绘制特性曲线。
4.独立完成实验,按时提交实验报告。
实验二组合逻辑电路的分析与设计
一、实验目的
1.了解74系列典型组合逻辑集成电路的功能。
2.掌握在Quartus平台环境下利用原理图输入法,并完成简单组合电路的设计
3.掌握在Quartus平台环境下进行电路综合、电路仿真、目标器件下载的基本步骤和方法
二、实验设备及器件
1.EEEC-010B实验箱
2.74LS138三线-八线译码器
3.FPGA、CYCLONEEP1C3T144C8
三、实验内容及步骤
组合逻辑电路的分析方法:
组合逻辑电路的逻辑功能特点是任意时刻的稳定输出状态,只决定于该时刻输入信号的状态,而与输入信号作用前电路原来所处的状态无关。
组合逻辑电路的结构特点是逻辑电路全部由门电路组成,电路中没有记忆单元,而且由输出到各级门的输入之间也无任何反馈线。
组合逻辑电路的设计也称为组合逻辑电路的综合,就是根据给定的实际的逻辑命题,求出实现其逻辑功能的逻辑电路。
根据逻辑电路图,分级写出函数表达式。
组合逻辑电路的设计方法:
步骤:
①给定逻辑电路→输出逻辑函数式一般从输入端向输出端逐级写出各个门输出对其输入的逻辑表达式,从而写出整个逻辑电路的输出对输入变量的逻辑函数式。
必要时,可进行化简,求出最简输出逻辑函数式。
②列真值表
将输入变量的状态以自然二进制数顺序的各种取值组合代入输出逻辑函数式,求出相应的输出状态,并填入表中,即得真值表。
③分析逻辑功能
通常通过分析真值表的特点来说明电路的逻辑功能。
采用互补输入,与门,或门完成电路的电路图的设计
④使用原理图输入方法,在QUARTUSII平台下,完成设计输入
⑤编译,观察RTL级电路
⑥仿真,验证电路的功能和速度。
⑦下载,完成硬体测试。
实验内容
(一)组合逻辑电路验证
1.74LS138逻辑功能测试
用74LS138三线-八线译码器进行实验,引脚图如图2-1所示,按照图2-2所示接线
图2-1
图2-2
1)禁止功能测试
用集成片74LS138按图接线,其中输入地址端A0、A1、A2,输入选通端S1、S2、S3分别接电平开关,译码输出端Y0-Y7,分别接指示灯,拨动开关,使S1=“0”、S2和S3为任意值和S2=“1”、S3=“1”、S1为任意值两种情况下,观察并记录指示灯的发光情况,看看是否与A0、A1、A2的输入有关,并将结果填入表中,将实验实测结果与理论结果对比给出结论,表格形式自拟。
2)译码功能测试
在图2-2中,拨动开关,使S1=“1”、S2=“0”、S3=“0”,A2、A1、A0分别输入三位二进制码,即由000~111,观察并记录指示灯的发光情况,填入表中,表格形式自拟。
(二)组合逻辑电路设计
举例:
血型合格鉴定电路
人类有四种基本血型:
A,B,AB,和O。
要求输血者和受血者的血型必需符合下述原则:
O型血可以输给任意血型的人,但O型血的人只能接受O型的血;AB型血只能输给AB血型的人,但AB型血的人能接受所有血型的血;A型血能输给A型血和AB型血的人,而A型血的人只能接受A型血和O型血;B型血能输给B型血和AB型血的人,而B型血的人只能接受B型血和O型血。
以MN代表输血者血型,PQ代表受血者血型,L代表配对结果,
血型进行编码:
00代表O型血,01代表A型血,
10代表B型血,11代表AB型血,
将血型编码带入真值表得出表2-1
表2-1
献血者MN
受血者PQ
配对结果L
00
00
1
00
01
1
00
10
1
00
11
1
01
00
0
01
01
1
01
10
0
01
11
1
10
00
0
10
01
0
10
10
1
10
11
1
11
00
0
11
01
0
11
10
0
11
11
1
将真值表化简得到表达式可得表达式
根据表达式绘制出逻辑电图,并在去Quartus平台上利用原理图输入法,设计电路,并进行综合和仿真,将逻辑电路图仿真波形记录到报告中
1.设计一个8421码和2421码相互转换的逻辑电路。
设计一个如表2-2所示的8421码和2421码相互转换的逻辑电路。
表2-2
8421码
ABCD
2421码
EFGH
8421码
ABCD
2421码
EFGH
0000
0000
0101
1011
0001
0001
0110
1100
0010
0010
0111
1101
0011
0011
1000
1110
0100
0100
1001
1111
根据真值表得出输出变量EFGH各自与输入变量ABCD之间的关系表达式,然后根据表达式绘制出逻辑电图,并在去Quartus平台上利用原理图输入法,设计电路,并进行综合和仿真,将逻辑电路图仿真波形记录到报告中
2.2位二进制乘法器设计及验证
输入A1A0和B1B0两个两位二进制信号,输出为二者的乘积F0F1F2F3,为四位二进制数,通过LED发光管或者LED数码管显示结果。
具体电路形式不限。
请按照设计流程设计出逻辑电图,并在Quartus平台上利用原理图输入法,编辑设计电路,并进行综合和仿真,将逻辑电路图仿真波形记录到报告中
以上两个实验项目,根据教师要求进行下载测试验证。
四、预习要求
1.复习数字基本门电路的工作原理。
2.熟悉实验用数字器件的引脚排列。
3.复习实验所用电路的逻辑功能和使用方法。
4.根据所指定的设计题目按正规设计步骤写出真值表、输出函数表达式、电路图
5.完成预习报告。
五、实验要求
1.画出测试电路原理图,并将实验结果填入相应表格。
2.分析根门电路功能。
3.独立完成实验,按时提交实验报告。
实验三时序逻辑电路分析与设计
一、
实验目的
1.学会正确使用RS触发器、D触发器、JK触发器。
2.学习利用EDA工具设计简单时序电路流程和方法。
3.掌握原理图输入法完成电路设计,仿真。
二、实验设备及器件
1.QUARTUSII7.2软件平台
2.FPGA、CYCLONEEP1C3T144C8
3.元器件:
74LS00、74LS74、74LS112等
三、实验内容及步骤
1.利用与非门构成RS触发器并验证其功能
如图3-1所示用74LS00构成一个RS触发器。
图中,K1、K2是电平开关输出,LED0、LED1是电平指示灯。
基本SR触发器的测试步骤:
(1)R=0,S=0,测得Q=,Q=。
(2)R=0,S=1,测得Q=,Q=。
(3)R=1,S=0,测得Q=,Q=。
(4)R=1,S=1,测得Q=,Q=。
并将结果填入表3-1
图3-1
表3-1
R
S
Q
/Q
0
0
1
1
0
1
2.D触发器(74LS74)功能测试
RD、SD、D端分别为D触发器74LS74的清零、预置和数据输入端,接逻辑电平开关,CP端接单次脉冲源,Q、
端接至LED发光管用于显示输出状态。
D基本SR触发器的测试步骤:
(1)按表3-2分别改变RD,SD(CP、D处于任意状态),观察输出端Q的状态。
(2)按表3-2,将RD,SD置为“1”,CP输入单脉冲,D端输入分别置成“0”和“1”两个状态,并观察触发器在不同初态情况下,在CP脉冲驱动下,输出状态的变化,注意区分时钟的上升沿和下降沿,并记录结果
表3-2
输入信号
输出信号
Qn=0
Qn=1
/SD
/RD
CP
D
Qn+1
Qn+1
0
1
X
X
1
0
X
X
1
1
↑
0
1
1
↓
0
1
1
↑
1
1
1
↓
1
3.JK触发器(74LS112)功能测试与分析。
RD、SD、J、K分别为JK触发器清零、预置和数据输入端,接逻辑电平开关。
CP端接单次脉冲源,Q、
端接至LED发光管用于显示输出状态。
参照实验2的步骤,自行制定实验步骤,完成表3-3的实验测试内容。
表3-3
输入信号
输出信号
Qn=0
Qn=1
/SD
/RD
CP
J
K
Qn+1
Qn+1
0
1
X
X
X
1
0
X
X
X
1
1
↑
0
0
1
1
↑
0
1
1
1
↑
1
0
1
1
↑
1
1
1
1
↓
0
0
1
1
↓
0
1
1
1
↓
1
0
1
1
↓
1
1
以下实验项目,请在quartus平台下,采用原理图输入法,利用相关器件设计电路
4.利用D触发器(双D触发器74LS74)构成的4位二进制计数器(分频器)
(1)输入所设计的4位二进制计数器电路并编译。
(2)建立波形文件,对所设计电路进行波形仿真。
并记录计数器Q0、Q1、Q2、Q3输出端的状态。
(3)对所设计电路进行器件编程。
将CLK引脚连接到实验系统的单脉冲输出插孔,4位二进制计数器输出端Q0、Q1、Q2、Q3连接到LED显示灯,CLR、PRN端分别连接到实验系统两个开关的输出插孔。
(4)由时钟CLK输入单脉冲,记录输入的脉冲数,同时观测Q0、Q1、Q2、Q3对应LED显示灯的变化情况
5.设计异步十进制计数器
(1)用JK触发器JKFF(双JK触发器74LS112)构成1位十进制计数器(BCD计数器)
(2)对所设计的计数器,建立相应波形文件,进行波形仿真。
并记录计数值Q0、Q1、Q2、Q3的状态。
c)对设计的计数器进行器件编程、连线,由时钟端CLK输入单脉冲,测试并记录Q0、Q1、Q2、Q3的状态变化,验证设计电路的正确性
*6.移位寄存器
移位寄存器一种能寄存二进制代码,并能在时钟控制下对代码进行右移或左移的同步时序电路。
计算机执行四则运算和逻辑移位等指令少不了移位寄存器,此外,移位寄存器还可用于计算机的串行传输口的串并行信息转换电路。
(1)用D触发器DFF(或74LS74)构成一个四位自循环寄存器。
方法是第一级的Q端接第二级的D端,依次类推,最后第四级的Q端接第一级的D端。
四个D触发器的CLK端连接在一起,然后接单脉冲时钟。
(2)对设计的电路建立相应的波形仿真文件,进行波形仿真。
将触发器Q0置1(即PRN0输入一个负脉冲),Q1、Q2、Q3清0(即CLR1、CLR2、CLR3输入一个负脉冲)。
(3)进行器件编程(定义自循环寄存器的输入/输出引脚号)。
(4)连线验证所设计电路的正确性
预置初始状态(与波形仿真相同),自循环寄存器的PRNi和CLRi端连接到开关的电平输出插空,输入端CLK引脚连接到实验系统的单脉冲输出插孔,输出端Q0、Q1、Q2、Q3连接到LED显示灯。
由时钟CLK输入端输入单脉冲,观察并记录Q0、Q1、Q2、Q3的状态变化。
四、预习要求
1.了解实验所用电路的引脚排列和引脚功能。
2.完成实验内容所要求的电路设计
3.自拟实验结果记录表格。
五、实验报告
1.画出实验电路,整理表格和分析实验数据。
实验四基于CPLD/FPGA的组合逻辑电路设计
一、实验目的
1.熟悉Verilog硬件描述语言,并利用Verilog硬件描述语言设计组合逻辑电路。
2.进一步加深学习QUARTUSII平台完成数字系统设计的流程和方法。
二、实验设备及器件
1.QUARTUSII7.2软件平台
2.FPGA、CYCLONEEP1C3T144C8
三、实验内容及步骤
硬件描述语言Verilog类似于高级程序设计语言(例如C语言),它是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑图、逻辑表达式,还可以表示更复杂的数字逻辑系统所完成的逻辑功能。
计算机对就、硬件描述语言的处理包括:
逻辑仿真和逻辑综合。
有关Verilog的基本语法规则和程序结构请复习教科书“电子技术基础-数字部分(第五版)”第二章的相关内容。
1.Verilog语言基本描述方式
对于一个数字电路采用硬件描述语言来描述,主要可采用结构描述、数据流描述和行为描述这三种方式。
下面以二选一数据选择器为描述目标,分别采用上述三种方式进行描述,请大家比较和分析三种方式的特点。
图4-1给出了由门电路构成的二选一数据选择器的电路图,
图4-1
结构描述方式:
------------------------------------------------------------
例4-1
modulemux21a(out,a,b,sel);//模块声明
intputa,b,sel;//定义输入信号
outputout;//定义输出信号
notu1(nsl,sel);//Verilog保留关键字
andu2(sela,a,nsl);//严格按照接口的顺序
andu3(selb,b,sel);
oru4(out,sela,selb);
endmodule
------------------------------------------------------------
表4-1中显示出Verilog语言中已定义了常用的基本的12种门级元件,程序中可直接调用
元件名称
功能描述
元件名称
功能描述
and
多输入端与门
nand
多输入端与非门
or
多输入端或门
nor
多输入端或非门
xor
多输入端异或门
nxor
多输入端异或非门
buf
多输入端缓冲器
not
多输入端反相器缓冲器
bufif1
高电平有效三态缓冲器
notif1
高电平有效三态反相器
bufif0
低电平有效三态缓冲器
notif0
低电平有效三态反相器
数据流描述方法:
例4-2
modulemux21a(out,a,b,sel);
intputa,b,sel;//定义信号方向
outputout;//
wirensl,sela,selb;//内部变量相当于内部导线(线网类型)
assignnsl=~sel;
assignsela=a&nsl;
assignselb=b&sel;
assignout=sela|selb;
endmodule
------------------------------------------------------------
程序中端口信号的方向有INPUT、OUTPUT和INOUT三种类型,分别表示输入信号、输出信号和输入输出双向信号,
assign赋值语句用来对wire变量进行赋值,描述组合逻辑电路。
行为描述方法
------------------------------------------------------------
例4-3
modulemux21a(out,a,b,sel);
intputa,b,sel;
outputout;
regout;//寄存器类型(只能在initial和always中赋值)
always@(seloraorb)
if(!
sel)
out=a;//是不是有点象C语言的样子?
else
out=b;
endmodule
------------------------------------------------------------
注意体会wire和reg之间的区别。
,当信号不指定类型,系统就默认为1位wire类型。
专门指定出wire类型,可能是多位或为使程序易读。
wire只能被assign连续赋值,reg只能在initial和always中赋值。
wire使用在连续赋值语句中,而reg使用在过程赋值语句中
2.Verilog基本结构语句
✧条件语句(if-else)
条件语句必须在initial或always过程块语句引导的beginend块语句中编写。
Initial初始化过程块语句,module中可以含有多个initial过程块,但是initial过程块在程序中只被执行一次,主要用于进行初始化变量等工作。
Always过程语句一般以always@(敏感条件)句式出现,只要敏感条件满足,有always引导的过程块可以反复运行,程序主体一般都有always过程块构成
2线-4线译码器(if条件语句实现)
例4-4
moduledecode(y,a);
input[1:
0]a;
output[3:
0]y;
reg[3:
0]y;
always@(a)
begin
if(a==0)y<=4’b1110;
elseif(a==1)y<=4’b1101;
elseif(