同步逻辑和异步逻辑的区别
一、概念
1.同步逻辑
同步逻辑是指各触发器的时钟端全部连接在一起,并接到系统时钟端。只有
当时钟脉冲到来时,电路的状态才能改变。改变后的状态将一直保持到下一个时
钟脉冲的到来,此时无论外部输入有无变化,状态表中的每个状态都是稳定的。
同步逻辑电路中的所有操作都是在严格的时钟控制下完成的,这些时序电路共享
同一个时钟 CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。
2.异步逻辑
异步逻辑是指电路中除使用带时钟的触发器外,还可以使用不带时钟的触发
器和延迟元件作为存储元件。电路中没有统一的时钟,电路状态的改变由外部输
入的变化直接引起。异步逻辑电路的状态变化的时刻是不稳定的,通常输入信号
只在电路处于稳定状态时才发生变化,以避免输入信号之间造成的竞争冒险。异
步时序逻辑电路可以分为脉冲异步时序电路和电平异步时序电路。
二、数据与时序
1.同步逻辑的数据与时序
在同步逻辑电路中,数据的状态变化与时钟脉冲同步。例如,在 D 触发器
中,当上升沿到来时,寄存器把 D 端的电平传到 Q 输出端。同步逻辑电路的状
态表反映了电路在不同输入和现态下的次态和输出,这些状态变化都是在时钟的
固定边沿发生的。
同步时序逻辑电路的结构与功能可以用三组逻辑函数表达式描述:输出函数
表达式、激励函数表达式和次态函数表达式。输出函数表达式反映电路输出 Z
与输入 x 和状态 y 之间的关系;激励函数表达式反映存储电路的输入 Y 与外部
输入 x 和电路状态 y 之间的关系;次态函数表达式反映同步时序电路的次态与激
励函数 Y 和现态 y 的关系。
2.异步逻辑的数据与时序
异步逻辑电路中没有统一的时钟信号,因此状态的变化不是由时钟脉冲控制
的,而是由外部输入信号的变化直接引起的。这意味着异步逻辑电路的状态变化
时刻是不确定的,需要在电路设计中特别注意避免竞争冒险现象。
异步逻辑电路的状态变化可以由特殊的“开始”和“完成”信号来控制,这些信
号用于同步不同的子系统。在异步逻辑电路中,输入信号的变化需要在电路处于
稳定状态时发生,以确保正确的状态转移。
三、公式与状态转移
1.同步逻辑的公式与状态转移
同步逻辑电路的状态转移可以用状态转移表或状态图来表示。状态转移表反
映了同步时序电路输出 Z、次态 y^(n+与电路输入 x、现态 y 之间的关系。状态
图则是一种反映同步时序电路状态转换规律及相应输入、输出取值关系的有向图。
在同步逻辑电路中,次态函数表达式用于描述电路的次态与激励函数 Y 和
现态 y 的关系。例如,在 D 触发器中,次态 Q^(n+1)等于输入 D。对于其他类型
的触发器(如 R-S 触发器、J-K 触发器、T 触发器),次态函数表达式会更加复
杂。
2.异步逻辑的公式与状态转移
异步逻辑电路的状态转移没有固定的公式,因为状态的变化是由外部输入信
号的变化直接引起的。在异步逻辑电路中,通常使用状态图和波形图来描述电路
的状态转移过程。
异步逻辑电路的设计需要特别注意避免竞争冒险现象和亚稳态问题。竞争冒
险现象是由于输入信号通路中经过了不同的延时,导致到达同一门电路的时间不
一致而产生的。亚稳态则是指触发器无法在某个规定时间段内达到一个可确认的
状态。为了避免这些问题,异步逻辑电路设计中通常采用特殊的同步机制或使
用 Latch 等元件来稳定状态。
四、相关知识
1.建立时间与保持时间
建立时间(Setup Time)和保持时间(Hold Time)是测试芯片对输入信号和
时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数
据稳定不变的时间。保持时间是指触发器的时钟信号上升沿到来以后,数据稳定
不变的时间。如果不满足建立和保持时间的要求,那么触发器将无法正确地采样
到数据,可能会出现亚稳态问题。
2.触发器类型
在同步逻辑电路设计中,通常采用 D 触发器等时钟控制触发器。这些触发
器在时钟脉冲的固定边沿(如上升沿或下降沿)触发状态变化。而在异步逻辑电
路设计中,除了可以使用带时钟的触发器外,还可以使用不带时钟的触发器和延
迟元件作为存储元件。这些触发器的状态变化由外部输入信号的变化直接控制。
3.亚稳态问题
亚稳态问题是异步逻辑电路设计中需要特别注意的问题之一。当信号在一个
时钟域内变化,在另一个时钟域内采样时,就可能导致输出变成亚稳态。亚稳态
是指触发器无法在某个规定时间段内达到一个可确认的状态。为了避免亚稳态问
题,异步逻辑电路设计中通常采用特殊的同步机制、使用反应更快的触发器或改
善时钟质量等方法。
4.跨时钟域信号传输
在异步逻辑电路设计中,跨时钟域信号传输是一个常见的问题。当信号从一
个时钟域传输到另一个时钟域时,需要进行同步处理以避免亚稳态问题。常见的
同步处理方法包括打两拍、使用同步器或异步 FIFO 等。打两拍是指定义两级寄
存器对数据进行延拍,以确保数据在另一个时钟域内稳定后再进行采样。使用同
步器可以在两个时钟域之间提供一个稳定的同步信号。而异步 FIFO 则是一种用
于在不同时钟域之间传输数据的先进先出存储器。
5.竞争冒险与消除方法
在组合逻辑电路中,由于门的输入信号通路中经过了不同的延时,导致到达
该门的时间不一致,这种现象称为竞争。如果竞争导致输出信号产生不应有的尖
峰脉冲(即毛刺),则称为冒险。竞争冒险现象会影响电路的稳定性和可靠性。
为了消除竞争冒险现象,可以采用添加布尔式的消去项、在芯片外部加电容或改
变电路结构等方法。
五、总结
同步逻辑和异步逻辑是数字电路设计中两种基本的时序逻辑设计方式。它们
的主要区别在于时钟信号的使用以及电路状态变化的控制机制。同步逻辑电路中
的所有操作都是在严格的时钟控制下完成的,而异步逻辑电路中没有统一的时钟
信号,状态的变化由外部输入信号的变化直接控制。在同步逻辑电路设计中,通
常采用 D 触发器等时钟控制触发器,并需要满足建立时间和保持时间的要求。
而在异步逻辑电路设计中,需要特别注意避免竞争冒险现象和亚稳态问题,并采
用特殊的同步机制或使用 Latch 等元件来稳定状态。此外,在异步逻辑电路设计
中还需要考虑跨时钟域信号传输的问题,并采取相应的同步处理方法来确保数据
的正确传输。