前面搭建好了框架,下面就开始实现第一个组件,即指令解码器,输入为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;
目前的decoder实现了RV64IMFDC,实现过程很枯燥、很头疼,就是翻着手册去写代码,值得说的有几个点: