強(qiáng)!自制CPU,這個小伙辦到了
RISC-V CPU,并構(gòu)建了與其他自制計算機(jī)不同的個人計算機(jī)「菠蘿一號(Pineapple ONE)」。從設(shè)計、調(diào)試和安裝 CPU 和所有硬件,Filip 整整花了兩年時間。
Filip 還受邀在東京舉辦的 RISC-V Days Tokyo 2021 Spring 上做了演示,他也成為了該會議自 2017 年舉辦以來最年輕的演示者。

整體來看,「菠蘿一號」是由 8 塊正方形打印電路板垂直堆疊組成,每塊邊側(cè)高度約為 10 厘米,外加一個 VGA 顯示接口卡。
一共使用了 230 多個集成電路,大多數(shù)是 74HCT 系列邏輯芯片。示意圖如下:

32 位 RISC-V CPU 的規(guī)格如下:
最大時鐘速度:500kHz 程序內(nèi)存:512kB 內(nèi)存 512kB 閃存 512kB VGA 輸出:200×150px(黑白) 2 個 8 位輸入端口 2 個 8 位輸出端口
目前,「菠蘿一號」計算機(jī)支持的命令包括:HELLO、HI、PEEK <ADDRESS>、POKE <ADDRESS> <DATA>、SYSTEM INFORMATION、CLEAR 等。


此前,我在 Youtube 上發(fā)現(xiàn)了電子愛好者 Ben Eater 自制 CPU(構(gòu)建著名的 8 位計算機(jī)和經(jīng)典的 6502 微處理器)的相關(guān)教程,所以非常著迷,也就有了自制 CPU 的想法。
然而,我覺得對于 CPU 基礎(chǔ)知識了解的還不夠,因此又觀看了 Google Robotics 軟件工程師 Robert Baruch 的教程視頻,他只使用了基本邏輯元件構(gòu)建了 32 位 RISC-V CPU。
之后,我便開始在一個名為「Logisim-Evolution」的項(xiàng)目中制造自己的 RISC-V CPU。
我給自己設(shè)定的目標(biāo)是不使用任何微控制器或 FPGA,只使用基本的分立邏輯元件。
編譯器支持的最基礎(chǔ) RISC-V CPU 必須包含擴(kuò)展「整數(shù)(I)」且至少為 32 位。
此外,我還需要安裝一個 VGA(視頻圖形陣列)輸出卡。
我花了整整 6 個月的時間在 Logisim 項(xiàng)目上,終于得到一個可運(yùn)行的程序模擬。
下一步繪制所有模塊的原理圖、從 JLCPCB 網(wǎng)站上購買所有的 PCB(印制電路板)并重新設(shè)計。
由于這是我首次購買 PCB,擔(dān)心搞砸一切,于是決定在設(shè)計過程中分模塊處理,一次選購幾個,以免自己應(yīng)接不暇。
Logisim-Evolution 項(xiàng)目中的模擬原理圖如下:

經(jīng)過了兩輪設(shè)計,最后只剩下幾個模塊需要處理,其中一個是直接生成器(immediate generator)。
當(dāng)我絞盡腦汁想將它從模擬轉(zhuǎn)化為合適的原理圖時,發(fā)現(xiàn)自己犯了一個致命錯誤:完全不清楚模擬是如何運(yùn)行的。
幸運(yùn)的是,修復(fù)起來也沒有那么困難,于是對已經(jīng)制作完成的 PCB 做了改進(jìn)。
接下來,我將開源電子原型平臺 Arduino 連接到每個 PCB 的輸入端、同時監(jiān)控輸出端并與預(yù)測端(prediction)做對比,從而對這些 PCB 進(jìn)行測試。設(shè)置好之后,一切就可以自動運(yùn)行了。
每次測試都至少持續(xù)數(shù)個小時。
當(dāng)我準(zhǔn)備好將所有 PCB 整合到一塊時,模塊也已經(jīng)間隔地安裝在了木頭上,并使用 3D 打印墊片(spacer)來固定。接著上傳了一個測試程序并開始測試。
原型機(jī)示意圖如下:









大功告成!

推薦閱讀
? 硬核圖解,再填猛將!? Python實(shí)現(xiàn)的導(dǎo)彈跟蹤算法,燃!? 看書vs視頻,我的一點(diǎn)小建議,共勉!
