数字电路-移位寄存器的应用


在上一章中,我们讨论了四种类型的移位寄存器。根据需要,我们可以使用其中一个移位寄存器。以下是移位寄存器的应用。

  • 移位寄存器用作并行到串行转换器,将并行数据转换为串行数据。它在模数转换器 (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触发器的先前输出。