道生一,一生二,二生三,三生万物

“道生一,一生二,二生三,三生万物”, 出子老子《道德经》第四十二章,以哲学的角度阐述了万物生长演化之过程。然而天道崇简,万法归宗,这短短的十三字其实蕴含了集成电路,更确切的说是数字电路运行的基本原理。 “道生一”,“一”指的是“气”。对于集成电路中的场效应晶体管,电压便是这“气”。通过改变晶体管上的电压,我们可以控制通过晶体管的电流的大小。对于数字电路,晶体管的状态则被简化为“开”与“关”两种形式,因此只需要一个高电压和一个低电压就可以控制。这便是“一生二”的由来。“二”指的是阴阳,低电压是阴,对应了数字“0”;高电压是阳,对应了数字“1”。数字0和1构成了二进制,而任意内容,不论是文字、图像、视频等等,只要是有限的,都可以用一定长度的二进制数表示出来。 不过,仅仅能够表示任意的内容是不够的。计算机,计算机,其关键在于“计算”二字。“二生三”中的“三”,其实就是在0和1的基础上进一步解决数字之间的计算问题。事实上,不论多么复杂的计算,都可以用三种(注1)最为基础的逻辑运算来实现——“与”(AND),“或”(OR),“非”(NOT)。由于AND,OR,NOT属于逻辑运算,我们可以把数字“0”和“1”分别当作逻辑上的“假”和“真”。现在我们假设有两个变量A和B,通过运算得出结果S。由于A和B分别可以取0和1,这样A和B的组合一共有[00, 01, 10, 11]四种情况,我们需要讨论的是结果S的取值。 对于“与”(AND)运算,只有在A和B都是真的情况下,S的结果才是真。比如“请携带身份证和户口本前去办理”中的“和”字,就是一种与运算。我们也常常用下面的真值表(Truth Table)来表达逻辑运算。真值表列举了所有输入的组合和与之对应的输出,使得运算的结果变得十分直观。以上面的句子为例,可以把变量A理解为是否带了身份证,变量B理解为是否带了户口本,结果S理解为是否可以办理业务。通过真值表我们可以非常容易地看出,只有既带了身份证,又带了户口本,才能办理业务。至于其它情况,不好意思请回吧。 Truth Table – AND 如果把上面的例句改为“请携带身份证或户口本前去办理”,那么我们便实现了或运算——只要你带了身份证、户口本中的任何一件,都可以办理业务。其真值表如下: Truth Table – OR 和“与”,“或”运算不同,“非”运算(NOT)只对一个变量进行操作,它把假的变成真的,把真的变成假的,例如“今天不会下雨”中的“不”字。它的真值表则简单的的多: Truth…

Continue Reading →

加法的实现

在上一篇《道生一,一生二,二生三,三生万物》中,我们提到任意的运算都可以由与、或、非三种基本的逻辑运算实现。这篇文章将通过一个例子对其作出一个直观的解释。 下面真值表中所表示的逻辑运算有三个输入,A,B,Cin,两个输出,Cout和S。 Truth Table – Full Adder 细心的朋友可能会发现,这个真值表实现了加法的功能。其中 Cout代表相加后是否产生进位 S代表相加后不考虑进位的和 A,B代表加数 Cin代表低位送来的进位。 先以大家熟悉的以十进制加法为例,当计算的78+29时,我们首先进行个位的加法。此时 A = 8, B = 9, Cin…

Continue Reading →