译码器的应用

如题所述

第1个回答  2022-07-11
在译码器基础中,解释了完全译码器(n-2 n )的基本工作原理,即:当使能端有效时:

除了完全译码器之外,还有4-10线译码器,七段显示译码器,相对也比较简单,这里简单进行介绍:

对应的真值表如下图所示:

译码器主要用于地址译码、指令译码以及逻辑表达式表示。下面重点解释如何内存寻址以及如何表达逻辑表达式。

在 组合电路、时序电路在计算机课程中的地位 一文中,说明了可执行程序的执行流程,其中的程序计数器(Program Counter,简称PC)中保存了CPU将要执行的指令,那如何在内存中定位到那条指令所在的内存地址呢?(重点理解:这是硬件实现,我们要用组合电路寻址)。

下图描述了早期8086的内存寻址方式。(计算机中用三类总线:数据总线、地址总线、控制总线进行数据传输,数据总线用于传输数据,地址总线用于传输地址,控制总线用于传输控制信号。三类总线用于在IO、内存、CPU以及外设之间进行数据传输;每一块内存中有rd、wr、adder、cs和data几个输入输出,其中的rd表示读内存,wr表示写内存,adder下文中解释,cs(chip select)表示片选,data用于内存和总线之间数据的传输)

在8086机器中,内存只有4KB(受限于当时的生产工艺,4KB内存由4块1KB的内存块组成),用12位二进制串表示地址。对于每一块1KB的内存,其寻址范围为[00 0000 0000~11 1111 1111],为了对4块内存都进行寻址,一般思路为:共享低10位(A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 )的内存地址,高两位用A 11 A 10 来进行控制,使其满足:

在译码器中,如果使能端有效,其对应的输入输出之间的关系为:

比较敏感的童鞋很容易发现,译码器和最小项存在关系。对于任何的逻辑表达式,都可以用最小项表示,如F (A,B,C) =m 2 +m 3 +m 4 +m 5 +m 7 。

根据/Y i = !m i ,可以进一步将F (A,B,C)表示成:

此时,将3-8译码器的输出/Y 2 ,/Y 3 ,/Y 4 ,/Y 5 和/Y 7 接入一个与非门,即可表示上面的逻辑表示式 F (A,B,C) ,其对应的电路图如下图所示:

在上例的基础上,如何用74LS138译码器实现一个全减器呢?在设计之前,需要先明确减法器的功能,其真值如下图所示:

全减器中,C i-1 表示来自低位的借位,C i 表示向高位的借位,F i 表示本位的计算值。

根据真值表,很容易得到:

上述的F i 和C i 已经映射到74LS138的输出端口,将输出端口接入与非门,即可完成全减器,其对应的电路图如下图所示:

从上面两个例子看出,译码器虽然简单,但是其用法却多种多样,可以从不同的角度灵活使用译码器完成特定的功能。总体而言,对于译码器级联用法,通常都是共享低位的数据输入,用高位的数据输入控制译码器的使能信号(当然,最好分析的时候先就把预期的输出编号);对于逻辑表达式,要充分认识最小项和译码器的输出之间的关系,通过这种关系,利用译码器和少量的其它与、或、非等们组合得到完成预期功能的电路。
相似回答