图灵完备攻略--从原力觉醒直至一台可运行的计算机

图灵完备攻略

如果有少图的情况请评论指出。
与其在我的屎山代码实现汇编程序模拟,还不如玩图灵完备。

基础逻辑电路

原力觉醒

与非门(NAND)

得到了与非门的真值表和现成的与非门。

非门(NOT)

与门(AND)

与门+非门我们就得到与非门,反过来也同理。

或门(OR)

根据真值表就能想到翻转两路输出。

或非门(NOR)

或非门就是或门基础上加上非门。

高电平

第二刻

根据AND的真值表只有都为两个绿灯时才允许通过(门的概念),我们只要让第二刻满足两个绿灯即可。

异或门(XOR)

考虑只让相反的一对输入通过。

三路或门

三路与门

同或门(XNOR)

算术运算

二进制速算

嗯算。

成对的麻烦

好难过。我记得我打这关的时候想到一个很精简的想法,结果没保存啊啊啊啊啊啊啊啊。让我现在想只能想到这样做了。

奇数个信号

根据数电知识很容易想到就还是要一个异或门。

信号计数

根据提示,输出一就是异或门,输出三就是数四,那只有全是绿的时候才能通过自然想到两个与门。
输入二其实就是至少两个是绿灯,可以用或门检测,如果不加红框里的异或门最后就会数出六。

加倍

半加器

进位真值表和AND一样,求和和XOR一样。

全加器

总和就是奇数个一,进位就是判断大于二。

德摩根律嗯。

一位开关

在这里插入图片描述

8位或

按位操作。

8位非

8位加法器

负数

算吧。

相反数

根据补码概念得到的。反转然后加一。

逻辑引擎

分线然后控制四路开关,看好了三态门是这么用的。剩下的就是八位与或非和与非。

存储器

循环依赖

嗯偷看手册。

延迟线

奇变偶不变

输入恒为低电平,可以通过翻转得到高电平,XOR换成OR也一样。

一位取反器

数据选择器

主要就是这个ADD我觉得想得很巧妙。

总线

控制数据流动~

优雅存储

存储可以通过延迟线回路实现,输入一就是控制信号,允许写入的时候就让新数据通过,进入延迟线回路,翻转控制信号就是读信号让回路继续运行。

存储1字节

分线再集线分别存储。

小盒子

橙色部分是片选线。圆形输入是写入的数据,自然链接寄存器的数据端。三角形的输入是读写控制,就要和片选线一起工作,黄色是读取连接寄存器读取端,片选线选择时才可通过就需要相与一下。写控制同理,如蓝色和粉色的部分。别忘了把三角形的读控制线连到输出的使能端。

计数器

这部分就是完成时钟。计数器就是每个时刻加一,想到用加法器,一路高电平,一路是上一刻的存储值,就可以很自然的想到右半部分,然后根据题意就完成整个电路了。

处理器架构

算数引擎

绿色的线相当于输出总线。既然上总线就要三态门控制一下。逻辑运算比较好处理。或和或非是灰色的,与就是八位分线之后按位与,青色线,与非就是与上加非门。加法我们就掏出加法器,减法就是加减数的反码。

存储器之间

根据题意前三位是目的(黄色),后三位是源(橙色),先分线再译码,从第一路开始就是0-5寄存器的片选信号,按照读写信号分别连接寄存器。输入数据端连接所有寄存器的写入端(绿色),寄存器输出连接关卡输出端。第七路是输入输出组件,分别连接输入输出即可。

元件工坊

解锁元件工坊。

指令解码器

其实还是译码器。根据右边红框发现解码最高两位就可以。

条件判断

译码分线,上面是片选下面是输出线。

先完成判断是否是零的电路

思路是从小于零开始解决,符号位是一就可以判断小于零,然后or等于零的电路就可以判断完小于等于零,大于等于零是符号位取反判断,大于零就是不满足小于等于零,仔细放取反门应该就没问题啦。

计算单元

在之前的基础上加上两个自定义组件。大体思路如下。ALU一直计算,通过三态门控制何时输出。

REG1连ALU输入1,REG2连输入2,由于两个信号控制REG3加一个或门。总体如下图。

程序

这关发现我对计数器的理解有点问题?不是时钟而是PC指令计数器之类的应该。

立即数

就更改REG0控制和输入两件事,控制用OR门,输入的话可以用三态门控制,如紫色线所示。

三态门是好东西,我应该多多的用XDDDD

图灵完备

先处理条件判断。灰色线。

然后是剩下的部分,灰色和白色线
在这里插入图片描述

真是振奋人心的时刻 !!!

### 图灵完备性概念 图灵完备性指的是计算系统的表达能力,即该系统能够模拟通用图灵机的行为。任何图灵完备的语言都可以执行条件判断、循环以及函数调用等操作来完成复杂的算法设计[^1]。 ### Switch语句的功能特性 `switch`语句是一种多分支选择结构,在编程语言中用于简化多个`if...else if...else`的选择逻辑。它允许程序根据变量的不同取值跳转到不同的代码块执行特定的操作。尽管`switch`本身并不具备完整的控制流功能,但它可以与其他控制结构组合起来构建更复杂的应用场景。 ```c++ switch (variable) { case value1: // 执行某些操作 break; case value2: // 执行其他操作 break; default: // 默认情况下要做的事情 } ``` ### 关联分析 虽然单独来看,`switch`只是提供了有限的状态转移机制,并不足以证明其所在语言具有图灵完备性的特点;但是当把`switch`放在整个编程环境下去考量时——尤其是结合循环、递归和其他高级抽象手段之后——就可以看出即使是简单的语法糖也能成为构成强大计算模型的一部分。 例如,在支持自定义标签和goto指令的环境中,通过巧妙运用`switch`配合break/continue/fallthrough等关键字,完全可以实现任意形式的数据遍历与模式匹配过程,从而间接体现了底层平台所固有的图灵完全性质。 然而值得注意的是,真正决定一门语言是否达到图灵完备水平的关键因素在于能否提供足够的灵活性去描述任何形式化的数学命题求解流程,而不仅仅是依靠某单一语法组件的表现力。因此可以说,`switch`作为众多可用工具之一确实有助于增强整体表现力,但绝不是唯一标志或核心要素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值