📅  最后修改于: 2020-12-30 06:56:05             🧑  作者: Mango
一组用于存储多个数据位并将数据从一个触发器移到另一个触发器的触发器称为移位寄存器。当在寄存器内部或内部或外部施加时钟脉冲时,寄存器中存储的位将移位。要形成一个n位移位寄存器,我们必须连接n个触发器。因此,二进制数的位数与触发器的数量成正比。触发器的连接方式应使第一个触发器的输出成为另一个触发器的输入。
移位寄存器可以将这些位向左或向右移位。移位寄存器,其中移动位的左侧,被称为“左移位寄存器”,并将其移入位到右侧,被称为“右左寄存器”。
移位寄存器分为以下几种类型:
在“串行输入串行输出”中,数据串行移位“ IN”或“ OUT”。在SISO中,在时钟控制下,一次向右或向左移动一位。
最初,所有触发器都设置为“复位”状态,即Y 3 = Y 2 = Y 1 = Y 0 =0。如果我们传递二进制数1111,则该数字的LSB位首先应用于Din位。 。第三触发器FF-3的D3输入直接连接到串行数据输入D3。输出Y 3被传递到下一个触发器的数据输入d 2。对于其余触发器,该过程保持相同。下面给出了“ Serial IN Serial OUT”的框图。
当禁用时钟信号施加时,输出Y 3 Y 2 Y 1 Y 0 =0000。数字的LSB位传递到数据输入D in ,即D 3 。我们将施加时钟,这次D 3的值为1。设置第一个触发器FF-3,并且在时钟的第一个下降沿将字存储在寄存器中。现在,存储的单词为1000。
二进制数的下一位,即1,传递到数据输入D 2 。设置第二个触发器FF-2,并在时钟的下一个下降沿触发时存储该字。存储的单词更改为1100。
二进制数的下一位,即1,传递到数据输入D 1 ,并施加时钟。设置第三触发器FF-1,并在时钟的负沿再次触发时存储该字。存储的单词更改为1110。
类似地,将二进制数的最后一位(即1)传递到数据输入D 0 ,并施加时钟。设置最后一个触发器,即FF-0,并在时钟的下降沿到达时存储该字。存储的单词更改为1111。
在“ Serial IN Parallel OUT”移位寄存器中,数据串行传递到触发器,并以并行方式获取输出。数据逐位传递到寄存器中,并且输出保持禁用状态,直到不将数据传递给数据输入为止。当数据传递到寄存器时,使能输出,并且触发器包含其返回值
以下是并行输出移位寄存器中4位串行的框图。具有四个D触发器的电路包含清除和时钟信号以重置这四个触发器。在SIPO中,第二个触发器的输入是第一个触发器的输出,依此类推。因为触发器彼此同步,所以相同的时钟信号被施加到每个触发器。并行输出用于通信。
在“并行输入串行输出”(Parallel IN Serial OUT)寄存器中,以并行方式输入数据,并且结果串行产生。下面设计了一个四位的“并行输入串行输出”寄存器。触发器的输入是前一个触发器的输出。输入和输出通过组合电路连接。通过该组合电路,二进制输入B 0 ,B 1 ,B 2 ,B 3被传递。变速模式和负载模式是“ PISO”电路工作的两种模式。
当第二,第四和第六“与”门处于活动状态时,将位B 0 ,B 1 ,B 2和B 3传递到相应的触发器。当移位或负载条线设置为0时,这些门处于活动状态。当时钟沿为低电平时,二进制输入B0,B1,B2和B3将被加载到相应的触发器中。因此,发生并行加载。
当加载和移位线设置为0时,第二,第四和第六门处于非活动状态。因此,我们无法以并行方式加载数据。此时,第一,第三和第五门将被激活,并且数据的移位将被向右移。这样,将发生“并行输入串行输出”操作。
在“ Parallel IN Parallel OUT”中,输入和输出以并行方式进入寄存器。输入A 0 ,A 1 ,A 2和A 3直接传递到相应触发器的数据输入D 0 ,D 1 ,D 2和D 3。当施加负时钟沿时,二进制输入的位被加载到触发器。加载所有位都需要时钟脉冲。在输出端,将显示已加载的位。
将数字的每一位左移一位后的二进制数将等于将原始数乘以2所产生的数字。以同样的方式,将数字的每一位右移后的二进制数一个位置将等于将原始数字除以2得到的数字。
为了使用移位寄存器执行乘法和除法运算,要求数据应在两个方向上,即在寄存器中向左或向右移动。这样的寄存器称为“双向”移位寄存器。
下图是4位“双向”移位寄存器的示意图,其中D R是“串行右移数据输入” , DL是“左移数据输入” ,而M是“模式选择输入” 。
1)右移操作(M = 1)
2)左移操作(M = 0)
数据在一个方向上移位的寄存器称为“单向”移位寄存器。在两个方向上都进行数据移位的寄存器称为“双向”移位寄存器。 “通用”移位寄存器是一种特殊类型的寄存器,可以并行加载数据并在两个方向(即左右)上移位该数据。
输入M,即模式控制输入,设置为1以执行并行加载操作。如果此输入设置为0,则执行串行移位操作。如果我们将模式控制输入端接地,则电路将作为“双向”寄存器工作。通用移位寄存器的示意图如下。当输入传递到串行输入时,寄存器将执行“向左串行”操作。当输入传递到输入D时,寄存器执行串行权限操作。