FPGA学习笔记——Shift Register(RAM-based)(一)

 1、Shift Register(RAM-based)是MegaWizard Plug-In Manager中的一个IP core,该工具提供了丰富的库函数,这些库函数专门针对Altera公司的器件进行优化,电路结构简单,并大大减少了设计者的工作量。通过MegaWizard Plug-In Manager工具的向导,设计者可以利用Quartus II提供的库函数自定义功能宏块,并设置模块参数和可选端口数值。

https://www.electronics-tutorials.ws/sequential/seq_5.html

2、Shift Register(移位寄存器) 

       移位寄存器是一种时序逻辑电路,可用于以二进制数形式存储或传输数据。它加载输入的数据,然后在每个时钟周期将其移动或“移位”到其输出,因此称为移位寄存器。一个移位寄存器基本上由几个单一位的“D-锁存器”组成,每个数据位表示一个逻辑“0”或“1”,以串联式(Serial)菊花链(daisy-chain)连接在一起,以便从 一个数据锁存器(data latch)的输出成为下一个锁存器的输入,依此类推。

       数据位可以顺序地从移位寄存器输入或输出,也就是从左或右方向一个接一个地输入或输出,或者同时以并行的方式一起输入或输出。组成移位寄存器所需的数据锁存器的数量通常取决于要存储的位数,最常见的是由8个单独的数据锁存器构成的8位(一个字节)宽度的移位寄存器。

       移位寄存器用于数据存储或数据移动,因此通常用于计算器或计算机内部,例如两个二进制数字相加之前可进行存储,或者将数据从串行转换为并行或并行或并行串行格式。构成移位寄存器的各个数据锁存器全部由公共时钟(Clk)信号驱动,使其成为同步设备。

移位寄存器IC通常提供一个清除或复位连接,以便可以根据需要进行“SET”或“RESET”。通常,移位寄存器有四种不同的工作模式,通过移位寄存器的基本数据移动是:

(1)串行输入到并行输出(SIPO) - 寄存器一次一位地加载串行数据,所存储的数据在输出端以并行形式提供。
(2)串行输出到串行输出(SISO) - 数据在寄存器的“IN”和“OUT”串行移位,在时钟控制下以左或右的方向一次一位地移位。
(3)并行输入到串行输出(PISO) - 并行数据同时加载到寄存器中,并在时钟控制下一次一位地串行移出寄存器。
(4)并行输入到并行输出(PIPO) - 并行数据同时加载到寄存器中,并通过相同的时钟脉冲一起传输到各自的输出。

数据通过移位寄存器从左到右移动的效果可以用图形表示为:

                             

       而且,通过移位寄存器移动数据,可以是在左边(左移)到右边,(右移)左进右出,(旋转)或使用同一个寄存器左右移,从而使其成为双向的移位寄存器。在本教程中,假定所有的数据向右移动(右移)。

3、Serial-in to Parallel-out (SIPO) Shift Register

               

操作如下:假设所有触发器(FFA到FFD)刚刚被复位(CLEAR输入),所有输出QA到QD都处于逻辑电平“0”,即没有并行数据输出。

如果逻辑“1”连接到FFA的DATA输入引脚,那么在第一个时钟脉冲时,FFA的输出,因此产生的QA​​将被设置为逻辑“1”,所有其他输出仍保持逻辑“ 0” 。现在假定FFA的DATA输入引脚再次回到逻辑“0”,给我们一个数据脉冲或0-1-0。

 第二个时钟脉冲会将FFA的输出变为逻辑“0”,FFB和QB的输出变为逻辑“1”,因为其输入D具有QA的逻辑“1”电平。逻辑“1”现在已经移动或“移位”了一个位置,沿着寄存器向右移动,就像现在在QA一样。

当第三个时钟脉冲到达时,这个逻辑“1”值移到FFC(QC)的输出端,等等,直到第五个时钟脉冲到来,所有的输出QA到QD再次回到逻辑电平“0”,因为FFA的输入在逻辑电​​平“0”保持不变。

每个时钟脉冲的作用是将每一级的数据内容向右移一位,如下表所示,直到0-0-0-1的完整数据值被存入寄存器。现在可以从QA到QD的输出直接读取此数据值。

然后数据已经从串行数据输入信号转换为并行数据输出。真值表和后面的波形显示逻辑“1”从左到右通过寄存器的传播如下。

                             

                               

 

 请注意,在第四个时钟脉冲结束后,数据(0-0-0-1)的4位数据被存储在寄存器中,并且只要寄存器的时钟停止,就会保持在那里。实际上,寄存器的输入数据可以由逻辑“1”和“0”的各种组合组成。通常可用的SIPO IC包括标准的8位74LS164或74LS594。

4、Serial-in to Serial-out (SISO) Shift Register

这个移位寄存器与上面的SIPO非常相似,除了在从输出QA到QD以并行形式直接读取数据之前,这次允许数据直接通过寄存器流出另一端。 由于只有一个输出,所以DATA以串行模式一次一位地移出移位寄存器,因此名称串行输入到串行输出移位寄存器或SISO。

SISO移位寄存器是四种配置中最简单的一种,因为它只有三个连接,串行输入(SI)决定什么进入左手触发器,串行输出(SO)取自输出 右手触发器和排序时钟信号(Clk)。 下面的逻辑电路图显示了一个通用串行输入移位寄存器。

               

如果输出数据与输入数据完全相同,您可能会想到SISO移位寄存器的意义。那么这种类型的移位寄存器也可以作为临时存储设备,或者它可以作为数据的时间延迟设备,时间延迟量由寄存器中的级数,4,8,16等等来控制,或者通过改变时钟脉冲的应用。通常可用的IC包括74HC595 8位串行输入到串行输出移位寄存器,均带有3态输出。

5、Parallel-in to Serial-out (PISO) Shift Register

并行输入到输出移位寄存器的作用与上面的串行输入并行输出相反。数据以所有数据位同时进入其输入的并行格式加载到寄存器,寄存器的并行输入引脚PA到PD。数据然后以正常右移模式从表示存在于PA处的数据的Q寄存器顺序地读出到PD。

该数据在每个时钟周期以串行格式一次输出一位。需要注意的是,使用这种类型的数据寄存器,不需要时钟脉冲来并行加载已经存在的寄存器,但是需要四个时钟脉冲来卸载数据。

               

由于这种类型的移位寄存器将诸如8位数据字的并行数据转换成串行格式,所以它可以用来将许多不同的输入线多路复用成单个串行数据流,该串行数据流可以直接发送到计算机或通过通信线路。通常可用的IC包括74HC166 8位并行/串行输出移位寄存器。

6、Parallel-in to Parallel-out (PIPO) Shift Register

最后的操作模式是并行输入到并行输出移位寄存器。这种类型的移位寄存器还可以用作临时存储设备或类似于上述SISO配置的时间延迟设备。数据以并行格式呈现给并行输入引脚PA至PD,然后通过相同的时钟脉冲直接一起传输至各自的输出引脚QA至QA。然后一个时钟脉冲加载和卸载寄存器。下面显示了这种并行加载和卸载的安排。

                   

PIPO移位寄存器是四种配置中最简单的,因为它只有三个连接,并行输入(PI)决定了什么进入触发器,并行输出(PO)和排序时钟信号(Clk)。

与串入输出移位寄存器类似,这种类型的寄存器也可以作为临时存储设备或时间延迟设备,延时量随时钟脉冲的频率而变化。而且,在这种类型的寄存器中,由于不需要串行移位数据,所以在各个触发器之间不存在互连。

7、Universal Shift Register(通用移位寄存器)

如今,有许多高速双向“通用”型移位寄存器可供选择,如TTL 74LS194,74LS195或CMOS 4035,可作为4位多功能设备使用,可用于串行到串行,左移,右移,串行 - 并行,并行 - 串行或并行 - 并行多功能数据寄存器,因此称为“通用”。

这些通用移位寄存器可以执行并行和串行输入的任意组合来输出操作,但需要额外的输入来指定所需的功能以及预加载和重置设备。一个常用的通用移位寄存器是TTL 74LS194,如下所示。      

             

通用移位寄存器是非常有用的数字设备。它们可以配置为响应需要某种形式的临时存储器存储的操作,或者用于延迟诸如SISO或PIPO配置模式的信息,或者以串行或并行格式从一个点传输数据到另一个点。通用移位寄存器在算术运算中经常被用来将数据向左或向右移位以进行乘法或除法运算。

8、Shift Register Tutorial Summary

然后总结一下关于移位寄存器

(1)一个简单的移位寄存器可以仅使用D型触发器,每个数据位使用一个触发器。
(2)每个触发器的输出连接到右侧触发器的D输入端。
(3)移位寄存器将数据保存在每个时钟脉冲中被移动或“移位”到其所需位置的存储器中。
(4)每个时钟脉冲将寄存器的内容向左或向右移位一位。
(5)数据位可以以串行输入(SI)配置一次加载一位,或者以并行配置(PI)同时加载。
(6)对于串行输出(SO),可以一次一位地从寄存器中删除数据,或者从并行输出(PO)同时删除全部数据。
(7)移位寄存器的一个应用是在串行和并行之间或并行到串行之间的数据转换。
(8)移位寄存器分别被识别为SIPO,SISO,PISO,PIPO,或者作为通用移位寄存器,将所有功能组合在单个设备中。

 

          

 

posted @ 2018-01-23 16:03  Jasmineee  阅读(14277)  评论(0编辑  收藏  举报