第六章 同步设计技术 关于使用同步设计还是异步设计,已有很多讨论。同步电路易于设 计和修改,并且和工艺关系不大,但是它通常不如异步电路效率高,即 占用芯片面积较大。异步设计通常需要有更高的设计技巧和经验。 对于 ASIC 设计而言,同步设计将优于异步设计,因为 ASIC 是 品 种多、批量小的一类 IC。然而,最好的 解决办法是开发一种功能很强 的高级综合系统,它可以生成自同步电路。这时,所生成的模块在内部 是局部异步的,但是在模块间是全局同步的。 前一章中说明了一些 ASIC 单元和设计技术中存在的问题,特别是 门控时钟和在锁存器中使用电平敏感异步清除。 本章将介绍解决这些问 题的若干同步设计技术,并引入一组基本同步部件,它们能够在分层设 计中作为标准部件。另外,还将叙述如何按照一套互相协调的设计原则, 用这些部件构成完全同步的系统。 6.1 同步的定义 我们需要明确同步的概念,因为它是形成同步设计的基础。首先, 我们采用严格的定义。 对于静态同步设计,一系统是同步的,假若: 1. 每个边缘敏感部件的时钟输入是一次时钟输入的某个函数;并 且仍是像一次时钟那样的时钟情号。 2. 所有存储元件(包括计数器) 都是边缘敏感的,在系统中没有电 平敏感存储元件。 这个定义和结构化VLSI设计中的同步序列机的定义是一致的,一同 步序列机定义为是由一组合网络组成的, 且具有从输出端经过边缘敏感 存储元件向输入端的反馈。 同步性要求在存储元件中仅在有效时钟边缘 上存在状态变化。 在本章 中,给出一组符合静态同步系统定义的全同步电路元 件。在后面的章节中,还将讨论将此严格定义稍加放松的系统,以便采 用电平敏感锁存器和 RAM。 6.2 基本的同步部件 构成同 步基本部件基础的是边缘 敏感 D 型触发器(图 6-1)。其基本性质 为,在时钟(ck)输入的上升边之后,d 输入端的逻辑值出现在 q 输出端,而其 补值出现在 q 非输出端。这一过程就是 取样过程。 图 6-1 边缘敏感 D 型触发器 D 型触发器受到一些定时限制,即 建立时间、保持时间和最小时钟宽度, 如图 6-2 所示。 6.3 同步清除 D 型触发器 我们希望 ASIC 有一个性能,即全 局复位。这是一个测试要求;在后面 还要详细讨论。ASIC 设计中应避免使 用异步清除 D 型触发器(它破坏了 6.1 节中所述同步系统的两个条件), 应代之以同步清除。 这样就产生了第一个新的基本部件——带同步清除 的 D 型触发器(图 6-3)。它用于无条件锁存数据。其真值表(d 在时钟上 升边取样)如表 6-1: 图 6-2 D 型触发器的定时限制 注意;加用缓冲器以增大驱动强度。许多 D 型触发器的驱动能力差, 需要在其输出端加缓冲。 6.4 带使能端的 D 型触发器(E 型触发器) 最有用的存储单元之一 是一种锁存器,它能够保持一 个数据直到通知它锁存另一 数据时为止。由这一要求得出 “允许”触发器或称为 E 型触 发器(图 6-4)。它有一个从其 输出端到其输入端的反馈环 路,使其能保持数据长达若干 个时钟周期。 图 6-3 同步清除的 D 型触发器 若 E 型触发器被禁止(输 入 e 为低),则多路选择器选 择 q 输出,故经过下一时钟边 缘后其状态仍然不变。若 E 型 触发器在允许状态(输入e为高), 则d输入的值被时钟取样至q输出端。 其真值表如下(d 在时钟上升边被取样): 图 6-4 带使能端的 D 型触发器 E 型触发器用于有条件地 锁存数据。由它产生出下列用 于描述同步逻辑元件的名词: 图 6-5 用传输门的 E 型触发器 1. 允许元件具有一控制 线(允许线),它把此元件转换 至有效状态 或无效状态。在有效状态(上 面真值表中末两行),电路的 状态在每一时钟上升边时可 以改变。在无效状态(上面表 中第 2 行),电路的状态在连 续的时钟周期中始终保持不 变。 图 6-6 用与非门的 E 型触发器 2. 自由运行电路元件没 有允许线。它在每一时钟上升 边都可改变状态。同步清除 D 型触发器就是一例(图 6-1)。 在 ASIC 的 CAD 系统的基本部件库中没有 E 型触发器时,可用两种 方法设计。一种方法是用一传输门(图 6-5),另一种方法是使用一 3 输 入“与或非”门(图 6-6)。后者特别保险并且硅片利用率高。 6.5 T 型触发器 一种在同步计数器中特 别有用的触发器是 T 型触发 器或称反转触发器(图 6-7)。 当 t 输入端无效时,锁 存器在时钟上升边仍然保持 状态不变。在 t 有效时,电路在时钟上升边之后即取补状态。真值表如 下; 图 6-7 T 型触发器 像 E 型触发器那样,T 型触发器可以用一个传输门 多路选择器(图 6-8)或一 3 输 入端“与或非”门(图 6-9)实 现。 图 6-8 用传输门的 T 型触发器 对于某些应用,例如并行 负载计数器,要求使用 E 型和 T 型混合触发器。这样混合电 路的原理示于图 6-10。它用逻 辑门实现的方法示于图 6-11。 注意,由于扇入问题,应避免 使用 4 输入端“或非”门。 图 6-9 用逻辑门的 T 型触发器 E/T 触发器有四种工作 状态:复位、无变化、反转和 数据输入,如下表所示。所需 状态由外部逻辑选择。 在上述电 路中, “允许” 优先于“反馈”。 若在图 6-10 中 把两个多路选 择器的次序对 调,则此优先等 级也改变了。 图 6-10 混合(E/T)型触发器 图 6-11 混合(E/T)型触发器的实现 6.6 同步 RS 触发器 同步 RS 触发器是从异步的改进而来,后者存在严重缺点,如上一 章所述。同步 RS 触发器示于图 6-12 中。注意它有两个清除端,一个本 地清除 r 和一个全局清除 gc。 我们注意,当复位端 r 和置位端 s 都为高电平时,没有不确定状 态。在同步 RS 触发器中复位优先于置位,其真值表(在时钟上升边沿取 样)为: 这种锁存 器的主要用途 是用在号志 中,以及在全 同步系统中处 理请求之处。 它还可以用于 有条件地执行 一系列状态。 图 6-12 同步 RS 触发 器 6.7 R 型触发器 在这组基本部件中,只有请求(R 型)触发器具有一个异步电平 敏 感输入,后者用于应答信号,同步清除用于全局复位。它有两种结构, 示于图 6-13 和图 6-14 中。其真值表如下: R 型触 发器的使用 在下一章讨 论信号交换 (握手)时再 详述。 图 6-13 R 型触发器之一 图 6-14 R 型触发器之二 6.8 状态产生 本章下面部分将讨 论如何用这些基本部件 构成全同步系统。在 所有标准部件中最重要 的是 同步二进计数器 (SBC)(图 6-15)。SBC 有 许多用途,其中一种即 状态产生。 一同步二进计数器 构成大多数同步电路的骨干。电路的全部控制状态是从 SBC 译码而来。 图 6-16 示出一种同步电路的一般形式, 它受作为状态产生器使用的 SBC 所控制。其各点波形的时间关系图示于图 6-17。 图 6-15 同步二进计数器 以这种方式受控的同步电路可以认为是一个状态机, 它按固定的状 态周期工作。这种控制技术可以推广到控制作为状态机的一片 ASIC。 关于状态机的详细讨论可以参看有关教科书。 图 6-16 计数器的同步电路 图 6-17 各点波形的时间关系 6.8.1 状态的无条件执行 通常用单状态译码器完成状态的无条件执行,此译码器连接在主计 数器上。图 6.8.4 示出实现这一原理的连续平均电路。它顺序取 16 项 数据,并输出其和。每 16 项数据之和锁存于输出寄存器,并将累加器 清除。 图 6.8.4 在图 6.8.5 中给出一个 RS 触发器电路应用的例子。它能将一状态 序列编码,在一数据序列的末尾附加上循环冗余码(CRC)的比特。在状 态 m,RS 触发器使多路转换开关改为从 CRC 产生器选择校验比特输出。 图 6.8.5 在状态(m+n),RS 触发器复位,使多路转换开关重新选择数据输出。同 时,CRC 产生器和同步二进计数器也复位。 辅助计 数器可以用来完成许多功能,这种计数器通常不是二进制 的。例如,模 10 计数器可以完成二进制向 BCD 码的变换(图 6.8.6)。 此外,在数据分帧和电视或计算机显示等处也用非二进制计数器。 图 6.8.6 6.8.2 状态的有条件执行 在根据无条件执行状态序列原则设计的电路中, 转移仅限于用以实 现非二进制的无条件转移类型。 其他各种电路要求用有条件转移或有条 件执行一状态序列。 图 6.8.7 对于下列各项 中至少两项进行比 较,可以有条件地改 变其控制流程,即电 路的内部状态、电路 中一项或几项数据 的值以及原始输入 数据。进行判断的方法,可以用译码器进行静态比较或固定比较,或用 比较器对变量作相等或不等(大于或小于)比较, 或作寄存器与寄存器比 较。图 6.8.7 示出这些情况的最一般的形式:比较电路的内部状态、电 路中数据值和原始输 入,以决定是否有一允 许状态。 图 6.8.8 图 6.8.8 给出一 个比较具体的例子。它 示出用于控制执行一 系列操作的 RS 触发 器,其操作的控制决定 于一寄存器中的数据 之值。 图6.8.9另一个取 决于数据值的有条件 控制的例子是分频(除 法)。分频通常由一连 续相减或“移位和”相 减过程实现。在每次操 作的末尾,对当前数据 值判断一次,以决定是 需要进行另外的操作, 还是全过程已经完成。 图 6.8.9 为了实现电路内部的控制,计数器受其复位输入(它通常将计数值 置为零)或“计数允许”(它可以使计数停止)控制。锁存器受其“允许” (允许接受新数据)控制。并行置位计数器通过其置位和“计数允许”受 到控制。 有条件执行的操作有三种方式:强迫(立即)式、等待式和单步(增 量)式。强迫执行通常由复位完成,等待 由允许实现。单步式是在计数 器处于“允许”的一个时钟周期中,在执行某一状态时将其值增加 1。 图 6.8.9 示出一个增量式同步二进制计数器。图 6.8.10 给出一个有条 件等待式同步二进制计数器,而图 6.8.11 示出一个有条件强迫式同步 二进制计数器。 图 6.8.10 图 6.8.11 6.9 中央允许产生器 在上一章 中提到的属于 用不良设计方 法设计的中央 时钟产生器, 可以用等效的 同步式电路取 代,后者即中 央允许产生 器。这一设计 中采用了本章 介绍的所有设 计方法。图 6.9.1 中示出 的简单允许产 生器能够推广 到和任何有条 件或无条件状态的执行相结合。 图 6.9.1 6.10 同步清除 虽然本 章中作为单元电路介绍的同步清除在某些情况下功能上等 效于异步清除, 但是当一电路有全局复位功能时优先选用同步清除的理 由如下: 1. 某些电路具有自己的同步清除功能。可以将其用于全局清除, 以节省硅片面积。 2. 混合使用全局异步清除和局部同步清除会使电路功能混乱,导 致产生异常情况。 3. 在许多情况下,采用同步清除的电路比异步的占用较少空间。 4. 使用 RAM 和寄存器一类的元件,在初始化时,要求在连续几个 时钟周期中清除,这意味着同步清除。 5. 系统可能希望当运行时清除 ASIC。若这是异步清除,则将遇到 长复位脉冲和短复位脉冲的所有问题(见 5.13.12 和 5.13.13 节)。 6.11 时钟歪斜的消除 同步设计的最重要要求之一是将时钟歪斜减小到可以接受的程度。 假设时钟缓冲符合第五章中的规则,则还有另外两种设计方法可以采 用。 第一种情况是从一 D 型触发器的 q 输出端直接馈给另一触发器的 d 输入端时,延迟不足以满足第二个 D 型触发器对保持时间的要求。解决 方法是使用一个低驱动强度的源 D 型触发器,并且不加缓冲。高的相对 扇出有助于改进保持时间。 第二种 设计方法是在各个受时钟控制的部件之后分别接入缓冲。 器,并在两个缓冲器输出端之间接一平衡网络。若两支路由于某种原因 不平衡,则有一小电流通过网络,从而消除时钟歪斜。 6.12 小 结 同步 ASIC 电路设计的要点如下: 1. 同步系统的所有边缘敏感单元都对同一时钟边缘响应,并且不 使用电平敏感存储单元。 2. D 型触发器按下列方式构成一套同步锁存器: (1) 同步清除 D 型触发器用于无条件锁存数据。 (2) E 型触发器用于有条件地锁存数据,并在其无效状态连续 在几个时钟周期内保持数据。 (3) T 型触发器用于同步计数器。 (4) 同步 RS 触发器没有模糊状态,用于号志,并在全同步系 统中处理请求。 (5) 带异步电平敏感复位端的 R 型触发器用于异步信号交换 (握手)。 3. 同步系统常由一个或几个状态产生器控制;状态是有条件的或 无条件的。 4. 在非中央控制(用多于一个状态产生器)的场合,控制方法总能 分解为有条件和无条件地执行状态。有条件执行总能分解为等待、强迫 和增量方式。 5. 时钟歪斜是同步电路设计中主要应考虑的问题,须将其减小至 可以接受的水平。