iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

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

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

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

開始!

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

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 System...

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 分享