第 12 章 触发器与寄存器
1. 本章要解决的问题
第 11 章的 D 锁存器在整个透明期都允许数据穿过。这个特性适合锁存器流水线,却也要求设计者持续考虑透明窗口和穿透路径。许多同步系统更希望所有状态只在少数明确时刻更新。
本章要解决六个问题:
- 怎样让存储元件只在时钟边沿附近接收一次数据?
- 正边沿和负边沿触发分别是什么意思?
- 时钟到 Q 延迟、建立时间和保持时间描述什么?
- 使能怎样决定“写入新值”还是“保持旧值”?
- 同步复位和异步复位的行为有什么区别?
- 怎样把多个触发器组成并行寄存器和移位寄存器?
2. 与第 11 章的联系
高电平有效 D 锁存器在 \(EN=1\) 的整个区间透明。如果两个同相锁存器串联,数据可能在一个透明窗口内穿过多级。
边沿触发 D 触发器(edge-triggered D flip-flop)把状态更新集中到时钟边沿附近。它在有效边沿读取 \(D\),然后在两个有效边沿之间保持 \(Q\)。因此,分析重点从“当前是否处于透明期”变为“有效边沿到来前的 \(D\) 是多少”。
图 12-1 对比相同 \(D\) 和时钟下的锁存器与正边沿 D 触发器。锁存器在时钟高电平期间跟随数据;触发器只在上升沿采样。
图 12-1 电平敏感锁存器在有效电平期间透明,边沿触发器只在有效边沿更新一次
3. 前置知识快速检查
- 高电平有效 D 锁存器在 \(EN=1\) 和 \(EN=0\) 时分别怎样工作?
- 为什么“透明”不等于零传播延迟?
- 若两个同相 D 锁存器串联并同时透明,数据可能发生什么?
- 一位状态变量 \(Q\) 能表示多少种状态?
参考答案:
- \(EN=1\) 时 \(Q\) 跟随 \(D\),\(EN=0\) 时保持旧状态。
- 数据仍要经过门或传输结构,并给内部与输出节点电容充放电。
- 数据可能在同一个透明窗口内连续穿过两级。
- 两种,分别用逻辑 0 和逻辑 1 表示。
若这些问题不熟悉,先回看第 11 章的第 11~13 节。
4. 学习目标
学完本章后,你应能:
- 区分锁存器、触发器和寄存器;
- 识别正边沿与负边沿触发符号;
- 根据 \(CLK\) 和 \(D\) 波形确定 D 触发器输出;
- 解释时钟到 Q 延迟以及建立/保持窗口;
- 写出带使能 D 触发器的下一状态关系;
- 区分同步复位和异步复位;
- 根据复位、使能和时钟的优先级判断输出;
- 说明 \(N\) bit 寄存器的结构和并行装载;
- 根据串行输入逐拍分析移位寄存器;
- 把一位存储行为连接到后续计数器与同步系统。
5. 时钟提供统一的状态更新时间
时钟(clock,\(CLK\))是周期性变化的控制信号。一个完整重复区间称为时钟周期(clock period),记作 \(T_{clk}\);每秒重复次数称为时钟频率(clock frequency),记作 \(f_{clk}\):
\[ f_{clk}=\frac{1}{T_{clk}}. \]
若 \(T_{clk}=2\) ns,则
\[ f_{clk}=\frac{1}{2\times10^{-9}}=500\ \text{MHz}. \]
时钟从 0 变为 1 称为上升沿(rising edge),从 1 变为 0 称为下降沿(falling edge)。被触发器用来采样数据的边沿称为有效边沿(active edge)。
同步系统让大量状态元件使用同一组时钟边沿更新。组合逻辑在边沿之间计算,触发器在下一个有效边沿接收结果,系统因而形成“采样—计算—再采样”的节奏。
6. 正边沿 D 触发器
正边沿 D 触发器(positive-edge-triggered D flip-flop)在每个时钟上升沿采样 \(D\)。理想功能写作
\[ Q^{+}=D(t_{\uparrow}^{-}). \]
\(t_{\uparrow}\) 表示上升沿时刻,上标 \(-\) 表示读取边沿到来前已经稳定的值。边沿之间的 \(D\) 变化不会立即改变 \(Q\)。
电路符号的时钟端带有小三角形,表示边沿触发。没有反相小圆圈时通常表示正边沿触发;时钟端同时带三角形和小圆圈时表示负边沿触发。
立即检查
正边沿触发器的两个相邻上升沿之间,\(D\) 从 0 变为 1 又变回 0,但下一个上升沿前稳定为 0。触发器采到什么?
答案是 0。边沿之间的暂态不会单独更新状态,触发器读取的是有效边沿附近满足时序要求的 \(D\)。
7. 两个相反相位的锁存器怎样形成边沿触发
正边沿 D 触发器可以用两个相反相位工作的 D 锁存器建立直觉:
- 主锁存器在 \(CLK=0\) 时透明,在 \(CLK=1\) 时关闭;
- 从锁存器在 \(CLK=1\) 时透明,在 \(CLK=0\) 时关闭。
当 \(CLK=0\) 时,主锁存器跟随 \(D\),从锁存器保持旧 \(Q\)。上升沿到来时,主锁存器关闭并保存边沿前的数据,从锁存器打开,把主锁存器保存的值传到输出。时钟高电平期间,后续 \(D\) 变化不能穿过已经关闭的主锁存器。
图 12-2 主锁存器低电平透明、从锁存器高电平透明,组合后把外部状态更新限制在上升沿附近
“边沿触发”是外部观察到的功能抽象。内部仍包含有延迟的门、传输门、反馈节点和互补时钟。标准单元可能采用脉冲触发或其他晶体管结构,但对使用者提供相同的边沿采样接口。
8. 时钟到 Q 延迟与采样窗口
触发器不会在时钟边沿的同一瞬间改变输出。有效边沿越过参考电平后,输出 \(Q\) 经过一段时间才越过相应参考电平,这段时间称为时钟到 Q 延迟(clock-to-Q delay):
\[ t_{cq}=t(Q\text{ 越过参考点})-t(CLK\text{ 有效边沿越过参考点}). \]
与普通门一样,实际库通常分别给出 \(t_{cq,LH}\) 和 \(t_{cq,HL}\),并随负载、输入边沿和 PVT 条件变化。基础分析可使用题目给出的单一最大值。
为了可靠采样,\(D\) 需要在有效边沿前稳定至少建立时间 \(t_{setup}\),并在边沿后继续稳定至少保持时间 \(t_{hold}\)。图 12-3 把三个时间量放在同一张波形图中。
图 12-3 数据在有效边沿前后保持稳定,输出在时钟到 Q 延迟后更新
本章用这些时间量读波形。第 14 章会把它们放入完整的寄存器到寄存器路径,计算时钟周期与时序裕量;第 15 章会说明时序违例怎样引发亚稳态风险。
9. 负边沿 D 触发器
负边沿 D 触发器在每个下降沿采样:
\[ Q^{+}=D(t_{\downarrow}^{-}). \]
分析方法与正边沿触发器相同,只是有效边沿改为下降沿。画波形时先在所有有效下降沿画竖线,再读取每条竖线前的数据值。
正边沿与负边沿触发器可以存在于同一系统,但跨越半个周期的路径会带来不同的时序预算。基础设计通常先统一使用一种边沿,减少不必要的时序复杂度。
10. 读触发器波形的固定步骤
处理波形题时按以下顺序:
- 先检查是否存在有效的异步控制;
- 标出全部有效时钟边沿;
- 在每个边沿读取边沿前的 \(D\)、使能和同步控制;
- 按控制优先级决定下一状态;
- 把 \(Q\) 的变化画在边沿之后 \(t_{cq}\) 的位置;
- 两个有效边沿之间保持 \(Q\),除非异步控制改变它。
这套方法避免了两个常见错误:把 \(D\) 的每次变化都画到 \(Q\),以及忽略异步复位可以在边沿之间生效。
11. 带使能的 D 触发器
使能触发器需要在有效边沿做一个选择:
- \(EN=1\):装入新数据 \(D\);
- \(EN=0\):保持旧状态 \(Q\)。
可以在 D 触发器前放一个 2 选 1 MUX:
\[ D_{in}=EN\cdot D+\overline{EN}\cdot Q. \]
在有效边沿,触发器采样 \(D_{in}\):
\[ Q^{+}=\begin{cases} D, & EN=1,\\ Q, & EN=0. \end{cases} \]
图 12-4 MUX 在新数据与反馈状态之间选择,触发器仍只在有效边沿更新
这个方程与 D 锁存器方程外形相同,时间语义却不同。D 锁存器在 \(EN=1\) 的整个电平区间透明;使能触发器只在有效时钟边沿读取 \(EN\) 和 \(D\)。
12. 同步复位
同步复位(synchronous reset)只有在有效时钟边沿到来时才改变状态。以高有效同步复位 \(RST\)、使能 \(EN\) 为例,常见优先级是“复位高于使能”:
\[ Q^{+}=\begin{cases} 0, & RST=1,\\ D, & RST=0,\ EN=1,\\ Q, & RST=0,\ EN=0. \end{cases} \]
若 \(RST\) 在两个上升沿之间变为 1,\(Q\) 不会立刻清零;它等到下一个上升沿才执行复位。同步复位进入普通数据和时钟时序分析,行为容易与系统边沿对齐。
13. 异步复位
异步复位(asynchronous reset)不等待时钟边沿。若低有效异步复位
reset_n 变为 0,触发器经过复位到 Q 的传播延迟后把 \(Q\) 清零。
当 reset_n=1
时,触发器恢复正常边沿采样。复位解除也需要满足器件规定的恢复时间与移除时间:前者限制解除复位到下一有效边沿前的最小间隔,后者限制有效边沿后复位仍需保持的最小间隔。工程中常采用“异步复位、同步释放”的策略。本章先掌握功能波形,第
15 章再讨论释放靠近时钟边沿的风险。
图 12-5 使用相同的复位脉冲比较两种行为。同步复位等到边沿;异步复位在脉冲到来后立即控制输出。
图 12-5 同步复位由有效时钟边沿执行,异步复位可以在边沿之间直接清零状态
14. 异步置位与控制优先级
有些触发器还提供异步置位端,常命名为 preset_n 或
set_n。它在有效时把 \(Q\)
置为
1。异步置位和异步复位同时有效通常属于禁止条件,具体行为必须按单元规格使用。
判断带多个控制端的触发器时,先写优先级。例如:
reset_n=0:立即复位,其他输入暂不参与;reset_n=1且出现上升沿:若 \(EN=1\) 则装入 \(D\),否则保持;- 无上升沿且复位无效:保持。
信号名称只能说明有效电平,不能自动说明同步/异步属性。电路符号、模块接口说明或单元数据手册必须明确这一点。
15. 从一位触发器到 N bit 寄存器
寄存器(register)是一组共享时钟和控制信号的触发器,用来同时保存多 bit 数据。一个 \(N\) bit 寄存器通常由 \(N\) 个 D 触发器并联组成:
\[ Q_i^{+}=D_i,\qquad i=0,1,\ldots,N-1, \]
所有位在同一个有效边沿采样各自的输入。并行装载(parallel load)表示一个边沿同时写入整条数据总线,而不是逐位串行写入。
带使能和同步复位的 \(N\) bit 寄存器可逐位写成
\[ Q_i^{+}=\begin{cases} 0, & RST=1,\\ D_i, & RST=0,\ EN=1,\\ Q_i, & RST=0,\ EN=0. \end{cases} \]
位宽变大不会改变基本控制关系,但会增加时钟负载、数据通路负载和布线规模。
16. 移位寄存器
移位寄存器(shift register)把一个触发器的输出连接到相邻触发器的数据输入。每个有效边沿到来时,所有触发器同时采样,因此整组位模式移动一位。
以 4 bit 右移寄存器 \([Q_3,Q_2,Q_1,Q_0]\) 为例,串行输入记作 \(SI\):
\[ Q_3^{+}=SI, \]
\[ Q_2^{+}=Q_3,\qquad Q_1^{+}=Q_2,\qquad Q_0^{+}=Q_1. \]
\(Q_0\) 是串行输出端。右移后的每一位必须取“边沿前”的相邻旧值,不能在纸面上从左到右依次覆盖,否则会错误地让一个新位在同一边沿穿过多级。
图 12-6 并行寄存器在一个边沿同时装载多位,移位寄存器在一个边沿把旧状态整体移动一位
移位寄存器可以实现串并转换、延迟若干拍、序列产生和简单数据排队。第 13 章会把反馈与移位结构用于环形计数器和序列模块。
17. 完整例题
例题 1:读取正边沿 D 触发器
一个正边沿 D 触发器初始 \(Q=0\)。三个上升沿到来前,\(D\) 分别稳定为
1、0、1。忽略复位和使能。
每个上升沿采样一次,因此三个边沿后的 \(Q\) 依次为 1、0、1。\(Q\) 的实际边沿比时钟边沿晚一个 \(t_{cq}\)。
变式: 若第二、第三个上升沿之间 \(D\) 多次翻转,但第三个边沿前稳定为 1,第三次仍采到 1。
例题 2:读取负边沿 D 触发器
一个负边沿 D 触发器初始 \(Q=1\)。三个下降沿前的 \(D\) 分别为 1、1、0。
只读取下降沿,输出依次为
1、1、0。期间所有上升沿都不是有效采样时刻。
变式: 若把同一器件换成正边沿触发器,必须重新读取每个上升沿前的 \(D\),不能沿用原答案。
例题 3:带使能寄存器
一个 4 bit 正边沿寄存器初始为 0011。连续三个上升沿的
\((EN,D)\) 分别为:
- \((0,1010)\);
- \((1,1010)\);
- \((0,0101)\)。
第一个边沿 \(EN=0\),保持
0011;第二个边沿装入
1010;第三个边沿再次保持。因此三个边沿后的状态为
0011、1010、1010。
变式: 使能无效时输入总线仍可以变化,只要这些变化不通过其他路径产生不希望的功耗或影响。
例题 4:比较同步与异步复位
一个触发器当前 \(Q=1\),下一个上升沿在 100 ps。复位信号在 60 ps 变为有效,题目给定控制到输出延迟为 15 ps。
- 若为同步复位,\(Q\) 在 60 ps 不变,在 100 ps 边沿后按 \(t_{cq}\) 清零;
- 若为异步复位,\(Q\) 可在约 \(60+15=75\) ps 清零,不等待 100 ps 边沿。
变式: 异步复位解除时不能只看功能值,还要检查它与时钟边沿的距离。
例题 5:逐拍分析 4 bit 右移寄存器
初始状态为 \([Q_3Q_2Q_1Q_0]=1010\)。第一个边沿 \(SI=1\),第二个边沿 \(SI=0\)。
第一个边沿使用旧状态:
\[ [Q_3^{+}Q_2^{+}Q_1^{+}Q_0^{+}]=[1,Q_3,Q_2,Q_1]=1101. \]
第二个边沿再使用 1101:
\[ [Q_3^{+}Q_2^{+}Q_1^{+}Q_0^{+}]=[0,1,1,0]=0110. \]
变式: 若第三个边沿 \(SI=1\),下一状态为 1011。
18. 常见误区与反例
误区 1:三角形表示高电平有效
时钟端三角形表示边沿触发。三角形旁没有小圆圈通常是正边沿,有小圆圈通常是负边沿。
误区 2:触发器在边沿处零延迟更新
\(Q\) 在有效边沿后经过 \(t_{cq}\) 才变化。画波形时应把输出边沿画在时钟边沿右侧。
误区 3:使能为 1 时触发器持续透明
使能只决定有效边沿到来时装入还是保持。边沿之间,\(EN=1\) 也不会让 \(Q\) 持续跟随 \(D\)。
误区 4:同步复位一有效就立即清零
同步复位要等有效时钟边沿。需要立即控制输出的是异步复位。
误区 5:异步复位解除也完全不受时钟约束
异步复位的置位可以不等待时钟,解除靠近边沿时仍可能破坏内部采样。工程实现需要检查恢复/移除要求。
误区 6:移位寄存器按连线顺序逐个更新
同一时钟边沿触发的各位同时读取旧状态。计算时应先保存整行旧值,再一次性写出新值。
误区 7:寄存器保存的是十进制数
寄存器保存位模式。无符号、二补码、定点数或控制字段是系统赋予同一位模式的解释。
19. 工程中的实际意义
触发器把连续时间中的电路变化切分成离散的状态更新事件。寄存器则把这种一位采样扩展到数据总线,是同步数字系统最常见的状态边界。
它们用于:
- 保存 ALU 输入、输出和中间结果;
- 构成计数器、状态机和流水线级;
- 保存有效位、控制标志和接口状态;
- 完成串行与并行数据格式转换;
- 把长组合路径切分成多个时钟周期;
- 为静态时序分析提供明确的路径起点和终点。
触发器数量增加会带来面积、漏电和时钟功耗。时钟需要驱动大量单元,因此后续物理实现必须处理时钟树、偏斜和负载。
20. 本章知识链
D 锁存器:有效电平期间透明
↓ 两个相反相位锁存阶段
D 触发器:只在有效边沿采样
↓ 加入 MUX 反馈
带使能触发器:边沿时装入或保持
↓ 加入复位控制
同步复位等待边沿,异步复位立即控制
↓ 多位并联
并行寄存器
↓ 相邻位串接
移位寄存器
↓
下一章:计数器与简单时序模块
21. 本章小结
- 时钟周期与频率满足 \(f_{clk}=1/T_{clk}\)。
- 正边沿 D 触发器在上升沿采样,负边沿 D 触发器在下降沿采样。
- 边沿触发器在两个有效边沿之间保持状态,不像锁存器那样在整个有效电平期间透明。
- \(t_{cq}\) 描述有效边沿到输出变化的传播延迟。
- 数据需要满足边沿前的建立时间和边沿后的保持时间。
- 使能触发器在边沿处根据 \(EN\) 选择新数据或旧状态。
- 同步复位等待有效边沿,异步复位不等待时钟。
- 控制优先级通常先处理异步复位,再处理边沿上的同步复位、使能和数据。
- \(N\) bit 寄存器由 \(N\) 个共享时钟的触发器并联组成。
- 移位寄存器的所有位在同一边沿同时读取旧状态并移动一位。
22. 练习
基础题
- 用一句话区分 D 锁存器和边沿 D 触发器。
- 什么是上升沿、下降沿和有效边沿?
- 正边沿与负边沿 D 触发器的时钟符号有何区别?
- 什么是时钟到 Q 延迟?它与组合门传播延迟的起点有何不同?
- 什么是寄存器?一个 8 bit 寄存器至少需要多少个一位状态元件?
- 用一句话区分同步复位和异步复位。
分析与计算题
- 正边沿 D 触发器初始 \(Q=0\)。四个上升沿前的 \(D\) 依次为
1、1、0、1。写出各边沿后的 \(Q\)。 - 负边沿 D 触发器初始 \(Q=1\)。三个下降沿前的 \(D\) 依次为
0、1、0。写出各边沿后的 \(Q\)。 - 带使能正边沿 D 触发器初始 \(Q=0\)。三个上升沿的 \((EN,D)\) 依次为 \((0,1)\)、\((1,1)\)、\((0,0)\)。写出状态序列。
- 一个带高有效同步复位和使能的触发器当前 \(Q=1\)。某上升沿处 \(RST=1,EN=1,D=1\)。若复位优先,边沿后 \(Q\) 是多少?
- 一个低有效异步复位触发器当前 \(Q=1\)。
reset_n在两个时钟边沿之间变为 0。输出是否需要等待下一个边沿? - 某正边沿触发器要求 \(t_{setup}=30\) ps、\(t_{hold}=10\) ps。上升沿在 200 ps。写出 \(D\) 必须保持稳定的最小时间区间。
- 一个 4 bit 带使能寄存器初始为
1100。两个上升沿的 \((EN,D)\) 分别为 \((0,0011)\)、\((1,0101)\)。写出两个边沿后的状态。 - 4 bit 右移寄存器初始为
0110,连续三个边沿的 \(SI\) 为1、0、1。写出每拍后的状态。 - 为什么第 14 题不能从 \(Q_3\) 开始改写后,立刻用新 \(Q_3\) 计算 \(Q_2\)?
综合题
- 画出一个带使能 D 触发器的 MUX 反馈结构,并说明它与高电平有效 D 锁存器方程相似但时序语义不同。
- 某系统要求复位信号一到来就清零状态,但解除复位必须与时钟对齐。应采用怎样的复位策略?说明原因。
- 为 4 bit 寄存器写出“高有效同步复位优先,其次使能并行装载,否则保持”的逐位下一状态关系。
- 比较 D 锁存器、D 触发器、并行寄存器和移位寄存器的采样条件、保存位数和数据移动方式。
23. 练习答案
展开第 12 章练习答案
题 1
D 锁存器在使能有效的整个电平区间透明;边沿 D 触发器只在规定的时钟边沿采样一次。
题 2
上升沿是 \(CLK:0\rightarrow1\),下降沿是 \(CLK:1\rightarrow0\);有效边沿是当前触发器实际用来采样输入并更新状态的那一种边沿。
题 3
两者时钟端都有表示边沿触发的三角形。正边沿触发通常没有反相小圆圈,负边沿触发通常在三角形外再带一个小圆圈。
题 4
时钟到 Q 延迟从有效时钟边沿越过参考点开始,到 \(Q\) 越过相应参考点结束。组合门传播延迟通常从数据输入边沿越过参考点开始。
题 5
寄存器是一组共享时钟和控制信号、并行保存多 bit 数据的触发器。8 bit 寄存器至少需要 8 个一位触发器。
题 6
同步复位只在有效时钟边沿执行;异步复位在有效时无需等待时钟边沿即可控制状态。
题 7
每个上升沿采样对应 \(D\),状态依次为
1、1、0、1。
题 8
只在下降沿采样,状态依次为 0、1、0。
题 9
第一个边沿 \(EN=0\),保持
0;第二个边沿 \(EN=1\),装入
1;第三个边沿 \(EN=0\),保持
1。状态序列为 0、1、1。
题 10
复位优先,因此不读取使能和数据,边沿后 \(Q=0\)。
题 11
不需要。reset_n=0 是异步复位有效,输出经过复位控制到 Q
的传播延迟后清零。
题 12
上升沿前 30 ps 到边沿后 10 ps 内必须稳定,因此最小稳定区间为
\[ [200-30,\ 200+10]=[170,210]\ \text{ps}. \]
题 13
第一个边沿使能无效,保持 1100;第二个边沿使能有效,装入
0101。状态依次为 1100、0101。
题 14
采用 \([Q_3Q_2Q_1Q_0]\)、串行输入进入 \(Q_3\):
| 边沿 | \(SI\) | 新状态 |
|---|---|---|
| 1 | 1 | 1011 |
| 2 | 0 | 0101 |
| 3 | 1 | 1010 |
题 15
同一边沿上的所有触发器同时读取边沿前的旧状态。若边计算边覆盖,就会把本应下一拍才传播的值在同一拍传过多级。
题 16
MUX 的一个数据端接新数据 \(D\),另一个接反馈 \(Q\),选择端接 \(EN\),输出接触发器的 \(D_{in}\):
\[ D_{in}=EN\cdot D+\overline{EN}\cdot Q. \]
外形与 D 锁存器特征方程相同。D 锁存器在 \(EN=1\) 的整个区间透明;使能触发器只在有效时钟边沿采样 MUX 输出。
题 17
采用“异步复位、同步释放”的复位策略。复位有效时直接异步清零,不等待时钟;解除复位经过同步结构,使各状态元件在安全的时钟关系下恢复工作,降低靠近边沿释放造成的风险。
题 18
对 \(i=0,1,2,3\):
\[ Q_i^{+}=\begin{cases} 0, & RST=1,\\ D_i, & RST=0,\ EN=1,\\ Q_i, & RST=0,\ EN=0. \end{cases} \]
该关系只在有效时钟边沿求值。
题 19
| 结构 | 采样条件 | 保存位数 | 数据行为 |
|---|---|---|---|
| D 锁存器 | 使能有效电平期间透明 | 1 | 透明时跟随,关闭时保持 |
| D 触发器 | 一个有效时钟边沿 | 1 | 边沿采样,边沿之间保持 |
| 并行寄存器 | 共享有效时钟边沿 | \(N\) | 同时装载或保持 \(N\) bit |
| 移位寄存器 | 共享有效时钟边沿 | \(N\) | 每拍把旧状态整体移动一位 |
24. 自测清单
若第 3~5 项不稳定,遮住图 12-3 的 \(Q\) 波形,只标出有效边沿和采样窗口后重新绘制。若第 7~8 项不稳定,使用“异步控制—有效边沿—同步复位—使能—数据”的顺序逐项判断。
25. 下一章衔接
本章已经能在每个时钟边沿保存或移动数据。下一章《计数器与简单时序模块》会在寄存器输入前加入组合逻辑,使状态按照规定序列自动变化。我们将从最简单的二进制加一开始,构造同步计数器、模 \(N\) 计数器、分频器、环形计数器和序列发生器。