前言
两个月前玩了个挺有意思的游戏——turing complete(steam售价70RMB)。大致情节是:外星人侵略地球,而你被外星人抓走了,它们决定将智力低下的生物都吃掉,而它们区别你是否智慧,是否吃掉你的依据是:你能否从简单的门电路开始手搓一台计算机......
本篇内容讲的是我游玩这个游戏的第一部分——基础逻辑电路时的收获与感想。
原力觉醒
一点开始游戏,就有外星人老哥给我们来了点“小惊喜”。
第一关很简单,只是说明了一下输入的开关情况。
呃呃......
非门与四个基本门的相互关系
四个基本门指与门,与非门,或门和或非门,非门和四个基本门我们比较熟悉,但它们间的关系还是比较有趣的。这里简单带过关卡内容,主要精力花到解锁的第一个手册词条—— “德·摩根定律”上。
与非门(NAND)
这一关简单认识了下与非门的输入输出情况,这将是我们构建计算机的起点。
之后,我又用与非门搭建了非门,或门,或非门和与门。
非门(NOT)
或门(OR)
或非门(NOR)
与门(AND)
德·摩根定律
德·摩根定律描述的是非门与四个基本门的相互关系。
从真值表看
让我们在四个基本门的真值表的输入与输出之间划一条蓝线,将其分成上下部分两张卡片,可以发现,四个门电路的真值表的上卡片一模一样,区别在于下卡片,而其特点在于:
- 当对输入加非门时,下卡片旋转180°。
- 而当对输出加非门时,下卡片的颜色颠倒。
从门的名称看
我们把这四个门的名称从两个角度来看,一是有无N,我姑且称它为N属性,二是主体为OR还是AND,我姑且称它为OA属性。如此可以得到下面两个直观的结论:
- 对输入加非门时,门的N属性和OA属性同时被反转了,
- 对输出加非门时,门的N属性被反转了。
再回看
再次观察这四个电路,有没有对“德·摩根定律”更清楚一点 ?
其他基础逻辑电路
高电平
这关要求实现一个任何时刻都输出高电平的电路,实现方法很多,我采用了个简单易懂的。
这样我们就有了一个能持续输出高电平的”电源“了。
第二刻
关卡“第二刻”,要求只在第二时刻输出高电平, 通过逻辑代数运算可以知道:
“A and notB”
就是结果,根据式子接了下面的电路。(输入1写作A,输入2写作B,下文相同)
异或门(XOR)
这关也是给定真值表让我们设计电路,同样用逻辑代数运算:
“(A and notB)or(notA and B) ”
这个式子想要电路接得好看点就得花点心思了,现在还没有解锁电路的导线颜色选择和导线注释功能,还是有点难受的。
三路或门
还是给定真值表让我们设计电路,但这关的真值表看起来有点可怕,因为现在有3个输入,8个结果,但我们看它的名字叫“三路或门”,可以想到这个电路的逻辑算式是:
“A or B or C”
依据这个结果可以轻松画出下面的电路。
这关直接看正值表也可以,可以采用逆向思维,把不想要的输出表达出来再取反:
“not(notA and notB and notC)”
依据这个结果可以画出如下电路。
三路与门
有了设计三路或门的经验,三路与门就简单多了。
“输入1 and 输入2 and 输入3”
同或门(XNOR)
对比看看前面的异或门真值表和现在要设计的同或门的真值表:
可以发现,同或门和异或门的结果完全相反,所以同或门只需要在之前设计的异或门电路输出口上加个非门就可以实现了。
后言
自此,基础逻辑电路的部分就结束了,上面所学的只是一个个零件,接下来才是开始组装计算机的各个部分,做好了准备工作,终于可以迎接挑战啦!下一阶段是算数运算和存储器的同步学习,再之后就是处理器架构和编程了。
标签:输出,complete,高电平,真值表,turing,图灵,或门,电路,输入 From: https://blog.csdn.net/weixin_73483158/article/details/139184046