Altifigence Academy

1 / 63 · 概念

数字信号:将电压读为 0 和 1 的条件

区分逻辑值与电压,计算输入阈值、噪声容限和传播延迟。

学完本课程应能构建什么

本课程快速梳理大学入门水平的数字逻辑设计,并通过实际电路加以验证。具备高中代数知识即可开始;基本编程经验有助于后续 RTL 实验。首先串联起逻辑门 → 组合电路 → 存储元件 → 状态机。后面的选修进阶部分将扩展到数据通路和接口。

本课的目标并非只记住“电压高就是 1”。你应能解释:在什么范围内、从什么时刻起,才能保证得到正确的逻辑值。

逻辑值是对电压的解释

逻辑电路计算 00 和 11,但导线上的电压是连续变化的。规定输入不高于 VILV_{IL} 时读为 0,不低于 VIHV_{IH} 时读为 1。两阈值之间不能保证任何一种解释。实际允许的电压范围和阈值由器件数据手册规定。

以教学用 3.3 V 电路为例。以下数值并非某个具体产品的规格。

接收端输入电压保证的解释
0~0.8 V逻辑 0
大于 0.8 V、小于 2.0 V不保证判为 0 或 1
2.0~3.3 V逻辑 1

1.4 V 并不是“第三种逻辑值”,而是该输入超出了数字模型的保证条件。输入从 0 转为 1 时必然经过这一区域,因此还必须规定观察输出的时刻。

从电压到逻辑函数
  1. 发送端输出: 在允许的负载下保证低、高电平电压
  2. 导线与噪声: 接收电压可能与发送电压不同
  3. 接收端输入: 由 VIL、VIH 判断逻辑值的有效范围
  4. 逻辑功能: 输入稳定并经过延迟后保证输出

输出标准与输入标准之间的裕量

假设发送端最大低电平输出为 VOL=0.2 VV_{OL}=0.2\,\mathrm V,最小高电平输出为 VOH=2.8 VV_{OH}=2.8\,\mathrm V,则噪声容限噪声容限 发送端保证的输出电压与接收端输入判定标准之间的裕量,由静态电压规格之差计算。如下。

NML=VIL−VOL=0.6 V,NMH=VOH−VIH=0.8 VNM_L=V_{IL}-V_{OL}=0.6\,\mathrm V,\qquad NM_H=V_{OH}-V_{IH}=0.8\,\mathrm V

即使低电平输出叠加 +0.4 V 噪声,得到的 0.6 V 仍处于低电平输入范围内。这个计算给出的是满足电压规格与负载条件时的静态裕量,不能仅凭这一数值判断短脉冲或布线反射的影响。

同时考虑功能条件与时间条件

AND 的输入为 11 时,输出为 1。但并不保证输入刚改变的瞬间输出就已是 1。将每条路径上各门的最大延迟相加,再取其中最长的路径延迟作为上限。若两个串联门的最大延迟分别是 2 ns 和 3 ns,这个模型允许在输入稳定后最多等待 5 ns。

输入悬空也不同于驱动为 0。模拟器中的 X 表示未知值,Z 表示高阻态;二者都不与某个实际电压一一对应。本课程的按钮实验使用稳定的 0/1 模型。

延伸阅读:MIT OpenCourseWare — The Digital Abstraction

实验 · 亲自越过噪声容限边界

改变电压时,逻辑值的保证在哪里结束?

VIL=0.8 V; VIH=2 V; VOL=0.2 V; VOH=2.8 V. NM_L=0.6 V; NM_H=0.8 V. 输入阈值之间不能保证判为 0 或 1。这是教学用静态模型。

  1. 选择发送 0。输出固定为最坏条件下的低电平电压 0.20 V。将噪声调为 +0.60 V,接收电压为 0.80 V,仍保证为 0。
  2. 按一次右方向键,将噪声再增加 10 mV。接收电压达到 0.81 V 时,判定变为“无保证”。这不意味着它立即变成 1。
  3. 发送 1 时,从 2.80 V 输出电压中减去噪声。到 −0.80 V 为止仍保证接收为 1,到 −0.81 V 则不再保证。
  4. 更大的噪声可能使输入进入另一侧的有效区域。此时即使接收器判定出正常的逻辑值,发送的数据仍可能出错。电压有效与数据正确是两个不同条件。

实验不会把超出 0~VDD 范围的输入强行截到有效区域。实际器件允许的输入范围、钳位电流和瞬态脉冲条件,应另行查阅数据手册。这里不预测具体器件是否损坏或其动态响应。

自己试试

若发送 1 时输出为 2.80 V、噪声为 −0.85 V,能否断定接收为 0?请与发送 0 时叠加 +2.00 V 的情况比较。

阅读解释

第一种情况为 1.95 V,处于两阈值之间,不能保证为 0 或 1。第二种情况为 0.20+2.00=2.20 V,因此接收为 1,但发送的比特是 0。有效的电平判定并不等于数据得到保留。

你的选择适用于此浏览器,可随时在页脚更改。