电路里与非门、或门,从物理层怎样解读?具体是什么?是怎样实现逻辑运算的?
数字电路CMOS电路中的与,或,非门等基本逻辑电路是由晶体管搭建起来的,如下图:
图是由两个晶体管搭成与门,第二个图是两个晶体管搭成或门。晶体管相当于一个开关控制电路导通截止。
首先,我们想设计一个数据选择器,根据选择器的功能,我们可以画出真值表,然后化简出布尔表达式:
如上图,这个布尔表达式就是基本的逻辑操作,相应操作直接可以用逻辑门代替,如下图:
由这个例子可以看到,逻辑运算可以由基本逻辑门搭成。在实际电路设计中,归功于高度智能的EDA工具,我们并不需要真的写出电路间每个逻辑门的连接,写出电路上层功能EDA工具就能生成具体的底层逻辑门连接。如乘法器,我们在verilog中直接写a = b*c;即可。具体可参见这个回答硬件乘法器的意义何在?乘法直接乘不就可以了吗。我verilog里编写a*b即可,为什么要移位相加去乘?物理上实现与或非逻辑功能关键是找到一个控制单元吧,比如用继电器就可以实现,让线圈通电后另一个电路断路,线圈断电后另一个电路通电,便是非门,其他同样可以设计出来。现代技术中普遍采用晶体管实现电路逻辑功能,但道理同前面的是异曲同工的。
拿反相器作例子。
把开关s1当做输入,当s1=1,开关闭合,输出0。
当s1=0,开关断开,输出1。
把开关换成FET,就是一个实际的反相器原理图。
把反相器的内部当做一个黑盒,就是你熟悉的反相器电路抽象。具体电路实现方式不说了。这些简单的门电路可以完成复杂的逻辑运算实际上是得益于众多的组合逻辑化简工具(或者说叫方法,如卡诺图等)和状态机的概念。
通过逻辑化简,可以将复杂的组合逻辑表达式或者输入输出关系转化成简单几种基本的门电路可实现的组合逻辑电路。(任意组合逻辑通过化简都可以用 或非门 或者 与非门 一种门电路实现)