数字电路-移位寄存器的应用
在上一章中,我们讨论了四种类型的移位寄存器。根据需要,我们可以使用其中一个移位寄存器。以下是移位寄存器的应用。
移位寄存器用作并行到串行转换器,将并行数据转换为串行数据。它在模数转换器 (ADC) 块之后的发送器部分使用。
移位寄存器用作 串行到并行转换器,将串行数据转换为并行数据。它用于数模转换器 (DAC) 块之前的接收器部分。
移位寄存器与一些附加门一起生成零和一的序列。因此,它被用作序列生成器。
移位寄存器也用作计数器。根据最右侧 D 触发器连接到串行输入的输出类型,有两种类型的计数器。它们是环计数器和约翰逊环计数器。
本章我们就来一一讨论这两个计数器。
环形计数器
在前面的章节中,我们讨论了串行输入-并行输出(SIPO)移位寄存器的操作。它以串行形式接受来自外部的数据,并且需要“N”个时钟脉冲才能移位“N”位数据。
类似地,“N”位环形计数器执行类似的操作。但是,唯一的区别是最右边的 D 触发器的输出作为最左边的 D 触发器的输入,而不是从外部应用数据。因此,环形计数器产生一系列状态(0 和 1 的模式),并且每“N”个时钟周期重复一次。
3位环形计数器的框图如下图所示。
3 位环形计数器仅包含一个 3 位 SIPO 移位寄存器。最右边的 D 触发器的输出连接到最左边的 D 触发器的串行输入。
假设从最左到最右的D触发器的初始状态为$Q_{2}Q_{1}Q_{0}=001$。这里,$Q_{2}$和$Q_{0}$分别是MSB和LSB。我们可以从下表了解环形计数器的工作原理。
时钟上升沿数量 | 串行输入 = Q 0 | Q 2(最高有效位) | 问1 | Q 0 (最低有效位) |
---|---|---|---|---|
0 | - | 0 | 0 | 1 |
1 | 1 | 1 | 0 | 0 |
2 | 0 | 0 | 1 | 0 |
3 | 0 | 0 | 0 | 1 |
无时钟信号时D触发器的初始状态为$Q_{2}Q_{1}Q_{0}=001$。时钟信号每三个正边沿转换就会重复此状态。
因此,对于时钟信号的每个正沿,都会发生以下操作。
第一个D触发器的串行输入获得第三个触发器的先前输出。因此,第一个D触发器的当前输出等于第三个触发器的先前输出。
第一和第二D触发器的先前输出被右移一位。这意味着,第二和第三D触发器的当前输出等于第一和第二D触发器的先前输出。
约翰逊环计数器
Johnson Ring 计数器的操作与Ring 计数器类似。但是,唯一的区别是最右边的 D 触发器的补码输出作为最左边的 D 触发器的输入而不是正常输出。因此,“N”位约翰逊环计数器产生一系列状态(0 和 1 的模式),并且每“2N”个时钟周期重复一次。
约翰逊环计数器也称为扭环计数器和开关尾环计数器。3位约翰逊环计数器的框图如下图所示。
3 位 Johnson Ring 计数器还仅包含一个 3 位 SIPO 移位寄存器。最右边的 D 触发器的互补输出连接到最左边的 D 触发器的串行输入。
假设最初所有 D 触发器都被清除。因此,$Q_{2}Q_{1}Q_{0}=000$。这里,$Q_{2}$和$Q_{0}$分别是MSB和LSB。我们可以从下表了解约翰逊环计数器的工作原理。
时钟上升沿数量 | 串行输入 = Q 0 | Q 2(最高有效位) | 问1 | Q 0 (最低有效位) |
---|---|---|---|---|
0 | - | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 |
2 | 1 | 1 | 1 | 0 |
3 | 1 | 1 | 1 | 1 |
4 | 0 | 0 | 1 | 1 |
5 | 0 | 0 | 0 | 1 |
6 | 0 | 0 | 0 | 0 |
无时钟信号时D触发器的初始状态为$Q_{2}Q_{1}Q_{0}=000$。时钟信号每六个正边沿转换就会重复此状态。
因此,对于时钟信号的每个正沿,都会发生以下操作。
第一个 D 触发器的串行输入获得第三个触发器先前的补码输出。因此,第一个D触发器的当前输出等于第三个触发器的先前互补输出。
第一和第二D触发器的先前输出被右移一位。这意味着,第二和第三D触发器的当前输出等于第一和第二D触发器的先前输出。