上面的文章介绍完了CMOS门电路的基本构造,但我们分析的时候,给电路的输入信号都是不变的,展示的是门电路在稳定时候的特性,现在我们要把输入信号变成动态变化的信号,观察CMOS电路在动态变化时候的特性。

另外,本小节涉及到模拟的特性,本来是应该拿着实物的逻辑门芯片搭电路用示波器观察波形的,但正如整个博客的介绍里所说,我这里手边没有仪器和物料,好在TI的TINA仿真软件基于SPICE模型做的非常逼真,可以模拟出CMOS传输特性,所以就全程用仿真演示,有条件的同学可以搭电路出来实测观察。

传输延迟现象

最常见的变化信号就是方波,我们给反相器电路输入一个方波试试。

digit_course_cmos_dyamic_output

好像没什么问题对吧,输入是红色的50Hz的方波,然后绿色的输出是输入的反相,这个是符合预期的。但是,我们把信号上升或者下降的边缘放大,如下图:

digit_course_cmos_dyamic_upper

可以看到输出并不是像我们想像的那样,随着输入的下落,立马就跃变到高电平,而是像爬坡一样缓慢上升到高电平,可以看到示波器我调的是50us一格,也就是说它花了大概100us爬升上去,这就是电路中存在的传输延迟现象,也就是指输出信号并不能严格跟随输入信号变化的现象。

传输延迟的影响

我们不先急着搞清楚为什么会有这个鬼问题,先看看他有什么影响,如果影响不严重其实也可以暂时不深究他是为什么。下图是引用自教材《数字电路技术基础》的图:

digit_course_cmos_dyamic_inv_amp

从上面的图中可以看到,因为传输延迟的存在,导致上下两个CMOS无法严格的一起进行切换,在输入跳变的瞬间产生从VDD到地的通路,电流从上到下流经两个CMOS产生功率消耗,这就是CMOS电路的动态功耗。

所以,我们就可以很容易的理解,为什么生活中电脑CPU工作频率越高,发热就越大,CPU超频需要使用液氮冷却就是这么来的。

传输延迟的原因

我们理解到传输延迟会造成动态功耗损耗(后面还会介绍会造成竞争-冒险现象,这里先不提),那这个问题的根本原因是什么呢?其实就是电路中的电容在作怪。

我们还是看上面的一张图,非门的输出画了一个电容,这个电容包含两部分:

  1. 负载的电容,包括后级CMOS电路或者其他容性负载的电容
  2. CMOS电路本身的分布电容和杂散电容

其中第二项我们知道电容的形成条件非常简单,只需要两个隔得足够近的金属就可以形成,CMOS内部也是通过金属走线的,导线之间就会形成微小的分布电容和杂散电容,所以即使CMOS后面的电路没有电容,内部也会有容性存在。即使第二部分的电容一般非常小,但是在CMOS工作频率越高的时候,上述的影响就越明显。

后续大家如果学习自己画PCB,也会碰到这种问题,在高频PCB(一般超过几十兆赫兹就会体现出来了)上一般要非常注意走线,防止分布与杂散电容对电路产生不利影响。

传输延迟影响的避免

  1. 减少高频率工作状态
  2. 使用传输延迟更低的CMOS芯片
  3. 合理PCB布局,减少负载电容

实际使用有些时候不可避免的要使用更高的频率,我们着手更多的是第二点和第三点,比如74HC04芯片传输延迟一般在9ns,而74AHC04只有5ns。合理的PCB布局也是一种很重要的方法,特别是在高频的时候。虽然高频的时候,更多的考虑的是信号完整性的东西,减少杂散电容也是一个考虑之一,有些要求比较高的板子,从两层板切换到4层板也有这个原因。但是由于我自己不擅长硬件,所以这里就不瞎讲了,感兴趣的可以参考其他专业硬件博主的文章。