iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

猴子都寫得出來的 RISC-V CPU Emulator 系列

有一隻猴子拿到了一本 RISC-V 指令集,
於是用 systemC 做出了一個具體而微的 CPU 模擬器。
如果時間允許的話就再加點 ONNC 吧。

參賽天數 2 天 | 共 31 篇文章 | 10 人訂閱 訂閱系列文 RSS系列文
DAY 1

開始!

參賽目的 工作中實作 Client/Server 的過程中經常會遇到需要根據 URI 分派各種指令的情境。於是想起可能 Jserv 前輩分享過的 compute...

2021-09-15 ‧ 由 hsufit 分享
DAY 2

SystemC: 哈囉,暖個身吧

環境建立 先從這裡下載 SystemC 2.3.3 到目標資料夾下(或者從這裡下載其他版本)記得準備好 compiler(這邊使用gcc) 和 make,並在同...

2021-09-16 ‧ 由 hsufit 分享
DAY 2

SystemC: 開始囉,再等等!

CPU 是以 clock cycle 為單位,每一小段時間做一點事等等!我們一開始就沒提到過時間啊! 說的沒錯,就是那個開始和等等! start SystemC...

2021-09-18 ‧ 由 hsufit 分享
DAY 2

SystemC: 月球轉運站

創世神創造了世界,還覺得不夠,又做了一顆月球。過了兩天覺得地球不夠圓,決定把存在月球的 pi拿回來。於是再打個響指! 這時候就輪到猴子來操心了。有了第一個基本模...

2021-09-18 ‧ 由 hsufit 分享
DAY 2

RISC-V: 介紹

系列文章主要是為了練習規律產出,實驗性質比較重一點,內容會根據目前的反饋做出一點改變,歡迎感興趣的夥伴留言與交流。 簡介 RISC-V 是一個由柏克萊大學團隊主...

2021-09-19 ‧ 由 hsufit 分享
DAY 2

RISC-V: 媽,我把髒髒的扣變成 CPU 的形狀了!

有看月球轉運站的夥伴應該有發現,隨著開發的進展,程式碼已經變得有點不好看了。今天就來對這段程式碼進行 Refactor,讓接下來的 CPU 開發能夠更輕鬆一點...

2021-09-20 ‧ 由 hsufit 分享
DAY 2

RISC-V: 在指令之前的 Register File

昨天已經把程式碼稍微整理了一下,分出兩大部分:處理器和記憶體,以及加上 Formatter 讓 Coding Style 能夠更一致。但在開始實作指令集之前,還...

2021-09-21 ‧ 由 hsufit 分享
DAY 2

RISC-V: 記憶體提前亮相

原本記憶體部分打算在實作 Load/Store 的前一篇寫。但為了閱讀方便,調整順序讓接下來指令集的實作變成連續的章節。 P.S. 本來標題是 hart 之間的...

2021-09-22 ‧ 由 hsufit 分享
DAY 2

RISC-V: 指令解碼器

這次只有針對 RV31I 指令做解碼,原本希望能讓這次加入的 INSTRUCTION_DECODER_INTERFACE 更有擴充性,可以更方便的支援其他指令集...

2021-09-23 ‧ 由 hsufit 分享
DAY 2

RISC-V: 作為第一道指令的聰明選擇

第一道指令先從 Immediat 系列開始吧指令系列會依照時間安排增減速度,一方面是因為上一篇留下的技術債要想辦法 Refactor,另一方面是要留時間提前準備...

2021-09-24 ‧ 由 hsufit 分享