本帖最后由 sjjklh 于 2012-6-22 13:42 编辑

【sjjklh红石第六弹】逻辑代数基础Build 20120527



本教程在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红石第一弹】逻辑门简述 & 电路符号讲解的基础,必须先把那篇教程看懂!
读前警告:本教程讲述逻辑代数基础以及运算技巧,是数字电路(红石电路)的基本框架。可能枯燥无聊,受不了的话建议早早点击浏览器上的“后退”!



***************************************************************************************
一、前言
逻辑代数,也叫做开关代数,起源于英国数学家乔治·布尔(George Boole)于1849年创立的布尔代数,是数字电路设计理论中的数字逻辑科目的重要组成部分。

参与逻辑运算的变量叫逻辑变量,用字母A,B……表示。每个变量的取值不是0就是1。
0、1不表示数的大小,而是代表两种不同的逻辑状态。

  • 正逻辑体制规定:高电平为逻辑1,低电平为逻辑0。
  • 负逻辑体制规定:低电平为逻辑1,高电平为逻辑0。

Minecraft中的红石电路及其相关文章皆采用正逻辑体制。亦即:用“1”代表红石激活状态的“高电平”;用“0”代表红石非激活状态的“低电平”。


二、逻辑运算与性质

最基本的三种逻辑运算分别为 (逻辑与)、 (逻辑或)与 (逻辑非)。

其中“逻辑与”,有时表示为“×”(乘号。逻辑变量符号之间的乘号可以省略);“逻辑或”,有时表示为“+”(加号);“逻辑非”,有时表示为逻辑变量上的横线两种表达方式都是等价的,不过出于我个人的喜好,我更愿意用第二种。

为简单起见,下文的三种逻辑运算用中文表达时皆省去“逻辑”二字,也就是“与、或、非”。

这样,与门、或门、非门、与非、或非、异或、同或等等逻辑门就可以表示为:


逻辑代数有下列运算法则(建议下载后看大图):

用另一种符号表达则为:
结合律
交换律
吸收律
分配律
互补律
幂等律
有界律
0 和 1 是互补的
德·摩根定律

双重否定律



下面举两个运算的例子:
例如这个电路图



电路图从头到尾都是一堆与非门,是不是看上去很乱?
我们可以慢慢梳理:

先从头到尾列出O的表达式:

不要急,化简这个式子其实很容易的:
根据德·摩根定律:

根据吸收律以及交换律:

是不是很熟悉呢?对了,这四个与非门组合之后的作用就是“异或门”!



同理,贴一张常见的用红石火把与红石线构建的与门:

把左上当做输入A,左下为B,右边为输出O,则:
A输入最上面的沙子方块,然后引起上方火把的变化,相当于一个非门;
B输入最下面的沙子方块,然后引起其上火把的变化,也相当于一个非门;
刚才两个非门的输出被红石线连到了一起,然后又引起了红石线下面的沙子方块侧面的红石火把的变化,相当于或非门。

综上:

很轻松就能根据德·摩根定律得到:
O = AB
也就是与门。也可以看出,在Minecraft中,与门(如果用红石)实际上构建起来比较麻烦,远不如或门与非门结构简单。








OK,就这些了

下一期讲非常有利于逻辑代数式或者真值表化简的工具——卡诺图,详见教程索引。

愿意解答任何问题




欢迎大家访问MinecraftWIKI,参与我们的中文化工作~~~~~