在網路上到處亂逛的時候,找到了一個很酷的專案! 那就是接下來想要學習的 RISC-V_SOC 專案
作者 Yu-Tong Shen 在畢業到工作間的空檔,直接
- 自己依照 RISC-V 的規格設計 CPU
- 不只是 RISC-V 的 CPU,甚至連 PLIC, CLINT 也自己做!
- 自己打造了整個 SoC
- 自己設計了客製化的硬體 ( e.g. 客製化的 uart )
- 自己撰寫 driver 來驅動客製化的硬體
- 在自己親手打造的 SoC 上,boot 起來 linux kernel !
實在太強大,太帥了!
當我畢業的時候,還在翻計算機組織的課本,還在從零開始啃恐龍書。
人家已經親手打造了一整個 SoC,並且還自己撰寫系統軟體,可謂是軟硬通吃!
接下來,希望可以跟著這個專案,去學習相關的計算機組織的知識,希望也可以學習到一點點系統軟體的知識。
這著專案另外很有趣的地方是,有幾位厲害的前輩們已經復現過這個成果,並基於這個 SoC 實作屬於自己的專題,最後寫了很多很完整的筆記。這邊就跟著大神們的步伐,來學習這個專案!
學習規劃,筆記整理
- 使用 pre-built images 復現成果
- 連接周邊裝置,並載入 pre-built bitstream
- 測試 uart-usb
- 測試 SPI-microsd
- 使用 pre-built images 開啟 linux kernel
- 學習自己產生 images 並復現成果
- [rv-soc] 學習使用 vivado 產生 bitstream
- [rv-soc] 學習自己編譯 linux kernel
- 閱讀程式碼,學習相關知識
- CPU pipeline
- branch predictor
- MMU 與 TLB
- Cache
- BUS
- 其他想有空的話,想嘗試的課題
- 自己編譯 rom.bin,並嘗試修改程式碼
- 使用 opensbi 取代 bbl
- 嘗試跑 benchmark 並取得 CPU 的效能評分
- 嘗試將這個專案的 CPU,用其他專案的 CPU 取代,並測試效能評分
- 嘗試將 CPU 改成其他 OoO 的 CPU,並測試效能評分
- 在這個平台上運行 xv6 作業系統
參考連結