数字电路 - 移位寄存器
我们知道一个触发器可以存储一位信息。为了存储多位信息,我们需要多个触发器。用于保存(存储)二进制数据的触发器组称为寄存器。
如果寄存器能够向右侧或向左侧移位位,则称为移位寄存器。“N”个移位寄存器包含“N”个触发器。以下是基于应用输入和访问输出的四种类型的移位寄存器。
- 串行输入 - 串行输出移位寄存器
- 串行输入 - 并行输出移位寄存器
- 并行输入 - 串行输出移位寄存器
- 并行输入 - 并行输出移位寄存器
串行输入 - 串行输出 (SISO) 移位寄存器
允许串行输入并产生串行输出的移位寄存器称为串行输入-串行输出(SISO)移位寄存器。3位SISO移位寄存器的框图如下图所示。
该框图由三个级联的D 触发器组成。这意味着,一个 D 触发器的输出连接为下一个 D 触发器的输入。所有这些触发器都是彼此同步的,因为相同的时钟信号被施加到每个触发器。
在这个移位寄存器中,我们可以从最左边的 D 触发器的输入串行发送位。因此,该输入也称为串行输入。对于时钟信号的每个正边沿触发,数据从一个阶段转移到下一个阶段。因此,我们可以从最右边的 D 触发器的输出串行接收这些位。因此,该输出也称为串行输出。
例子
让我们通过在输入端串行发送二进制信息“011”从 LSB 到 MSB来了解 3 位 SISO 移位寄存器的工作原理。
假设从最左到最右的D触发器的初始状态为$Q_{2}Q_{1}Q_{0}=000$。我们可以从下表了解3位SISO移位寄存器的工作原理。
时钟上升沿数量 | 串行输入 | 问2 | 问1 | 问0 |
---|---|---|---|---|
0 | - | 0 | 0 | 0 |
1 | 1(最低有效位) | 1 | 0 | 0 |
2 | 1 | 1 | 1 | 0 |
3 | 0(最高位) | 0 | 1 | 1(最低有效位) |
4 | - | - | 0 | 1 |
5 | - | - | - | 0(最高位) |
无时钟信号时D触发器的初始状态为$Q_{2}Q_{1}Q_{0}=000$。这里,串行输出来自$Q_{0}$。因此,LSB (1) 在时钟的第 3个正边沿接收,MSB (0) 在时钟的第 5个正边沿接收。
因此,3位SISO移位寄存器需要5个时钟脉冲才能产生有效输出。类似地,N 位 SISO 移位寄存器需要2N-1 个时钟脉冲才能移位“N”位信息。
串行输入 - 并行输出 (SIPO) 移位寄存器
允许串行输入并产生并行输出的移位寄存器称为串行输入-并行输出(SIPO)移位寄存器。3位SIPO移位寄存器的框图如下图所示。
该电路由三个级联的D触发器组成。这意味着,一个 D 触发器的输出连接为下一个 D 触发器的输入。所有这些触发器都是彼此同步的,因为相同的时钟信号被施加到每个触发器。
在这个移位寄存器中,我们可以从最左边的 D 触发器的输入串行发送位。因此,该输入也称为串行输入。对于时钟信号的每个正边沿触发,数据从一个阶段转移到下一个阶段。在这种情况下,我们可以并行访问每个 D 触发器的输出。因此,我们将从该移位寄存器获得并行输出。
例子
让我们通过在输入端串行发送二进制信息“011”从 LSB 到 MSB来看看 3 位 SIPO 移位寄存器的工作原理。
假设从最左到最右的D触发器的初始状态为$Q_{2}Q_{1}Q_{0}=000$。这里,$Q_{2}$和$Q_{0}$分别是MSB和LSB。我们可以从下表了解3位SIPO移位寄存器的工作原理。
时钟上升沿数量 | 串行输入 | Q 2(最高有效位) | 问1 | Q 0 (最低有效位) |
---|---|---|---|---|
0 | - | 0 | 0 | 0 |
1 | 1(最低有效位) | 1 | 0 | 0 |
2 | 1 | 1 | 1 | 0 |
3 | 0(最高位) | 0 | 1 | 1 |
无时钟信号时D触发器的初始状态为$Q_{2}Q_{1}Q_{0}=000$。对于时钟的第三个正沿,在D触发器的输出处并行获得二进制信息“011” 。
因此,3 位 SIPO 移位寄存器需要三个时钟脉冲才能产生有效输出。类似地,N位SIPO移位寄存器需要N个时钟脉冲才能移位“N”位信息。
并行输入-串行输出 (PISO) 移位寄存器
允许并行输入并产生串行输出的移位寄存器称为并行输入-串行输出(PISO)移位寄存器。3位PISO移位寄存器的框图如下图所示。
该电路由三个级联的D触发器组成。这意味着,一个 D 触发器的输出连接为下一个 D 触发器的输入。所有这些触发器都是彼此同步的,因为相同的时钟信号被施加到每个触发器。
在此移位寄存器中,我们可以通过将预设启用设置为 1,将并行输入应用于每个 D 触发器。对于时钟信号的每个正边沿触发,数据从一个阶段移位到下一个阶段。因此,我们将从最右边的 D 触发器获得串行输出。
例子
让我们通过预设输入并行应用二进制信息“011”来看看 3 位 PISO 移位寄存器的工作原理。
由于预设输入在时钟正沿之前应用,因此从最左到最右的 D 触发器的初始状态将为 $Q_{2}Q_{1}Q_{0}=011$。我们可以从下表了解3位PISO移位寄存器的工作原理。
时钟上升沿数量 | 问2 | 问1 | 问0 |
---|---|---|---|
0 | 0 | 1 | 1(最低有效位) |
1 | - | 0 | 1 |
2 | - | - | 0(最低有效位) |
这里,串行输出来自$Q_{0}$。因此,在施加时钟正边沿之前接收 LSB (1),并在第二个时钟正边沿接收 MSB (0) 。
因此,3 位 PISO 移位寄存器需要两个时钟脉冲才能产生有效输出。类似地,N 位 PISO 移位寄存器需要N-1 个时钟脉冲才能移位“N”位信息。
并行输入 - 并行输出 (PIPO) 移位寄存器
允许并行输入并产生并行输出的移位寄存器称为并行输入-并行输出(PIPO)移位寄存器。3位PIPO移位寄存器的框图如下图所示。
该电路由三个级联的D触发器组成。这意味着,一个 D 触发器的输出连接为下一个 D 触发器的输入。所有这些触发器都是彼此同步的,因为相同的时钟信号被施加到每个触发器。
在这个移位寄存器中,我们可以通过将预设启用设置为1来将并行输入应用到每个D触发器。我们可以通过预设或清除来应用并行输入。这两个是异步输入。这意味着触发器根据异步输入的值产生相应的输出。在这种情况下,输出的效果与时钟转换无关。因此,我们将从每个 D 触发器获得并行输出。
例子
让我们通过预设输入并行应用二进制信息“011”来看看 3 位 PIPO 移位寄存器的工作原理。
由于预设输入在时钟正沿之前应用,因此从最左到最右的 D 触发器的初始状态将为 $Q_{2}Q_{1}Q_{0}=011$。因此,在施加时钟正沿之前,在D触发器的输出处并行获得二进制信息“011” 。
因此,3 位 PIPO 移位寄存器需要零时钟脉冲才能产生有效输出。类似地,N 位 PIPO 移位寄存器不需要任何时钟脉冲来移位“N”位信息。