数字逻辑试验指导书Word文档格式.docx
《数字逻辑试验指导书Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字逻辑试验指导书Word文档格式.docx(152页珍藏版)》请在冰点文库上搜索。
不论那种实验,先要阅读预习实验原理和要求,尽量明白这个实验原理是什么?
为什么这样做?
自己进行设计,调试,和验证。
这就要求学生对讲义里不清楚的部分,会查阅有关资料,以做到心中有数力求保证设计的逻辑电路在实验中的正确性
2.准备好预习报告的大纲,列出要在实验中检查的具体技术资料指标及注意的问题,画出逻辑接线图,逻辑符号要标准统一,要标好管脚号,查阅有关手册,熟悉实验芯片的功能特点,以保证正确使用。
如果要用小规模芯片做实验,可能联线较多,做好能列出接线表,以保证不漏接。
这样,检查时也方便的多。
3.通过数字逻辑实验,要求我系本科生必须熟悉并初步掌握使用EDA进行电路设计的方法。
4.学生完成所有的电路设计后,可以分别用IC芯片,GAL芯片或用FPGA可编程芯片加以实现,或几种芯片兼用实现,但都必须通过用VHDL语言进行编程,模拟,仿真和验证。
5.了解有关实验仪器的原理和正确的使用方法,确保实验仪器和设备的安全有效使用。
6.对于实验报告的要求
一份完整的实验报告应包括以下内容:
①实验的目的。
②实验电路的设计思想、原理、方法、技巧以及简述过程,其中包括化简的逻辑表达式或用硬件描述语言编的程序等。
③调试验证方法,以及调试中发现的问题和解决方法。
④结论和收获
⑤如果是验证性实验,请你能自己动手设计一个新的电路加以比较。
⑥附上正确标准的逻辑原理图,有的逻辑图还需要附上波形图。
⑦你对实验的改进意见等。
实验内容
实验一十进制代码——8421码转换电路
在数字设备和计算机系统中,任何数据信息都是用代码来表示的。
由于需要的不同,采用了多种类型的BCD代码编码,如二进制代码,十进制码和8421码等,这些代码在必要时需要相互转换,相互转换的方法之一就是用组合逻辑电路来实现。
转换真值表
十线十进制数
8421BCD码
D9D8D7D6D5D4D3D2D1D0
B8B4B2B1
0000000001
0000
0000000010
0001
0000000100
0010
0000001000
0011
0000010000
0100
0000100000
0101
0001000000
0110
0010000000
0111
0100000000
1000
1000000000
1001
十进制代码转换成8421码原理框图如下:
B1B2B4B8BN为8421码
要求用或非门和与非门构成的逻辑图
D1D2D3D4D5D6D7D8D9DN为十进制数
10线10进制代码转换成8421码
学生根据上图写下表达式:
B8=
B4=
B2=
B1=
实验要求:
①学生自己根据逻辑图填写逻辑表达式
②分别用TTL芯片,GAL芯片和用VHDL硬件描述语言编写出该电路的程序,通过FPGA芯片加以实现。
③独立完成电路调试
④验证输入与输出的关系
实验二加法器的电路设计
不同的码制相互进行转换运算时会产生误差,需用不同的修正方法加以解决,如两个一位的8.4.2.1BCD码相加时,包括进位可能产生二十种不同的和,其中不超过1001的数不需要修正,超过1001的数则只需要加(0110)2的修正就可得到正确的BCD码和进位输出结果。
和
C
进位入
被加数
加数
校正8.4.2.1BCD码的和
根据上表可以看出。
十进
制数
未校正的BCD和
校正的BCD和
备注
K
Z3
Z2
Z1
Z0
S3
S2
S1
S0
00000
不
需
要
校
正
1
00001
2
00010
3
00011
4
00100
5
00101
6
00110
7
00111
8
01000
9
01001
10
01010
10000
11
01011
10001
12
01100
10010
13
01101
10011
14
01110
10100
15
01111
10101
16
10110
17
10111
18
11000
19
11001
实验三、译码器及数码显示
数码管是一种常用器件,当你显示十进制数时,是有很多电路供你选用,一般根据所使用的数码管是共阳极还是共阴极来选择对应芯片的。
七段发光二极管(LED)数码显示器的字形与七段荧光数码管一样,外观为平面型。
它的a、b、c、d、e、f、g段是用发光二极管显示的,并且分为共阳极和共阴极两种。
共阳极是七个发光二极管的阳极接在一起,接到高电平(正电源)上,阴极接到译码器的输出端,哪个发光二极管的阴极为低电平,哪个发光二极管就亮,而阴极为高电平的发光二极管就不亮。
共阴极是七个发光二极管的阴极接到一起,接到低电平处,哪个发光二极管的阳极接高电平,哪个发光二极管就亮,否则就不亮。
这种数码特点是电源电压为5V,与TTL电源一致共阳型数码管内部结构。
GfVCCab
a
b
c
d
e
f
g
12345
A
h.
678910
d
10h
hh
edVCCch共阳型数码管内部结构共阴型数码管内部结构
共阳极和共阴极两种LED数码管内部接线示意图见图1。
与共阳级LED数码相接的七段译码器的a—g输出必须是低电平有效。
例如用SN74LS47即可(它的输出级为集电极开路),接线图如图2所示。
共阳级LED与74LS47连接图
126759483
7X3005V
141591011121334516
GfedcbaLTOBRIBRVcc
74LS47
DCBA
7
62178
Q3Q2Q1Q0
若用高电平有效的SN74LS48就不行。
如果LED数码管是共阴极的,必须用SN74LS48,
有的LED数码管带小数点用h表示。
但是当你要显示的是16进制信息时,就有点麻烦,就要自己动手去设计组合,当然方法还是很多的。
譬如用CPU和8279能实现,用154芯片的非门能实现,用GAL芯片编程做一个也行,最后不行只能与非电路进行组合了,所以关键是你有什么样的器件就采用相应办法去实现。
本次实验用两种方法:
①用与非门等芯片自己独立进行设计。
列真值表,画卡诺图,给出逻辑和数码管,自己调试完成实验。
②用154芯片和与非门自己设计完成实验。
以上两种实验都需在数码管的七段输入串一个100-300Ω的限流电阻。
实验设备:
①万用表
②数字逻辑实验仪
实验器件:
①芯片待定。
②数码管若干个
③电阻20只
74LS154菜单逻辑图附后
因此我们要做的工作是用与非门搭一个16进制译码器,16个输入为D0-D15代表0-15的16进制数。
7个输出为a,b,c,d,e,f,g,这7个输出对应着数码管的不同笔划。
其中7个电阻为限流电阻,一定要加,否则可能烧坏数码管。
实验内容:
①要求设计16进制译码器的逻辑图:
总共需要7个4或8输入的与非门(至于是4输入还是8输入,要根据实际情况而定),每个与非门的输出便是a,b,c,d,e,f,g中的一个。
如要显示“0”,只须把D0接在输出为g的与非门的输入上即可。
②根据逻辑图连好译码器,并将电阻、数码管连上。
③通电调试,直至0-F都能正确显示为止。
④经教师检查后,拆线,收拾器材。
选做⑤验证4-16线译码器74LS154的功能,将74LS154的输出分别接在D0-D5,从输入端输入4位BCD码,观察数码管的显示。
实验四用HDL编数码管显示
实验目的:
1、了解数码管的控制原理;
2、了解扫描的原理;
3、加深对硬件描述语言的理解和应用;
1、编一个程序实现对实验台上六个数码管的控制,使六个数码管显示一个六位数,并不断的计数,可以是十进制、十六进制等(通过开关选择)。
2、在上述程序中附带实现对实验台上十六个LED灯的控制,使十六个灯按每四个灯表示六位数中的一位(最好是表示高四位),同时要可以选择通过开关控制。
实验原理:
1、数码管的显示控制
数码管一般是七个数码段和一个小数点,从控制电平可分为共阳极和共阴极两种。
一般的数码管有十个引脚,引脚的控制信号如图1:
图1
其中的S1是电源引脚,共阳极的接电源正极,对应的引脚号接电源负极即可使对应的数码段点亮(颜色各异,可能为红、黄)。
本实验台使用的是共阳极数码管,在设计中用低电平控制选中。
2、扫描信号的控制
由于六个数码管的共阳极是接在一起的,要六个数码管显示六个不同的数字,只能通过分时控制。
由于人视觉系统的特殊构造,我们看到一个物体后,物体的图象会在视网膜上滞留一定时间,当数码管的数字显示达到24帧/秒以上(即每秒钟该数码管被选中24次以上,每次只显示很短的时间),人就觉得该数字是稳定显示的了。
这就要求扫描频率要达到24Hz以上,本实验台提供的脉冲是4MHz的,请按需要分频。
要使六个数码管的数字在扫描时变化,那么对应计数器的频率应该比扫描频率要高几十倍,而且倍数要选择好,这儿就不提供具体的数字了,请自己选择。
至于六位数字的进位关系,可以由计数器脉冲的选择来实现。
实验步骤:
1.打开Max+plusII新建一工程,再新建一文本文件
2.在文本中输入如下引脚定义:
--主时钟GCLK:
INPUT;
--开关K[15..0]:
--灯L[15..0]:
OUTPUT;
--数码管字选DLS[5..0]:
--数码管段选DL[7..0]:
3.编辑程序、调试,直到编译通过。
控制信号的有效电平如下:
--灯L[15..0]高电平亮
--数码管字选DLS[5..0]低电平有效
--数码管段选DL[7..0]低电平有效
注:
编程时要注意各个寄存器的控制信号、脉冲的时序的关系
4.打开工程的(工程名.acf)文件,把如下引脚锁定输入到该文件的前面(紧接在Altera公司的版权声明的注释后即可)
此处dl应改为你的工程名
CHIPdl
BEGIN
DEVICE=EPM7256SQC208-7;
|GCLK:
INPUT_PIN=184;
|K15:
INPUT_PIN=102;
|K14:
INPUT_PIN=100;
|K13:
INPUT_PIN=97;
|K12:
INPUT_PIN=95;
|K11:
INPUT_PIN=91;
|K10:
INPUT_PIN=88;
|K9:
INPUT_PIN=79;
|K8:
INPUT_PIN=76;
|K7:
INPUT_PIN=73;
|K6:
INPUT_PIN=70;
|K5:
INPUT_PIN=67;
|K4:
INPUT_PIN=64;
|K3:
INPUT_PIN=61;
|K2:
INPUT_PIN=58;
|K1:
INPUT_PIN=56;
|K0:
INPUT_PIN=55;
|L15:
OUTPUT_PIN=164;
|L14:
OUTPUT_PIN=151;
|L13:
OUTPUT_PIN=148;
|L12:
OUTPUT_PIN=145;
|L11:
OUTPUT_PIN=153;
|L10:
OUTPUT_PIN=150;
|L9:
OUTPUT_PIN=147;
|L8:
OUTPUT_PIN=144;
|L7:
OUTPUT_PIN=146;
|L6:
OUTPUT_PIN=149;
|L5:
OUTPUT_PIN=142;
|L4:
OUTPUT_PIN=161;
|L3:
OUTPUT_PIN=108;
|L2:
OUTPUT_PIN=109;
|L1:
OUTPUT_PIN=110;
|L0:
OUTPUT_PIN=111;
|DLS5:
OUTPUT_PIN=140;
|DLS4:
OUTPUT_PIN=137;
|DLS3:
OUTPUT_PIN=131;
|DLS2:
OUTPUT_PIN=128;
|DLS1:
OUTPUT_PIN=122;
|DLS0:
OUTPUT_PIN=119;
|DL7:
OUTPUT_PIN=113;
|DL6:
OUTPUT_PIN=123;
|DL5:
OUTPUT_PIN=130;
|DL4:
OUTPUT_PIN=129;
|DL3:
OUTPUT_PIN=132;
|DL2:
OUTPUT_PIN=135;
|DL1:
OUTPUT_PIN=138;
|DL0:
OUTPUT_PIN=141;
END;
也可以从本实验台附带的文件(数码管锁定脚.txt)中复制后粘贴到acf文件中。
5.下载到芯片中验证。
下载方法参照本书介绍实验台的章节。
6.实验台数码管的排列顺序请参照本书介绍实验台的章节。
实验五、海明码校验逻辑电路
海明校验是一种多重校验。
能纠正一位错误,发现二位同时错误。
在计算机应用于高可靠性存贮设备,如高速缓存、主存微程序内存。
也有用在外存,如磁带、磁盘等处。
一、实验目的:
掌握海明校验的编码原理以及设计、调试方法,巩固提高组合逻辑知识,培养实际动手能力。
二、实验要求:
①设计信息位为4位的内存的海明校验逻辑电路,在读内存储器时,具有一位出错报错和纠正一位错误的功能(发现两个错误的线路不作为要求)。
②为了验证其正确性,在读出信息的通路上,要串入造错用逻辑,位数自定。
③奇偶发生器与海明校验器对同一位用一块奇偶校验集成块。
④设计一个3位的单拍操作读写的内存,实用7位。
读写地址可用开关或计数器控制。
三、使用器件:
①如采用TTL芯片,可用9位奇偶校验集成块74S280或74180。
(均用6脚“奇”作为输出。
74180的4脚一定要接地,3脚不用);
三态输出8位总线74LS244,与非门74LS00,与门74LS08等;
另外纠错用的异或门(或异或非门)74LS136,计数器用74LS161。
②如采用GAL芯片进行设计,需写出GAL方程式并可与TTL芯片进行混合设计,这样会减少芯片用数,减少连线,这也是一种常用的设计方法。
③如采用FPGA可编程芯片进行设计,可先针对设计原理编写VHDL硬件描述语言
四、实验提示:
①若有K位信息位,需要最少校验位元r,必须满足2r>
=K+r+1。
②将信息位和校验位混合统一编码,分别用十进制和二进制表示。
十进制编号等于2n(n=0,1,2……)的位为校验位,依次为b1,b2……bj(j=1——r),其余为信息位,依次为a1,a2,……ai(i=1——k)。
③校验位b1由二进制统一编号,最低位(也就是第一位)为“1”的所有位的信息按位加,我们记作b=Σ&
ai(2°
),b2由二进制统一编号,第二位为“1”的所有位的信息,记作n2=Σ+ai([2]),依次类推则bi=Σ+ai(2j-1)
④校验方程为sj=bj+Σ+ai(2j-1),其中bj,ai为bjai写入内存后的读出
由sj——s1s2组排二进制:
若sj——s1s2=0则不发生错(指单错)
若sj——s1s2≠0则组排成的二进制与前面用二进制统一编号相等的那位出错。
⑤用异或门或异或非门纠错
用某位的出错信号即译码器对应的输出控制二输入之一,达到取反纠错目的,造错原理类同,见图。
(实验中只要在一位上造错)
aiai
异或非
异或
Aa1Aa1
出错:
A=Hal=aiA=Lai=al
常态:
A=Lal=aiA=HAi=al
⑥因奇偶发生器与校验器同用一块芯片,因此在写内存时,应控制bi不送入校验器,在读时bi要送入
数据输出
纠错部分
寄存器
译码器
校验码输出
奇偶校验
总线
造错输入
数据输入
⑦附框图供设计逻辑图时参考。
为了便于检查,使用开关和指示灯均要标注清楚。
⑧设计中要针对所给定K写出奇发生器表达式和效验方程。
五、调试步骤:
造错(处于读)
①看sj——s1s2是否等于造错那位对应的二进制编写数。
②看3——8译码器输出是否指出造错那位,低的输出表示错。
1查经纠错线路后,输出数据是否和原写入一致,验证纠错功能。
例如,约定计算机中的二进制代码都以奇校验码存入内存,那么当从内存取出时,若检测到二进制代码中“1”的个数不是奇数时,表明该代码在存取过程中发生了错误,显然,若代码在存取过程中发生了两位(或偶数个数)出错,用奇偶校验码就检测不出来。
另外,奇偶检测码只能发现错误,但不能确定哪位出错。
由于在一般情况下两位出错的概率远小于一位出错的概率,而且奇偶校验码增加设备不多就能发现错误,因此它是一种在计算机中广泛被采用的一种可靠性代码。
同步时序逻辑
实验六、环形移位寄存器
1了解串行移位寄存器输入的控制过程
②熟悉中规模移位