作成したCPUのスペック
from 東大CPU実験のレイトレを自作CPUの上で動かした話
CPUアーキテクチャ
32ビットRISC-V(RV32IFのサブセット)
RV32I(整数演算)
RV32F(単精度浮動小数点演算のみサポート)
クロック
25MHz
5ステージのマルチサイクル
Fetch → Decode → Execute → Memory → Writeback
パイプラインなし・割り込みなし
メモリ
ROM(ブロックRAM): 256KB
RAM(SDRAM): 32MB
周辺機器(メモリマップトIO)
UARTコントローラ
LEDコントローラ(8個のLED)
メモリバス
PicoRV32 Native Memory Interface を採用
https://github.com/YosysHQ/picorv32#picorv32-native-memory-interface
利用したモジュール
FPUコア
https://github.com/dawsonjon/fpu
UARTコア
https://github.com/freecores/osdvu
SDRAMコントローラ
https://github.com/machdyne/zucker/blob/main/rtl/sdram.v
実装した命令
整数命令(RV32I)
lw
sw
add
addi
sub
and
or
xor
slt
sltu
beq
bne
blt
bge
bltu
bgeu
jal
jalr
lui
auipc
ori
srl
sra
sll
浮動小数点命令(RV32F)
flw
fsw
fadd_s
fsub_s
fmul_s
fdiv_s
fcvt_s_w
fcvt_w_s
fsgnj_s
fsgnjn_s
feq_s
flt_s
fle_s
fmv_x_w
fmv_w_x