游戏之家 > 游戏库

如何布局可扩展时序逻辑门电路?

首先要搞定的是IO的结构,IO由红、蓝、白块组成。其中白块标志程序/输入的开始和终止,红块代表1,蓝块代表0

左侧那些就是输入,基本的输入结构是9白块 蓝红序列 4白块。白块的作用是标志程序起止,方便精确提取结果

非门的实现很简单,我们可以做替换:

蓝->黄,红->蓝,黄->红,就可以实现红蓝块对换,也就是非门了。

对换的方法是,先将蓝色块全部取出,这样蓝块会变成空位,而后在空位插入黄快即可。

与或门更简单,先将蓝色全部取出,而后两个输入进入四向分流器,优先输出端输出的就是或门结果(两路中有一个红块就输出红块),非优先输出端就是与门的结果(两路都是红块才输出红块)。而后再在空位上填上蓝块即可。

时序逻辑电路除了输入的值(块的颜色),同等重要的是输入时间,因为一旦输入的时间错位了,输出的自然就不是正确结果了。这就是为什么我们需要一个同步模块。

同步模块的原理很简单,(大家看上图中的AND/OR模块中间的紫色块序列)我们先用紫块堵住路,然后通过设置出口优先级和过滤,并调节传送带速度,就可以实现两侧被紫块堵上的路同时疏通的效果,或者说输入会同时进入我们的门电路中。

还有一个是结果提取模块,我们只希望提取程序运行时的输出,而不希望看到程序开始前和结束后无意义的块。

这就稍微复杂一些(见图右上的模块),首先最左侧的四向分流器的作用是当程序未开始时不让任何块进入结果区,当程序没开始时,所有块,无论红蓝都将进入下方区域,然后被取走。不会向右走。而程序开始的9个白块的作用就是堵住下方路径,强制所有块进入右方区域。然后块会直接经过第二个分流器和第三个分流器。而当程序结束时,由于我们设置了最右侧的四向分流器优先将白块往下输送,所以标志程序结束的四个白块进入时,会直接向下走,而多出的白块会进一步堵住最右侧四向分流器的入口。此时就不会再有块进入右侧了。同时,第二个分流器会将后续的块导走,不堵塞路径。

除此之外还需要有一个分线模块。也就是我们希望一个输入能变成两个输入。这是比较复杂的。

我采用的基本原理就是一个铜块可以造出两个电路板,所以可以用它实现一条线边两条线。

基本的方法是先将红块替换为铜板,输入制造机器制造成电路板后分两路输出。而后再将输出的电路板替换为红块。同理处理白块即可。

一分二的基础结构,最左侧的是输入序列,是蓝红蓝蓝红蓝白白。

这是输出结果,可以看到输入结果被拷贝成了两条。

至此,所有搭建一个可扩展时序逻辑门电路的结构都有了,理论上我们可以用它搭建一台任意的图灵机了~

试验出了同步结构!之后制造大型电路的时候,可能出现的时序同步问题就业解决了!

基本的原理是通过三个四向分流器造倍增器,将第一个白块倍增成白块-磁线圈-马达的组合。由于制造一个涡轮需要两个马达,所以必须两侧的马达都到达了,才会同时吸取新的磁线圈,否则磁线圈会堵塞线路,防止先到的一方走。这样就可以实现无损的同步。


基本逻辑门有三种:与门、或门、非门。其中与或都需要两个输入项,而非门只需要一个输入项,所以非门是三个当中最简单的,那我们就先制作一个非门。

我的思路是:非门的逻辑是,输入0输出1,输入1输出0。那么我们可以用传送带来表示输入与输出。当一条传送带满载着货物时,定义为1,否则定义为0(这个精度目前还不方便掌握,只能是有空位就算是0)。

那么我们只需要检测到输入的传送带为0,就让输出的传送带输送货物;检测到输入为1,就不让输出端有货物出现。

我第一时间想到的是用独立电网的发电设备来完成,当输入为1时,发电机工作,带动分拣机,把输出端的货物全部拣走就好了;或者输入为0时,发电机工作,把货物拣到输出端上。我选择的是后者。实际上前者也可以。

目前的发电设备有:风能、火力发电、核电、太阳能、射线接收器、小太阳。其中风能最先排除,因为它一直工作。太阳能和射线接收器受时间影响,无法控制。核能和小太阳一个燃料的燃烧周期太长。

火力发电啥都好,就是有一个致命的问题——无法在不工作的情况下,主动接纳燃料,现在有的电力传输设备的连接范围又全都远大于覆盖范围。这就导致与火力发电机对接的分拣机,无法与发电机保持在两个不同的电网内,从而实现发电机在不工作的情况下自动接纳燃料。

好在我们还有能量枢纽!

能量枢纽的电池进入方式区别于其他设备,是传送带直连的,也就是说,它在不工作的情况下也可以接受满能量的电池!

所以现在的思路就是当输入端为1时,能量枢纽接受不到电池、不放电,输出端的分拣机不工作,则输出端没有货物输出,为0;反之为1。

那这样就好办了,我们可以利用分拣机,将电池从一条传送带抓到输入端上,然后再在下一个设置一个爪子,抓取满电的电池,送给能量枢纽。这样一旦输入端出现空位,就会有电池进入能量枢纽,输出端就会被放满货物,就实现了输入0,输出1;如果输入端没有空位,那么电池便无法从另一条带子转移到输入端,那么便不会有电池进入能量枢纽,输出端分拣机不工作,就实现了输入1,输出0的逻辑。

思路敲定之后,着手来搭建吧。

图中a为输入传送带,b为输出传送带。当a上面的铁矿石持续不断的运动时,满电的电池无法放置在其上,输出端的b自然是0输出。但考虑到能量枢纽如果只带几个爪子,那一个电池能用一年……所以在其右侧接了一个“负载电阻”(一开始想用对撞机来着,但发现用充电模式的能量枢纽简直完美),确保能量枢纽可以最快速的放电。那我们已知能量枢纽放电最大功率为45MW,一个电池热值为90MJ,我们不难得知,能量枢纽的工作时间为2s。因此,我们对电池的输入频率不能超过2s,否则电池会堆积,导致整个电路阻塞。所以采用了三格远的黄爪,刚好1秒0.5个来回,即2s一个电池。所以整个电路的最小时间单位便为2s(有点长,但目前我还没想到缩短的方案,欢迎大家提供思路)。然后就是电池的回填,左右各放置了一个并入大电网的能量枢纽,来充放电,维持每个物流塔中电池的数量保持不变。

输入端为0时,是这样的:

至此我们就把一个非门设计完成了。下面我们顺着这个思路,我们来设计一下与门。

与门,有两个输入,只要有其中一个为0,输出端也将为0。承接上面,我们可以在两个输入端都用爪子抓电池,然后在后面一格各放一个通向能量枢纽的传送带的爪子,这样只要有一条线处于空闲0输入,就会有电池流入能量枢纽,输出端就会为1。

等一下,好像有哪里不太对劲……这不成了与非门了么?……当输入为0时,我们要输出的是0而不是1啊。这个问题很简单,我们已经有了非门,只要在输出端加个非门就好了嘛……

其实也大可不必那么麻烦,我们只要把输出端分拣机的方向转一下不就好了嘛,让能量枢纽放电时,分拣机把货物从输出线上全部拣走不就成了?

那么事实上,在动手制作的过程中,发现了新的问题:当两个输入端都为0时,能量枢纽会在2s内接受到2个电池。还记得我们前面说的吗?能量枢纽2s内只能经受一个电池,多了就会产生阻塞,而且每多一个电池,输出的结果就延迟2s,这是不能接受的。

其实处理起来也并不难,我们只要设置一个新的传送带,把两个电池中的一个抓到带子上,放掉另一个会到物流塔里就行了。如图:

为了确保爪子不一下子抓走两个电池,我们仍然采用3格远的黄爪子,这样可以确保两秒之内只有一个电池进入枢纽。

实际效果是这样的:

这样我们的与门也造好了。剩下的或门原理类似,思路就不赘述直接上图了:

只有两个输入端都为0,才会有电池进入枢纽,如果只有一个的话,会被分拣器拣回塔里。

至此,我们完成了与或非三种门的制造。这个设计的好处在于,输入端和输出端的产物可以完全无关,只要输入端不是满电的电池,其余都没问题。