中国极客小伙耗时半年自制CPU,完全采用分立晶体管,纯手工焊接!

如果你想自己DIY CPU,第一个想到的一定是采用FPGA来实现,对于一个电子行业的朋友来说做一个简单的CPU应该不算太难。当然也有一些另类做法,比如有人在我的世界游戏里,采用红石搭建过CPU。还有不久前一个国外的小伙用230片纯74逻辑芯片搭建一个RISC-V处理器。
现在更牛x的来了!最近B站上大火的一个视频,或许给了DIY CPU一个更完美诠释:
纯手工!纯分立晶体管!完全手工焊接!DIY 自制CPU!

视频链接:

https://www.bilibili.com/video/BV1sy4y1j7Ue
这位叫做“奶味的”Up主,耗时整整半年,用他那双勤劳的双手,逐点焊接,最终打造出了一个纯分立器件的完整CPU!
手工做一个CPU能用么?
当然可以,他还做了一个demo展示,来看一下效果吧。
纯手工DIY出一个CPU,还成功运行了流水灯效果,直接引发了一大波网友们的惊呼:
接下来,让我们一同看下自制CPU的完整过程:

来自百度贴吧:

https://tieba.baidu.com/p/7432882849?see_lz=1
原材料是二极管,三极管和电阻
上个几年前画的原理图
从头开始更,首先工作是验证门电路
理论通过之后,先从最容易的做起,先造一个移位寄存器,数据从一个方向进,一个时钟周期移动一个位置,最后从另一个方向出。这个就像是现在马路中间的交警,指挥着数据什么时候该往哪里走
第二个造的是PC--程序计数器,这个是第一阶段里最复杂的一个模块了,把PC涉及到的功能都挤进去。cpu重启就是要将它的计数清零。用它来实现挨个字节读取指令和数据,每操作一次,计数自动加一,还可实现直接跳转、调用函数,函数返回的功能。同时它也是最容易出问题的一个模块,造了一个月的时间,修了一个多月,虚焊特别多。焊反过一个二极管,结果看起来正常,用手机拍下来慢放之后发现执行速度忽快忽慢,找了一个星期才找到那倒过来的玩意,在最深处。还有各种玄学性的问题,造出这个,简直是用了半个脑袋的头发,不过当结果正常显示之后,特别开心,感觉一切都是值得的。
直接更完pc,不过这图还不是完全体,此时亮灯不正常,原理图有很大的问题

下条指令想做跳转来着,发现缓存不够用
升级了一个缓存,这样就可以实现跳转了,明天尽量运行流水灯。
这是PC--程序计数器刚出炉的图,与移位寄存器相互配合工作。


一个晚上才一条指令,改了一整排二极管,头疼

用hm628512做rom和ram,就是硬盘和内存。然后造一部分ALU-算数逻辑单元出来,这块包子有左移、右移、与、或、非、同或、异或这么多功能,这主要是归功于元件复用,建造面积才不那么大。
这几天说要跑个流水灯,却一直鸽着,原因就是PC又双叒叕坏了,终于找到原因并把它揪了出来。
这二极管,玄学性被击穿,拆下来焊盘都没了
焊制通用缓存
把线都连起来,做好测试,装机调试
完善了的程序计数器。之前在做跳转指令的时候,它很不听话,胡乱跳。经过两周的时间找问题,改了大量的电路,还挑出了一个损坏的二极管,终于在昨天使用1Hz的工作频率下,正常运行过一会,但是发现有1/4的概率会跳错位置,并且在高于4Hz的频率下,完全不能运行。与工作频率有关的,那肯定有电流不足的原因,心想,完了,全部电阻都使用10k阻值的,如果真的是这个原因,那全盘皆输,只能重新来。终于终于在今晚,把最有可能电流不足的的一个地方减少了一个二极管,然后它成功运行了起来,泪目!整合所有模块,指令跳转已无异常。目前这个cpu,在555最高工作频率下有3条指令是可以运行的了,可以跑个流水灯。得攒钱买个更快的波形发生器才行。
造cpu的这个过程,真的是要多艰难有多艰难,要多烧脑有多烧脑,白天上班写程序,晚上继续肝cpu,休息不足,用脑过度,头疼了一个月了。更得不快,还请各位hxd多担待担待。
现在,这个全部由三极管、二极管和电阻焊接而成的CPU就完成了!
如何编程?
因为这个CPU的指令集和架构都是自主研发的,所以没有适配的编程语言。
那怎么能让它跑起来呢?
这位Up主的对策是:纯手写最原始代码——二进制编程!
然后一步一步通过拨动开关手工输入进去
程序编好了!接下来,便是见证奇迹的时刻。

亮灯!

走进大神
在看完这波“神级”操作之后,想必大家都想了解这位大神。
大神原名林乃卫,广西北海人。
做这个项目的灵感,来源于在他写代码时分析可执行文件中的二进制。
那时候大神便萌生出了一想法:
CPU是怎么执行这一串0101的?
在结合数电课程的知识之后,大神猜测到了大致的原理,于是就想试一试。
最初他想用门级电路来做的,但是感觉难度不是很高,又想把整个过程从零开始理解透。
于是,便决定从最基础的模拟电路开始。
而整个过程最难的部分,便是“器件每一级的连接”和“CPU的运行速度”:
在此之前没有看过关于CPU原理方面的书籍,是靠自己对门电路的理解而设计的一套电路 ,想设计一套属于自己的架构。
从最基础的三极管开关到门级电路,网上找的电路图根本没法用,需要自己设计。虽然设计好后理论通过了,但是门级之间组合成功能级器件就有新的问题,功能级的电路再多个 组合起来成为功能模块又会产生新的问题,模块与模块之间连接更会产生新的问题.
这每一级的问题都很有可能要修改基础电路,然后又会从头开始产生新的问题。
因为没有专业的设备去调试,我用的是一盏LED和蜂鸣器,想尽办法也将速度提高到100kHz左右 而已,这是十分慢的,过程也十分艰难。
至于器件方面,大神均是从网上购得,然后再将它们一点一点地焊接成为模块。
这个CPU大致耗费了1000多个三极管、2000多个二极管,电阻数量也达到了2000多,焊点近万。目前的费用大概花了1000多元。
文章来源:量子位、百度贴吧、B站视频

IEEE Spectrum

《科技纵览》

官方微信公众平台






往期推荐
原子厚度的晶体管
鳍式场效应晶体管之父
最后的硅晶体管,纳米片器件
也许是摩尔定律演进的最后一步