本帖最后由 sjjklh 于 2012-6-22 15:02 编辑

【sjjklh红石第七弹】逻辑代数进阶 build 20120622

本教程在CC-By-NC-Sa 3.0协议下发布。

【【【【【【sjjklh红石系列连接,请看http://www.mcbbs.net/thread-25775-1-1.html】】】】】】

全文基于以下内容:
http://zh.wikipedia.org/wiki/%E9%80%BB%E8%BE%91%E4%BB%A3%E6%95%B0
http://zh.wikipedia.org/wiki/%E5%8D%A1%E8%AF%BA%E5%9B%BE
http://zh.wikipedia.org/wiki/%E7%9C%9F%E5%80%BC%E8%A1%A8
《集成电子技术基础教程》第二版 下册 王小海、祁才君、阮秉涛主编  高等教育出版社 2007年
National Instruments Multisim 11

本文需要
【sjjklh红石第一弹】逻辑门简述 & 电路符号讲解【sjjklh红石第六弹】逻辑代数基础的基础,必须先把那两篇教程看懂!

读前警告:本教程讲述逻辑代数进阶技巧,是数字电路(红石电路)的基本框架。必然枯燥无聊,受不了的话建议早早点击浏览器上的“后退”!


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1、逻辑代数表达方法
以下为例:


真值表:
  A
  
  B
  
  C
  
  L
  
  0
  
  0
  
  0
  
  0
  
  0
  
  0
  
  1
  
  0
  
  0
  
  1
  
  0
  
  0
  
  0
  
  1
  
  1
  
  1
  
  1
  
  0
  
  0
  
  0
  
  1
  
  0
  
  1
  
  1
  
  1
  
  1
  
  0
  
  0
  
  1
  
  1
  
  1
  
  1
  


函数式:
开关A和C合上,或B和C合上,或A、B、C都合上时灯亮,所以有函数式
L=f(A,B,C)=AC+BC+ABC=(A+B)C


逻辑图:


波形图:


卡诺图:



2、最大项与最小项
上面三个开关控制一盏灯的例子的逻辑表达式可以被化为:

可以看出这个式子就像数学里的多项式,多个项用“或”(加号)符号相连,每一个项又都是用“与”逻辑关系组合的。
三个项具有如下特征:
(1)每个“与”项都包含了函数的三个变量A、B、C。
(2)A、B、C三个变量或者以原变量或者以反变量的形式在“与”项中出现一次。
这种项称之为最小项

下表展示了最小项的编号表示法


最小项之和表达式可以经过取反以及德摩根定律化为:

下面的每一项称之为最大项,总体称为最大项之积。

最大项的编号表示法:


可以看到,同一个算式,如果有n个输入变量,那么输出变量最多可能会有2的n次方项。
以三个输入变量为例。如果用最小项表示为m1+m2+m5,那么最大项就是最小项没有用到的编号:M0*M3*M4*M6*M7。

二、卡诺图化简
卡诺图实际上是真值表的变形。侧边是自变量的取值组合,行与列的交叉处对应着输出量是0还是1,亦即最小项(也有可能是最小项的取值)。
  • 它由2的n次方个小方块组成的方块图    (n是函数所含的变量数 )组成。
  • 每个小方块代表一个最小项。
  • 而且相邻二个小方块所代表的二个最小项仅差一个变量不同,其它相同

二变量卡诺图:


这是一个三变量卡诺图。请注意上面的排列是00 01 11 10而不是00 01 10 11,这样排列的目的是能够让相邻方块的最小项只有一个变量不一样。




四变量以及五变量,可见五变量的每一行的m4-m7的排列也发生了变化:


将一个表达式用标准的“与—或”表达式(最小项之和式)表示后,根据式中的最小项,在卡 诺图的对应小方块中填上该最小项的值“1”后,便成了该函数的卡诺图了,如:


卡诺图化简逻辑函数的依据是利用卡诺图中相邻方块所代表的最小项相邻性,用画包围圈的方法把2n个相邻小方块合并成一个大方块进行。包围了2n个小方块后得到的“与”项将消去n个变量(n为正整数)



规则:
①包围圈越大,消去变量越多,但只能对2n个相邻小方块实施包围。
②小方块可以被重复包围(利用的是重叠律),但每一个包围圈至少应有一个小方块未曾被包围过。
③包围卡诺图中“1”的小方块,得到原函数的最简“与—或”表达式,进而可得 到最简的“与非—与非”表达式,可全部用“与非”门实现。
④包围卡诺图中“0”的相邻小方块,得到最简的“或—与”表达式,进而可得到 “或非—或非”最简式,可全部用“或—非”门组建电路。

例子如下:
用卡诺图化简函数
Z1(A,B,C,D)=∑m(1,3,4,5,6,7,9,12,14,15)



结果为


&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&


这样,实在看不懂的话也没关系,这类运算只有当你设计原创电路的时候用起来才比较方便

可以配合【番外篇1】数字电子技术基础PPT 一起研究,但不要走火入魔哦~~~


下期教程回归实际中的红石,讲讲“充能”的原理。



欢迎参与Minecraft中文WIKI的翻译工作~
我负责的精品页面:《红石电路》条目