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