高二学生 B 站 UP 主爆肝 10 个月,自学数电在《我的世界》里打造理论最快四则计算器

辛丑牛年(2021),《我的世界》,一高二门生因爆肝在B站火了。

他从未接触过数电,全部从零首先,仅仅是为了搞清计较器的道理。

而后…… 而后……

就干脆在《我的世界》里肝出了个“表面很快”四则计较器:

这位 ID 为“史蒂夫的骨灰”的 Up 主,是从昨年 10 月首先这个项目,因为在上高二,惟有周末和放假才偶然间推动。

瞧瞧,这挨挨挤挤的零部件,这可都是他“亿点亿点”纯手工搞上去的。

引得网友直呼:谙练地让民气疼。

也有人回首起读过的《编码》一书中的话 ——“这么多继电器组合太大了,现实中做不到”,而后惊呼道:

乃至连小鹏汽车都来凑热烈了:

接下来,让我们配合走进这位高中生的爆肝之作。

表面很快四则计较器

先来看看计较器现实运转结果:

视频里说的 gt 也即是“游戏刻”(GameTick),指表面上《我的世界》游戏程序更新一次数据的时间:0.05s。

这里可以看出,加减乘除四种运算全在 1 游戏刻以内得出后果!

即是为了实现这个速率,UP 主骨灰君才把计较器体积做到这么大、布局这么复杂。

以前在《我的世界》顶用红石电路做计较器,或多或少都需求少许运算时间。

这是因为游戏中传输灯号的元件会发生 0.1 秒的延时。

与全部游戏的运转速率差别,红石电路是把 1 秒分红 10 份,每份称为 1 红石刻,也即是 0.1 秒。

如许无论怎么举行优化,都不可以在小于 1 红石刻的时间里实现运算。

骨灰君接纳另一个思绪,用另一个元件活塞来实现电路。

活塞可以在小于 1 红石刻的时间内实现一次推拉,相配于在电路中发生一个脉冲灯号。

以这种方法传递灯号,全部电路的运算时间,表面上限即是 1 游戏刻 = 0.05s 了。

固然,因为 CPU 机能的限制,在个人计算机上现实运转时间会长少许。

整套计较器运转起来很吃建设,不加水冷的话 CPU 干脆飙到 3 位数温度。

这么巨大的工程,毕竟怎么做出来的?

怎么肝出来的?

说到这个疑问,时间还得回溯到 1 年前。

其时骨灰君的年头很的简单,即是想用《我的世界》来研究一下计较器的道理。

因此就先计划了一个加法架构,一段时间往后,还搞出来了个乘法器。

其时的他,其实没有想过做完备的一个计较器,但后来觉得既然首先了,那就一步步研究吧。

并且将数电和械电连结,过程当中可以说是难题重重。

但骨灰君觉得:

从动静区中不丢脸出,骨灰君真的即是一步一个脚迹,每突破一个难题就会纪录下来。

比方把二进制转为 BCD 码的模块就得搭 700 米长的方块,乃至超过了游戏的默认表现局限。

BCD 码是用 4 位二进制显露十进制中的 0-9,相配于不把 123 当做“一百二十三”,而是当做“一二三”再分别用二进制显露。

再比方因为耗时过长,游戏都更新了,有窜改的片面还得从新调解:

而后更是像在给粉条们做“工作报告”同样:

因而,就这么一点一滴像打地基同样,计较器的各个部件就做好了。

到后来,起先教他数电底子的网友反倒跟不上了。

很后的工作,用骨灰君的话即是“简单组装一下”。

(讲真,有被凡尔赛到,瞧瞧弹幕的反应)

乘法模块:

BCD 转 binary:

Binary 转 BCD(整数):

......

很后是表现器 + 总控电路:

大事完毕!

网友:5000 粉整出 50W 粉的活

云云浩荡的工程,出了 bug 怎么办?

还别说,真有网友问了这个疑问:

骨灰君也对此作出了回复:

但更多的网友或是“敬拜”于骨灰君之肝:

另有集成电路计划职业的来招人:

回到这个项目的初衷,此中一个让骨灰君坚持的理由,即是为了其时近 5000 的粉条。

而有网友觉得,Up 主的工程,号称“50W 粉的活”。

但是放眼当今,骨灰君的粉条量曾经到达了 1.4W!

祝贺,祝贺!

同时也等候骨灰君下一次的力作,但是要比及高考往后了~

您可能还会对下面的文章感兴趣: