iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

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

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

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

RISC-V: I-type 位元運算指令

看到標題一定都猜到了,相信大家對這幾道指令都不陌生,這次實作的就是 ANDI、ORI、XORI,對應到程式語言中,分別是 &、|、^ 的位元運算。 為了...

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

RISC-V: I-type 小於指令

本來因為 RISC-V 指令規格書寫明 imm 全部都是 Sign Extended,決定全部都用 imm 表示,寫到一半發現這次的指令單純寫 imm 會不好理...

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

RISC-V: I-type 移位指令

今天又發現新鮮的 Bug 拉!我養蟲,蟲養我,今天的我拯救昨天的我。 幸好 Code Base 還小,不然每天猴肉測試實在不是辦法,小猴子都快 Debug De...

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

RISC-V: U-type Load Immediate指令

每日一 Bug,其實作天就有發現 get_imm() 運算結果怪怪的,如果會 Sign-Extension,怎麼 get_imm(24, 20) 結果竟然是 3...

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

RISC-V: Memory Load指令

這次要實作的指令屬於 Explict Memory Access,也因為 Read 已經做出來了,這次也會順便把 Implict Memory Access 實...

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

RISC-V: Memory Store 指令

昨天已經把 Memory Write 的功能做完了,今天稍微輕鬆一點,就來完成 Memory Store 指令吧。 剛剛又發現 LH, LHU Test Bin...

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

Computer Architecture: Memory Hierarchy

開始之前 既然 Load/Store 都寫完了,就來講講 Memory 吧! 相信看到這邊的讀者在學校都有學過或者接觸過計算機相關知識,課堂描述的角度不一定適合...

2021-10-01 ‧ 由 hsufit 分享
DAY 2

RISC-V: Jump 指令

JUMP!沒有其他選擇,執行到這就一定得跳!這次有兩種不同格式的指令,分別是 J-type 的 JAL,以及 I-type 的 JALR。 另外要注意的是,如果...

2021-10-02 ‧ 由 hsufit 分享
DAY 2

RISC-V: Branch 指令

親愛的,幫忙去超市買 1 顆蘋果回來,如果他們有雞蛋的話,買 6 顆。Simple logic problem that engineers should kn...

2021-10-03 ‧ 由 hsufit 分享
DAY 2

RISC-V: Memory Fence 指令

CPU 運作過程中很容易遇到需要等待的情況,例如 Cache Miss、Data Dependency等等。 為了隱藏等待造成的延遲,現代 CPU 可能會亂序執...

2021-10-04 ‧ 由 hsufit 分享