与非门
与非门是最基本的元件,它的输入与输出值应符合下表。
接下来将会把与非门当作一种“黑箱”进行处理,我们只需要知道它的输入输出引脚、用法和名称,不需要知道它的内部结构。一个与非门表现出下面的属性:
名字 :与非门
输入引脚:a、b
输出引脚:out
功能 :如果输入a=b=1那么输出0,其他情况输出1
备注 :这是个基本元件,只需要了解怎么使用,不需要知道怎么造
基本逻辑门
下面出现的逻辑门都可以用与非门搭建起来。
非门
名字 :非门
输入引脚:in
输出引脚:out
功能 :如果in=0那么out=1,不然out=0
与门
名字 :与门
输入引脚:a、b
输出引脚:out
功能 :如果a=b=1那么out=1,不然out=0
或门
名字 :或门
输入引脚:a、 b
输出引脚:out
功能 :如果a=b=0,那么out=0,不然out=1
异或门
名字 :异或门
输入引脚:a、b
输出引脚:out
功能 :如果a不等于b,那么out=1,不然out=0
数据选择器(Multiplexor)
这个逻辑门比较特殊,它有3个输入引脚,一个是输出选择引脚,另外两个是输入引脚,如果选择引脚输入是0那么输出a引脚的数据,如果选择引脚输入1,那么输出b引脚的数据。
名字 :数据选择器(Mux)
输入引脚:a、b、sel
输出引脚:out
功能 :如果sel=0那么out=a,不然out=b
多路输出选择器(Demultiplexor
这个逻辑门与数据选择器类似,只是反过来,有两个输入,in引脚输入数据,sel引脚选择输出引脚。sel输入是0时a引脚输出in输入的数据,b=0;sel输入是1时a=0,b引脚输出in输入的数据。
名字 :DMux
输入引脚:in、sel
输出引脚:a、b
功能 :当sel=0时a=in,b=0;不然a=0,b=in。
基本逻辑门的多位版本
现在计算机通常都被设计在拥有多个位的总线上运行。当一个与门在两条32位总线上运行时(因为与门有两个输入引脚),我们需要制作一个含有32个与门的逻辑门阵列,每个与门在不重复的一对位(分别位于两条总线上)上工作(通常会将这些阵列包装在一个芯片内)。
通常用data[0]、data[1]、…、data[31]来指代某条总线的单个位。
多位非门
名字 :Not16(16位非门,如此类推)
输入引脚:in[16] //一个拥有16位输入的引脚
输出引脚:out[16]
功能 :i=0...15,输出out[i]=Not(in[i])
多位与门
名字 :And16
输入引脚:a[16]、b[16]
输出引脚:out[16]
功能 :i取0到15,out[i]=And(a[i],b[i])
多位或门
名字 :Or16
输入引脚:a[16]、 b[16]
输出引脚:out[16]
功能 :如果a[i]=b[i]=0,那么out[i]=0,不然out[i]=1,i在0到15之间
多位数据选择器(Multiplexor)
这个逻辑门的多位版本比较特殊,它的选择引脚只有一个,并没有增多。
名字 :Mux16
输入引脚:a[16]、b[16]、sel
输出引脚:out[16]
功能 :如果sel=0那么out[i]=a[i],不然out[i]=b[i],i取0到15