油桃当中富含的五大营养价值
,《我的世界》,一高二学生因爆肝在B站火了。他从未接触过数电,一切从零开始,仅仅是为了搞清计算器的原理。然后……然后……就直接在《我的世界》里肝出了个“理论最快”四则计算器:0.05s完成运算!这位ID为“史蒂夫的骨灰”的Up主,是从去年1...
,《我的世界》,一高二学生因爆肝在B站火了。 他从未接触过数电,一切从零开始,仅仅是为了搞清计算器的原理。 然后…… 然后…… 就直接在《我的世界》里肝出了个“理论最快”四则计算器: 0.05s 完成运算! 这位 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 当成“一百二十三”,而是当成“一二三”再分别用二进制表示。 再例如由于耗时过长,游戏都更新了,有改动的部分还得重新调整: 而后更是像在给粉丝们做“工作汇报”一样: 进度:XXX。 于是,就这么一点一滴像打地基一样,计算器的各个部件就做好了。 到后来,当初教他数电基础的网友反倒跟不上了。 最后的工作,用骨灰君的话就是“简单组装一下”。 乘法模块: BCD 转 binary: Binary 转 BCD(整数): ...... 最后是显示器 + 总控电路: 大功告成! 网友:5000 粉整出 50W 粉的活 如此浩大的工程,出了 bug 怎么办? 还别说,真有网友问了这个问题: 骨灰君也对此作出了回复: 检查一整天找出 4 个错误方块…… 自但更多的网友还是“膜拜”于骨灰君之肝: 还有集成电路设计专业的来招人: 回到这个项目的初衷,其中一个让骨灰君坚持的理由,就是为了当时近 5000 的粉丝。 而有网友认为,Up 主的工程,堪称“50W 粉的活”。 不过放眼现在,骨灰君的粉丝量已经达到了 1.4W! 恭喜,恭喜! 同时也期待骨灰君下一次的力作,不过要等到高考以后了~ |
文明上网理性发言,请遵守国家法律法规。