红石究竟是什么?从简单到复杂的红石电路是怎样构造的?

红石究竟是什么?从简单到复杂的红石电路是怎样构造的?

当年因为研究红石啃掉一整本数字电路专业书的默默路过。。。。。。

当年做一个红石系统都是先在quartus里做好,仿真验证通过了,然后打印出来再开MC慢慢造出来。

在MC里,红石就是导线。可以将红石能量(理解成电能)传播15格远。

只有红石是不能做什么的,就像你只有一堆电线同样做不出来电器一样。

作为一个能量的导线它必须解决两个问题才能派上用场,一、能量从哪里来,二、能量到哪去。

我们先说第二个问题。

MC中实体方块可以接受能量,从而把自己变成充能状态,充能状态的方块可以给附近的其他物体提供能量。

再来说第一个问题。

MC引入了一种叫做“红石火把”的东西,你可以把它理解成电源,可以给红石线提供能量。

它有个很简单但是很重要的特性:当其他物体提供给它能量的时候,它自己就会熄灭。

这个特性很有意思,因为根据这个特性,我们可以轻松的做出“非门”来。

对,就这么简单。

现在当A有能量输入时,由于红石火把的这个特性,B就没有能量输出了。

A没有能量输入后,红石火把不再获得能量输入,于是开始向B输出能量。

然后我们构造或门:

或门很简单,只用导线的性质就可以做到了。

做一条Y型的红石线,其中两端用于输入,剩下的一端用于输出。

下面我们来构造终极大杀器——与非门:

然后是与非门。它的原理是这样的:

用两个非门(输入A、B)的输出端的红石火把同时给中间的红石线供能,这个红石线连接输出C。

A、B无输入的时候,两个红石火把都亮着,因此中间有充能,于是输出C有能量。

当A、B只有一个输入的时候,其中一个红石火把熄灭了,但另外一个还亮着,因此中间还是有充能,于是输出C还是有能量。

只有当A、B都有输入的时候,两个红石火把都熄灭了。中间的才没有充能,这时候输出C才是无能量的。

我们可以看到,上面那个系统确实符合与非门的定义。

我们知道,与非门是逻辑完备的。也就是说,我们有了与非门,就可以构造出整个逻辑电路来了。

当然我们可以用上面这些简单的组合构造更复杂的逻辑门,比如与门、异或门等。

然后用这些门电路做更复杂的系统,比如半加器,全加器,T触发器,D触发器,JC触发器,RS锁存器。

等等。。。要构成触发器。。。不是需要一个时钟信号么?时钟信号怎么来?

红石中继器的主要功能就是红石信号的增强。由于红石信号只能传播15格远,如果需要非常大型的设备,就需要红石中继器进行中继了。

不过红石中继器有个特殊的特性,就是会产生一刻(0.1秒)的延迟,我们可以利用这个延迟来完成时钟电路,产生时钟信号。

然后上面的这些东西就可以做成更加复杂的组件,比如寄存器,ALU,栈式存储器、计数器。

对这些东西进行适当的连接之后,你可以对ALU做出一些控制,比如加法和减法,移位和取反等。

ALU和寄存器之间同样有一堆连接线路,它们也通过逻辑门控制,这些是总线的控制线路。

每个寄存器都有它允许写入和允许读取的线路。总之这些控制线连在一起,做一个有一堆开关的控制台,这个就叫做CU(控制器)。

ALU和CU加起来就是CPU了。

我在MC里还没实现到这一步。。。。。

有天无聊倒是在quartus做了一个8位CPU出来,还做了配套的汇编语言和汇编器。。。。。。

然而。。。。。

像我这种有拖延症的人大概是没法在MC里做出CPU的吧。。。。