寄存器

   多个数连加,除了一开始,以后每次都有一个中间结果参与计算,这就需要一个保存中间结果的寄存器。一个触发器可以保存一个比特。一个寄存器通常由好多个边沿D触发器组成。如下图这个寄存器包含了5个上升沿D触发器,所有能用来保存一个5比特长的二进制数。

        寄存器_寄存器

    不管一个二进制数包含多少个比特,要保存它,只需要把每一个比特都保存起来即可。所有的触发器CP端都连在一起,这样就可以接收同一个控制命令。一旦“保存”开关按下,在CP脉冲的上升沿,所有触发器同时开始干活,二进制数的每一位都在同一时间被保存起来,并出现在Qo-Q4上。寄存器符号如下:

            寄存器_寄存器_02

如下图RA就是寄存器,按键开关Kra和RA的CP端相连,当我们用左边那一排开关板出一个数后,如果按一下Kra,这个数就被锁住。于此同时,它把自己存储的内容输送到加法器,并一直保持,作为第一个要相加的数。

        寄存器_寄存器_03

                数字先到达寄存器,再提供给加法器


    我们想用同一排开关向加法器提供另一个数,设计电路图如下:

        寄存器_寄存器_04

    经过改造之后,通过左边那排开关送进来的数可以到达寄存器RA,同时也被送到加法器的另一个输入端。取决于你的动机,如果你想把它保存到寄存器RA中,那就按一下开关Kra;如果你想用它和RA中的数相加,就什么都不做,结果自然从加法器的输出端呈现。

    把输出结果保存在寄存器,再次改造电路如下:

        寄存器_寄存器_05


                    加法器的计算结果返回寄存器中


    上面电路存在如下问题,首先左边那排开关和加法器的输出是直接相连的,都要走寄存器RA门前那段路。在逻辑电路里,大家共用线路称为总线。如果不考虑电路冲突,计算结果从加法器出来之后,不但会被送往寄存器RA,还会再次进入自己的输入端,这理所当然地会形成一个反馈,而且是一边反馈、一边还在做加法,一切全乱了套。要彻底解决这个问题,就必须重新设计真个电路。一个最简单地解决方案是使用电子开关,更多的时候,我们也称之为传输门。