????????在数字电路设计中,经常会处理两类问题:组合逻辑电路的竞争和冒险、时序逻辑电路的亚稳态。
?????????=====组合逻辑(竞争-冒险)
????????竞争:将门电路两个输入信号同时向相反的逻辑电平跳变(一个从1变为0,一个从0变为1)的现象称为竞争。
????????竞争-冒险:由于竞争而在电路输出端可能产生尖峰脉冲的现象就称为竞争-冒险。
????????有冒险必有竞争,有竞争不一定有冒险。
????????=====时序逻辑(亚稳态) ????????时钟域:时钟域(clock domain)是计算机科学技术名词。电路中由同一个时钟信号控制的区域。简而言之时钟域就是时钟信号的“势力范围”。
????????同步设计:使用同步时钟,浅谈同步设计 - 走看看;意思就是同步电路利用时钟脉冲使其子系统同步运作,时钟之间有固定的因果关系,同步的含义不只局限于同一个clk,而是容许有多个clk,这些clk的周期有倍数关系,或者相互之间的相位关系是固定的就可以,比如10ns、5ns、2.5ns,三个clk的电路是同步电路。同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。
? ? ? ? 异步设计:使用异步时钟,异步电路是指clk之间没有倍数关系,或相互之间的相位关系不是固定的,各时钟之间没有固定的因果关系,比如5ns、3ns两个clk是异步的。异步电路主要是组合逻辑电路(这一句不是特别懂-Vincent)。
? ? ? ? 跨时钟域信号:模块之间有数据交互,但是用的不是同一个时钟进行驱动,即跨时钟域信号,为异步设计,信号需要特别处理才能确保传输正确。跨时钟域的处理方式:*****
????????建立时间tsu:setup time,为了保证D触发器的输出是稳定的,数据必须在时钟上升沿tsu时间之前保持稳定,否则D触发器的输出就是不稳定的。
? ? ? ? 保持时间thold: hold time,为了保证D触发器的输出是稳定的,数据必须在时钟上升沿来之后继续保持thold时间的稳定,否则D触发器的输出就是不稳定的。
????????亚稳态:不满足setup time、hold time的电路中可能出现亚稳态。
- 在同步系统中,如果触发器的setup time / hold time不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端毛刺、振荡、固定的某一电压值,而不是等于数据输入端D的值。这段之间成为决断时间(resolution time)。经过resolution time之后Q端将稳定到0或1上,但是究竟是0还是1,这是随机的,与输入没有必然的关系。
- 在跨时钟域电路、路径延时过大等情况下更容易出现亚稳态,引入异步逻辑发生亚稳态的几率更大。
????????亚稳态危害:
- 触发器发生亚稳态以后,触发器的输出在稳定下来之前可能是毛刺、振荡或者固定的某一电压值(这个电平值未必是想要的那个电平),因此亚稳态会很大概率的导致逻辑出现误判,并且输出0~1之间的中间电压值还会使下一级产生亚稳态(即导致亚稳态的传播)。
- 除此之外,出现亚稳态可能引起其他不需要工作的电路快速工作,加大功率消耗的同时,也有损坏器件的风险,在芯片生产中也会导致芯片无法使用。
声明:本文是众网页知识的整合,只包含了最基础的概念。
|