如何動手做出一個 CPU
純手工打造一個 CPU 這個事兒。
在電子專業的同學眼里,很容易。
在計算機專業的同學眼里,稍稍有點復雜,有的專業課的實驗課可能會帶著同學做一個,或者用 Logisim 這樣的仿真軟件去模擬實現一個。
在非計算機專業的同學眼里,就有點不敢想象了。
我就屬于第三種。
純手工做一個 CPU 有很多好處,做完了以后確實對計算機組成的原理有了更為深入且直觀的理解,而且也能稍稍涉足到電子領域,產生興趣。
所以有那么幾個月的時間,我就真正去實踐了一下,做出來了一個能跑的玩具版的八位 CPU。
哦,這不是最終版的,熟悉我的讀者朋友知道,完整版的 CPU 已經因為當時和女朋友吵架,被她怒掰成了兩半。
如果最終做出來,應該是這個樣子。
感興趣的朋友,又不知道如何開始,可以走一遍我的老路,今天分享給大家。
當時我完全不知道這玩意該咋弄,網上找了好久也沒找到個靠譜的能教我一步步做的,但后來居然發現了這個神奇的網站。
https://eater.net/
這網站真的是絕了,作者叫 Ben Eater,是個極客,里面放了很多教你如何做各種東西的視頻,而且是保姆級教學。
而被我發現了,置頂的一個教學就是 Build an 8-bit CPU from scratch,用面包板搭建一個八位的 CPU。
于是就照著這個視頻一步一步做了。
可以點開看一下。
看整體大綱,就是分模塊一個個做的,你說你要是花上一段時間都做一遍之后,怎么可能對計算機組成原理不了解呢?簡直如數家珍啊。
當然我當時遇到的第一個問題就是,買什么材料,這些在這個頁面也都包含了,就在前幾章里。
不過這都是美國的購買方式,當時我也是花了好長時間,把它對應成了在中國的電子元器件的名稱。
可以想象下當時我的痛苦,在完全沒有任何電子知識的情況下,把英文的那些描述轉換成中國可以買到的電子器件,我感覺我都可以成為 Ben Eater 在中國的代言人了。
準備好這些器材之后,就跟著視頻一步一步搭建就好了,我當時是真的跟著視頻一步步搭建的,連人家的手法和姿勢都不敢不一樣,哈哈。
比如最先搭建的就是時鐘模塊,用的是 555 定時器。
比如由兩個 74LS173 和一個 74LS245 構成一個寄存器以及連接到總線上的過程。
然后一根線一根線插,感覺我當時的手都快變小了。
哦當然,如果你對電子知識一竅不通零基礎的話,比如我,還得先從如何認識色環電阻的阻值開始學起。
以及不同種類的電容長什么樣。
電解電容
獨石電容
等等。
總之吧,這個東西快不得,如果你能堅持下來,最后全都搞起來,會變成這個樣子(理想情況)
正面圖看的話,是這個樣子。
我總共耗時了兩個月時間,不過是因為我一般都是平時中午回家睡覺前,搞個半小時左右,所以每天也就搞半小時而已,周末多搞一點,也就出來了。
把這個弄出來之后,好多原理真的是清晰了不少,包括以前知道的知識,在自己動手真正實現的時候,又有完全不同的理解,尤其是整個控制器電路的設計與實現,真的是讓我大吃一驚。
如果你也想做一個 CPU,不論是幫助自己理解 CPU 原理,還是純粹想玩一玩,或者想讓自己入門電子 DIY 這塊尋找一個有趣的突破口,都可以直接登陸這個網站跟著 Eater 大佬的保姆級教學一點點做。
不過這個是純英文的,而且沒有字幕,不過好在也有國人幫忙配上了字幕,并且放到了 B 站上。
https://space.bilibili.com/3065282/#/channel/detail
哦對了,說個小秘密,買這些導線的時候,別買那種固定規格的長度的導線,那樣很難調整長度,最終你做出的 CPU 就看著亂亂的。
買那種直接一卷的線,然后用剪線鉗剪出不同的長度,這個過程看似麻煩,但后期整個線排布得漂漂亮亮的時候,能節省不少時間。
是的,不要幻想著一遍成,有次我有個導線插錯了一個洞洞,找了好幾個小時才找出問題…
最后,加油!歡迎大家入坑。