
红石基础,认识元件
刚开始接触红石那会儿,我真是一头雾水,只知道红石粉可以传递信号,红石火把能提供恒定的能量。后来慢慢发现中继器能延长信号并调整延迟,比较器则能比较两个信号的大小或检测容器中的物品数量。这些基础元件就像现实中的导线、开关和放大器,没有它们,任何复杂的红石机器都无从谈起。我花了好几个晚上造出简单的脉冲电路,看着红石灯一闪一闪,心里特别有成就感。记住一点,红石信号最多传递十五格,超过就需要中继器接力,这是入门必须牢记的规律。
逻辑门,造出与或非
半加器与全加器,计算的核心
寄存器与存储器,保存数据
光会加法不行,电脑还需要存储数据。最简单的存储单元是RS锁存器,用两个红石火把互相控制,一个输入置位一个输入复位,就能记住一个比特。我嫌它太占地方,后来改用比较器做锁存器,体积小很多。要存储多位数据,就把多个锁存器排成一排,用一根公共总线控制读写。做寄存器时我踩了不少坑,比如信号冲突导致数据错乱,后来加了中继器做隔离就好了。还有更高级的随机存取存储器,用红石比较器配合投掷器或漏斗做成动态存储,虽然速度慢但容量大,适合存长指令。
时序与时钟,让一切同步
电脑工作靠的是时钟脉冲,如果没有统一的节拍,信号会在不同模块间乱跑。我试过好几种时钟电路,最简单的就是两个红石火把和几个中继器构成循环震荡器,频率可以调。但要驱动整个计算机,必须用比较规范的脉冲,我最终选择了“红石火把加中继器”的经典设计,输出稳定的方波。我把时钟接到所有寄存器的使能端,确保每个操作在特定时刻完成。调试时钟同步是最折磨人的环节,因为红石信号有延迟,慢一格都会导致数据错位。后来我学会了用中继器调整每条线路的延迟,让所有信号同时到达目的地。
指令系统与编程,让电脑听你指挥
有了加法器、存储器和时钟,接下来就是定义指令了。我的电脑比较简单,只支持几条基本指令,比如加法、加载、存储和跳转。我用四个二进制位表示操作码,再用四个位表示地址。为了让电脑理解指令,我在控制单元里用逻辑门解码操作码,然后生成对应的控制信号。编程则是把指令写在一排排红石火把或者投掷器里,相当于只读存储器。我花了两个周末编了一套计算斐波那契数列的程序,虽然只有十步,但看着红石灯逐格亮起,输出结果时,那种满足感远超过任何游戏成就。
调试与优化,从崩溃到稳定
相关文章