title date categories tags
Digital Abstraction
2023-08-13 14:30:00 +0800
Digital Design
digital circuits

真实世界中,电路里面所有的电压值都是连续的。知道输入的电压以后,我们可以根据每一个门的电压的输入输出关系,知道每一个门的输出电压,最后得到整个电路的输出电压。电路中的电压可能是 5V 3.0V 2.8V 1.0V。

为了进入数字世界,我们在连续的电压值上增加一层抽象层,将连续的电压值映射为离散的 01,这层抽象层只存在于我们的脑子里,0 和 1 也是我们大脑对真实物理现象的一种理解和解读。这里说的映射和下面会提到的映射,实际上就是人脑进行的理解和解读。

在进入数字世界后,我们在观察电路时,就可以只关心电路的每个位置到底是 0 还是 1,而不用管每个位置的电压值到底是多少。

那么到底要如何进入数字世界?换句话说,人脑要用怎样的映射方式将连续的电压理解为 0 或 1?

映射方式

最简单的方法是将电压的范围 0 到 VDD,分成两部分。电压为 0 到 Vth 时,人理解为 0,电压为 Vth 到 VDD 时,人理解为 1。

但是这个方法有一个缺点。我们知道,真实电路中是存在噪音的。当电压值非常接近 Vth 时,一点轻微的噪音都会让电压值在 Vth 的附近来回波动。换句话说,如果一条导线上的电压值非常接近 Vth,人理解的值可能在 01 之间疯狂变化。这样显然是不行的。(存疑)

为了解决上述问题,我们设置两个 threshold。电压为 0 到 VL 时,人理解为 0,电压为 VH 到 VDD 时,人理解为 1。VL 到 VH 为 forbidden zone,这部分电压被理解为 0 还是 1,我们不关心。

这种情况下,一条导线上的 01 疯狂变化就不可能会出现了。但是,当电压值非常接近 VL 或者 VH 的时候,电压在人的理解中,会在 0、未知或者 1、未知之间疯狂变化。因为不会出现 0 变 1 或者 1 变 0,所以我们允许这种 0、未知之间或者 1、未知之间的变化存在。(存疑)

现在考虑两个 buffer,一个 buffer 的输出接另一个 buffer 的输入。上游 buffer 如果输出 VL-ε,然后因为噪音,下游 buffer 接收到 VL+ε。按照上面的理解方式,上游 buffer 在人的理解中输出 0,下游 buffer 在人的理解中接收到未知信号,这显然不是我们希望的。我们希望在我们眼里,下游 buffer 可以容忍噪音,接收到 0。

那么,我们需要对一个门的输入和输出设置不同的 VL VH。输出的 VH 大于输入的 VH,输出的 VL 小于输入的 VL。这样在存在一定噪音的情况下,一个门输出的 0 还可以在下一个门的输入被我们理解为 0,一个门输出的 1 还可以在下一个门的输入被我们理解为 1。

输出的 VL VH 为 VOL VOH,输入的 VL VH 为 VIL VIH。VOL VOH VIL VIH 被称为一个门的 logic level。

确定 Logic Level

现在,我们已经明确了如何根据一个门的 VOH VOL VIH VIL 将它的输入输出电压理解为 0 或 1。那么如何根据一个门的 DC Transfer Characteristic(即输入电压和输出电压之间的关系),确定它的 VOH VOL VIH VIL。

在确定 VOH VOL VIH VIL 时,有两个准则。我们希望两个 noise margin(即 VOH-VIH,VIL-VOL)尽可能大。同时这四个值需要满足 VOH > VIH > VIL > VOL。

Buffer

我们先以 buffer 门为例子。

buffer-vtc

Inverter

我们再来看看非门。

inverter-vtc

And Gate / Or Gate

分别得到两个输入对应的 VOH VOL VIH VIL。根据 valid in valid out 原则,得到一组 VOH VOL VIH VIL。

VTC 的性质

vtc-properties

首先,图中间的矩形 2 一定是长条形的。因为 VOH-VOL > VIH-VIL。

其次,图中间的矩形 2 里面,VTC 曲线是怎么样的都可以,这一块曲线的 VIN 属于 forbidden zone,我们不关心。

最后,定好了 VOH VOL VIH VIL 以后。如果这 4 个值是曲线上找的,VTC 曲线只能在矩形 4 2 7 中。如果这 4 个值不是在曲线上找的,VTC 曲线只能在矩形 4 5 2 6 7 中。

因为 VIL > VOL,所以在矩形 4 中,VTC 的斜率极大概率小于 1。因为 VOH > VIH,在矩形 7 中,VTC 的斜率极大概率小于 1。在矩形 2 中,VTC 的斜率极大概率大于 1。

总结

我们先看一个门,每个门本身已经规定好了 logic level 了。上面的映射方法规定了,只要这个门的输入被理解为 0 或 1,那么输出一定会被理解为 0 或 1,valid in,valid out。valid in valid out 是指定 logic level 时保证的。不可能出现输入是 0 或 1,输出变成未知信号的情况。如果出现这种情况,说明 VOH VOL VIH VIL 选的不对。另外,一个门的输入范围肯定比输出范围大,即宽进严出。

而门的 VTC 结合 logic level 规定了门对输入的 01 进行的处理,如输入 0 输出 0,输入 1 输出 1。

我们再看多个门,先讨论多个同样的门。多个同样的门 VOH VOL VIH VIL 的值是一样的,一个门的输入的理解范围大,输出的理解范围小,再进入下一个门。下一个门的输入的理解范围同样大,输出的理解范围又变小。这样一层一层传递下去,电路的工作方式,就可以在存在一定噪音的情况下,被人们以数字方式理解。

再讨论多个不同的门。理论上来说,一个数字电路中,每个门的 logic level 都可以不一样,即可以对每个门的输入输出电压,采用不同的标准进行理解。因为噪音的存在,只需要下一个门的输入的理解范围大于上一个门的输出的理解范围,电路就可以在存在一定噪音的情况下,在人的理解中以数字方式工作。下一个门的输入范围和上一个门的输出范围的差值,就是导线容忍噪音的能力。一般来说,同一个数字电路里的门,采用的 VOH VOL VIH VIL 都一样,这样导线容忍噪音的能力就会变得连贯。

总结起来,valid in valid out 和宽进严出保证了当数字电路的输入可以被理解为 0 和 1 时,在存在一定噪音的情况下,数字电路的输出仍然可以被理解为 0 和 1。输出的 0 和 1 与输入的 0 和 1 的具体关系,由所有门的 vtc 和 logic level 决定。