RISC-V是正當紅的指令集架構,
同時近年來有許多精巧且優秀的開源RISC-V simulator,
而筆者過去僅有使用或根據simulator現有框架進行修改的經驗,
未曾從無到有進行simulator的實作,也沒有過參與開源專案,
為此希望能透過這次鐵人賽,從目前常見的RISC-V simulator的介紹到透過C++實作。
最終目標為在實作出來的Simulator上並將Linux boot成功。
可能會使用到及介紹到的軟體:
Spike, Qemu, Gem5, BusyBox, SystemC, BuildRoot ....
CSR CSR全名為control system register,是軟體用來與系統溝通的暫存器,在整個RISC-V系統中有許許多多的CSR,每個CSR內各自的...
今天要來把RV64I才有的指令做完。 RV64IRV64I特有的指令大多是原先32bit的指令因為架構擴展到64bit,因此需要新增32bit的特別型態,例如說...
System Instruction System Instruction指的是跟系統息息相關的指令,例如前面有敘述過的CSR指令,又或者是今天要介紹的ecal...
BuildRoot BuildRoot是一個建立LinuxKernel的框架,整個BuildRoot是透過Kconfig和Makefile配置的,和編譯Linu...
今天要把前兩天的技術債補完,分別是System Instruction以及auipc/lui。 lui測試設定imm為1,這樣讀進來的值會是0x1000 TES...
RISC-V A-extension RISC-V的A-extension指的是atomic instruction extension,而atomic ins...
RISC-V M Extension 與昨天介紹的A Extension不同,M Extension很好理解,就是乘法和除法的指令。之前在介紹I-instruc...
今天的任務就是要把RISC-V Test跑起來,然後看有哪些錯誤。 RISC-V TEST Pass/Fail判斷 首先我們觀察RISC-V Test發現他最後...
Regression tool modify & log system 昨天演到RV64I執行時有遇到諸多bug,我們重新修改debug log及scr...
最後一天,如同昨天說的,今天至少會把IMA三個extension的test全部通過。 RV64M TEST首先我們先試著透過原先建立好的環境試著跑看看RV64M...