在电子计算机电路中,译码器是一种非常重要的器件。所谓译码,简单地说就是对每一串由“0”,“1”二进制数组成的许多不同信号进行选择,选中其中的一个信号。

图1中虚线左边是一个最简单的译码器,A为输入端,输入信号有“0”、“1”两种状态,T\(_{3}\)是一只反相器。输出端为B、C。假定输出端信号为“1”时才被选中,则当A端输入“1”时,C端输出“1”,B端输出“0”,(“1”经过T3反相变为“0”),此时C端输出信号被选中。当A输入“0”信号时,B输出“1”,C输出“0”,此时B端输出信号被选中。在C被选中时,BG\(_{1}\)导通,D1发光,而当B被选中时,BG\(_{2}\)导通,D2发光。以上是最简单的译码器。为了使大家对译码器的概念有更深入的理解,我们再分析一下电子计算机中常用的三八译码器。所谓“三八”就是根据三根信号线上有什么状态的输入信号,即是000,001,010等八种输入信号中的哪一种状态的信号,就从八根输出线中选出相应的一根输出线,使它工作,输出信号。

图2a是典型的三八译码器电路图。图2a中I\(_{0}\)、I1、I\(_{2}\)为三根输入信号线,Q0~Q\(_{7}\)为八根输出信号线,为了指示Q0~Q\(_{7}\)的状态,在Q0~Q\(_{7}\)端接有8只灯泡。当某一Q端被选中时,与它连接的灯泡就发光。其中T1~T\(_{12}\)是反相器,C1~C\(_{8}\)是三端与门。只有C1的三个输入端全为“1”,这时Q\(_{0}\)也为“1”,L0灯亮,其它都暗。当I\(_{0}\)为“0”,I1为“1”,I\(_{2}\)为“1”时,C4的三个输入端全为“1”,Q\(_{3}\)被选中,L3灯亮。其它情况读者可以自己试着分析一下。这样,通过译码器就把不同状态的二进制码代表着的信号转变为灯亮信号,所以称它为译码器。上述三八译码器的真值表见图2(b)。译码器的符号如图3,刚才分析的是三八译码器中的一种正逻辑情况,即输出“1”时为选中。另外还有一种负逻辑情况,这里就不分析了。我们学习译码主要是了解译码器在计算机中的作用,对它的内部结构,不必过多了解。

译码器在计算机中最常见的用途是完成对存储器的选址功能,或者产生“片选信号”。计算机中常见的器件2114存储器,它的存储容量为1K×4,含意是总共有1024只存储单元,每一个存储单元中可以存4个二进制数。在使用中,我们可以通过计算机的地址线选中1024个单元中的任意的一个。如果没有译码器的话,只能用1024根导线去连接选择。在计算机中这显然是行不通的。所以在2114存储器中有一个译码器,就可以通过10根地址线,分别选中或称译中1024个单元中的某一个。这10根地址线上的“0”或“1”信号的不同组合码,如:0000000000,0000000001等,共可能有1024种,(2\(^{1}\)0=1024)。在Z80CPU中有16根地址线,那么它最大可能被译中的存储单元是65536个,即64K。译码器可以通过这16根地址线选中其中任意一个单元。因此译码器的输入端一般总是连接在计算机的地址总线上。
以上所介绍的译码器的共同特点是对应一种输入信号状态。只有一个输出端被译中有效。故称为“多进一出译码器,还有一种译码器称之为平行逻辑阵列,它的功能是对应一种输入状态可以有多个输出端被选中有效,所以被称为多进多出译码器,这种译码器多用于较复杂的CPU中,这里就不多详述了。(赵焕翔)