留存数据无疑需要使用延迟线,但是延迟线只能保存一刻数据,所以我们要一直刷新它。我们先构成一个循环,延迟线会一直存储数据,直到它被关闭,如下图:
我们需要一个开关来控制它何时被关闭:
当然这个开关现在起不到任何作用,我们需要把延迟线的输出值输入到开关上:
然后我们将待写入的值接入总线:
然后用一个开关来控制:
本关最终答案按
我们先制作一个可以存储8位数据的存储器。我们只有1位存储器,所以我们需要8个。将8位数据拆成8个1位数据,存储到8个存储器中:
当然,我们还需要制作输出端,将存储的8个1位数据再转化为1个8位数据:
接下来就是如何控制,它有3个要求:
我们先制作第二个。只要将输入1连接到每个1位存储器即可:
此时,将输入0连接至输出端下方即可完成一和三:
本关最终答案
本关的电路搭建特别简单,不需要过多解释,直接看图即可:
本关最终答案
本元件就相当于上面的电路,可以在两路输出中选择一路。
我们先制作第一套,此电路可以确定是不是三个红,如果是就输出到输出1:
然后制作第二套,因为真值表的第一行是绿色,所以我们不用放置非门:
然后再制作第三套,第二路是绿,因此第二路不需要非门:
像这样将所有电路全做出来,一共8套电路:
然后我们将8个电路结合起来,注意不要连错孔:
本关最终答案 方案A
这里提供一下另一种解法:
本关最终答案 方案B -小渊xyz
我们先将指令输入端进行解码,用到我们上一关制作的3位解码器:
这样,4种指令,就分别对应解码器的前4个输出口。
我们使用8位或元件直接处理两个数据,然后将处理结果加上8位开关,与解码器输出的OR指令路连接:
现在来制作第二条指令,即按位与非,和我们之前制作的按位或和按位非的电路相似,只是把逻辑门换成了与非门,我们用1举例:
后面的也这样搭建,然后在结果路放置8位开关,让指令NAND路控制开关,将结果输出到总线:
然后制作按位或非,我们已经有按位或和按位非,把它们组合就行:
然后在结果路加开关,让NOR指令路控制,接入总线,适当调整位置节省空间:
现在我们再制作按位与的电路即可:
也是同样,加开关,让指令AND控制,接入总线:
本关最终答案
我们获得了这关里制作的3个按位操作元件:
还记得我们在前讲的“宽带”吗?首先我们先将地址数据使用解码器导出成4条线路:
我们知道,用A、B、0、1可以组成4个地址,分别的 (A,0), (A,1), (B,0), (B,1),我们将这4个地址用与门判断出来:
我们在输入端设置4个8位寄存器,输出结果直接接入总线,然后输出到输出端:
接下来我们只需要做到“控制”即可。需要8个与门,空间有点小,你看怎么能摆下:
左边4个与门用于判断是否读取,我们先接入数据:
然后我们把输入1接进去,就相当于“如果收到读取的信号,就让信息通过”:
右边四个与门也类似,用于判断是否写入。先接入数据(我用的是深蓝色的线):
将输入2接入到四个与门,就相当于“如果接收到要写入的信号,就让数据通过”:
最后我们再来一条线(白线),将读取信号输入端和输出端开关连接。注意你很有可能没办法连接这条线,因为空间被填满了,你需要让其他东西“让开”。在移动其他元件时一定要将它的输入输出一起移动,不要导致断开和短路,如果出问题了可以按Ctrl+Z撤销操作。最后做出来是这样:
本关最终答案
首先我们制作一个这样的结构:
寄存器会始终把数据存储并输出,并且直接输出到输出端。到下一段后,因为有ADD在,会+1(高电平就是1),然后再输出出来,重新写入到寄存器。左侧的高电平时为了始终启用寄存器的读取和写入功能。这样,在不覆盖的状态下,寄存器会每刻都+1。
现在我们来做数据覆盖。我们只需要用到一个选通器,选择让哪个数据覆盖到寄存器即可。注意不要弄错选通器的输入端口:
本关最终答案
我们获得了8位计数器元件,其实就是我们本关制作的电路。它会每秒+1,直到有新的数据覆盖。
以下三章为《图灵完备 Turing Complete》游戏手把手教程(教程原创为知乎:淘气喵w,特此说明)
第一章:基础逻辑电路
第二章:算术运算和存储器
第三章:处理器架构