RISCV-LEARN

Decoder

1 思路

前面搭建好了框架,下面就开始实现第一个组件,即指令解码器,输入为32bit的01数值,输出为inst_t结构体的指令。

uint32_t raw_inst

->

typedef struct
{
    uint8_t rd;
    uint8_t rs1;
    uint8_t rs2;
    int32_t imm;
    bool rvc;
    enum inst_type_t type;
    bool goon;
    uint16_t csr;
    uint8_t rs3;
} inst_t;

2 实现

目前的decoder实现了RV64IMFDC,实现过程很枯燥、很头疼,就是翻着手册去写代码,值得说的有几个点: