turing complete(图灵完备)——通过谜题,学习处理器架构

目录

前言

正文(不定期更新)

基础逻辑电路

原力觉醒

非门与四个基本门的相互关系

其他基础逻辑电路


前言

        两个月前玩了个挺有意思的游戏——turing complete(steam原价70RMB)。大致情节是:外星人侵略地球,而你被外星人抓走了,它们决定将智力低下的生物都吃掉,而它们区别你是否智慧,是否吃掉你的依据是:你能否从简单的门电路开始手搓一台计算机......

        由于这个游戏到中后期的时候就开始要求 “这关的电路需要从上一关的电路开始,继续搭建完善” ,所以如果前面接是“史山”电路,那么到后面的时候就得花很多功夫去重新构建梳理。

        我之前玩的时候,开始完全不讲究注释和接线颜色,到后面就知道难受了,之后又去忙别的事情挺久没打开过,再点开的时候前面自己接的电路已经只能知道输入和输出,成了自己给自己做的“黑箱”。

        现在打算把之前的全部推翻重来,直接重置游戏从头开始,这次一定好好写注释,顺便遇到的困难和通关思路丢到这来等着回顾回顾。

(不是名人但是名言:我写程序最讨厌,一是不写注释的人,二是写注释)

正文(不定期更新)

基础逻辑电路


原力觉醒

         一点开始游戏,就有外星人老哥给我们来了点“小惊喜”。

        第一关很简单,只是说明了一下输入的开关情况。

呃呃......


非门与四个基本门的相互关系

        四个基本门指与门,与非门,或门和或非门,非门和四个基本门我们比较熟悉,但它们间的关系还是比较有趣的。这里简单带过关卡内容,主要精力花到解锁的第一个手册词条—— “德·摩根定律”上。 

与非门(NAND)

这一关简单认识了下与非门的输入输出情况,这将是我们构建计算机的起点。

 之后,我又用与非门搭建了非门,或门,或非门和与门。

 非门(NOT)

 或门(OR)

 或非门(NOR)

与门(AND)

 德·摩根定律

         德·摩根定律描述的是非门与四个基本门的相互关系

从真值表看

        让我们在四个基本门的真值表的输入与输出之间划一条蓝线,将其分成上下部分两张卡片,可以发现,四个门电路的真值表的上卡片一模一样,区别在于下卡片,而其特点在于:

  1. 当对输入加非门时,下卡片旋转180°。
  2. 而当对输出加非门时,下卡片的颜色颠倒。

从门的名称看

        我们把这四个门的名称从两个角度来看,一是有无N,我姑且称它为N属性,二是主体为OR还是AND,我姑且称它为OA属性如此可以得到下面两个直观的结论:

  1. 对输入加非门时,门的N属性和OA属性同时被反转了,
  2. 对输出加非门时,门的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)

         对比看看前面的异或门真值表和现在要设计的同或门的真值表:

        可以发现,同或门和异或门的结果完全相反,所以同或门只需要在之前设计的异或门电路输出口上加个非门就可以实现了。 

        自此,基础逻辑电路的部分就结束了,上面所学的只是一个个零件,接下来才是开始组装计算机的各个部分,做好了准备工作,终于可以迎接挑战啦!下一阶段是算数运算和存储器的同步学习,再之后就是处理器架构和编程了。

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伊H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值