存储技术
在数字电路中,移位寄存器(英语:shiftregister)是一种在若干相同时间脉冲下工作的以触发器为基础的器件,数据以并行或串行的方式输入到该器件中,然后每个时间脉冲依次向左或右移动一个比特,在输出端进行输出。这种移位寄存器是一维的,事实上还有多维的移位寄存器,即输入、输出的数据本身就是一些列位。实现这种多维移位寄存器的方法可以是将几个具有相同位数的移位寄存器并联起来。
根据移位方向,常把它分成左移寄存器、右移寄存器和双向移位寄存器三种。根据移位数据的输入-输出方式,又可将它分为串行输入-串行输出、串行输入-并行输出、并行输入-串行输出和并行输入-并行输出四种电路结构。
此外,有些移位寄存器还具有预置数功能,可以把数据并行地置入寄存器中。
利用移位寄存器能进行数据运算、数据处理,实现数据的串行—并行互相转换,还可接成各种移位寄存器式计数器,如环形计数器、扭环形计数器等。
(1)右移移位寄存器
下图所示为4位右移移位寄存器原理示意图。串行数据从D端输入,在时钟脉仲CP的作用下逐步向右移位,经过4个CP周期后从Q4端串行输出。Q1~Q4为并行数据输出端,P1~P4为并行数据输入端。
(2)左移移位寄存器
下图所示为4位左移移位寄存器原理示意图。串行数据从D端输入,在时钟脉冲CP的作用F逐步向左移位,经过4个CP周期后从Ql端串行输出。Q1-Q4为并行数据输出端,P1~P4为并行数据输入端。
移位寄存器可以用来寄存代码,还可以用来实现数据的串行—并行转换、数值的运算以及数据的处理等。
把若干个触发器串接起来,就可以构成一个移位寄存器。由4个边沿D 触发器构成的4位移位寄存器逻辑电路如图8.8.1所示。数据从串行输入端D1输入。左边触发器的输出作为右邻触发器的数据输入。假设移位寄存器的初始状态为0000,现将数码D3D2D1D0(1101)从高位(D3)至低位依次送到D1端,经过第一个时钟脉冲后,Q0=D3。由于跟随数码D3后面的数码是D2,则经过第二个时钟脉冲后,触发器FF0的状态移入触发器FF1,而FF0变为新的状态,即Q1=D3,Q0=D2。依此类推,可得4位右向移位寄存器的状态, 如表8.8.1所示。
由表可知,输入数码依次地由低位触发器移到高位触发器,作右向移动。经过4个时钟脉冲后,4个触发器的输出状态Q3Q2Q1Q0与输入数码D3D2D1D0相对应。为了加深理解,在图8.8.2中画出了数码1101(相当于D3=1,D2=1,D1=0 ,D0=1)在寄存器中移位的波形,经过了4个时钟脉冲后,1101出现在寄存器的输出端Q3Q2Q1Q0。这样,就可将串行输入(从D1端输入)的数码转换为并行输出(从Q3、Q2、Q1、Q0端输出)的数码。这种转换方式特别适用于将接收到的串行输入信号转换为并行输出信号,以便于打印或由计算机处理。
在图8.8.3中还画出了第5到第8个时钟脉冲作用下,输入数码在寄存器中移位的波形(如图8.8.2所示)。由图可见,在第8个时钟脉冲作用后,数码从Q3端已全部移出寄存器。这说明存入该寄存器中的数码也可以从Q端串行输出。根据需要,可用更多的触发器组成多位移位寄存器。
除了用边沿D 触发器外,还可用其他类型的触发器来组成移位寄存器,例如,用主从JK 触发器来组成移位寄存器,其级间连接方式如图8.8.3所示。根据JK触发器的特征方程,由图8.8.3可得:
FF2和FF3的接法与FF1完全相似,所以各JK 触发器均以D 触发器的功能工作,图8.8.3和图8.8.1所示电路具有相同的功能。
双向移位寄存器:
若将图8.8.1所示电路中各触发器间的连接顺序调换一下,让右边触发器的输出作为左邻触发器的数据输入,则可构成左向移位寄存器。若再增添一些控制门,则可构成既能右移(由低位向高位)、又能左移(由高位至低位)的双向移位寄存器。图8.8.4是双向移位寄存器的一种方案,它是利用边沿D 触发器组成的,每个触发器的数据输入端D 同与或非门组成的转换控制门相连,移位方向取决于移位控制端S的状态。
当S=1时,D0=DSR,D1=Q0,即FF0的D0端与右移串行输入端DSR接通,FF1的D1端与Q0接通,在时钟脉冲CP 作用下,由DSR端输入的数据将作右向移位;反之,当S=0时,D0=Q1 ,D1=Q2,在时钟脉冲CP作用下,Q2、 Q1的状态将作左向移位。同理,可以分析其他两位触发器间的移位情况。由此可见,图8.8.4所示寄存器可作双向移位。当S=1时,数据作右向移位;当S=0时,数据作左向移位。可实现串行输入——串行输出(由DOR 或DOL 输出)、串行输入――并行输出工作方式(由Q3~Q0 输出)。
有时要求在移位过程中数据不要丢失,仍然保持在寄存器中。只要将移位寄存器的最高位的输出接至最低位的输入端,或将最低位的输出接至最高位的输入端。这种移位寄存器称为循环移位寄存器,它也可以作为计数器用,称为环行计数器。
移位寄存器工作原理
移位寄存器不仅能够寄存数码,而且具有移位功能。移位是数字系统和计算机技术中非常重要的一个功能。如二进制数0101乘以2的运算,可以通过将0101左移一位实现;而除以2的运算则可通过右移一位实现。
移位寄存器的种类很多,有左移寄存器、右移寄存器、双向移位寄存器和循环移位寄存器等。
图9-14所示是由四个触发器组成的四位左移寄存器。数码从第一个触发器的端串行输入,使用前先用将各触发器清零。现将数码 1101从高位到低位依次送到端。
图9-14 由触发器组成的四位左移寄存器
表9-6 四位左移寄存器状态表
第一个CP过后,=d3=1,其他触发器输出状态仍为0,即=000,d3= 0001。第二个CP过后,=d2=1,=d3=1,而==0。经过四个CP脉冲后,=d3d2d1d0=1101,存数结束。各输出端状态如表9-6所示。如果继续送四个移位脉冲,就可以使寄存的这四位数码1101逐位从端输出,这种取数方式为串行输出方式。直接从 取数为并行输出方式。
全部0条评论
快来发表一下你的评论吧 !