【RISC-V设计-10】- RISC-V处理器设计K0A之IDU
1.简介
指令译码单元(Instruction Decoder Unit,简称IDU)是CPU中的一个关键组件,其主要作用是将从内存中获取的指令进行解读和翻译,使其能够被CPU的其它组件理解和执行。指令译码单元承接总线管理单元(BMU)发送过来的指令和数据以及核内中断控制器(CIC)发过来的中断请求,然后经过转换后发送给算术运算单元(ALU)、通用寄存器组(GPR)、控制与状态寄存器(CSR)以及和BMU、CIC的交互。,指令译码单元在 CPU 的整体运行中起着承上启下、转换协调的重要作用,确保了 CPU 各组件之间的高效协同工作。
2.顶层设计
指令译码单元与其他所有模块相互交流协作,不同模块之间直接或间接地通过指令译码单元实现耦合。
3.端口说明
序号 | 端口 | 位宽 | 方向 | 说明 |
---|---|---|---|---|
1 | bmu2idu_valid | 1 | input | 指令有效指示 |
2 | bmu2idu_instr | 32 | input | 需要执行的指令 |
3 | bmu2idu_pc_cur | 18 | input | 当前指令的PC |
4 | bmu2idu_pc_nxt | 18 | input | 下一条指令的PC |
5 | idu2bmu_pc_set | 1 | output | 程序计数器设置 |
6 | idu2bmu_pc_new | 18 | output | 新的程序计数器 |
7 | bmu2idu_pc_ack | 1 | input | 程序计数器应答 |
8 | idu2bmu_ls_req | 1 | output | 加载与存储请求 |
9 | idu2bmu_ls_cmd | 1 | output | 加载与存储命令,1写0读 |
10 | idu2bmu_ls_size | 2 | output | 加载与存储写数据字节数 |
11 | idu2bmu_ls_addr | 20 | output | 加载与存储的地址 |
12 | idu2bmu_ls_wdata | 32 | output | 加载与存储的写数据 |
13 | bmu2idu_ls_rdata | 32 | input | 加载与存储的读数据 |
14 | idu2gpr_we | 1 | output | 通用寄存器组写使能,高有效 |
15 | idu2gpr_waddr | 4 | output | 通用寄存器组写地址 |
16 | idu2gpr_wdata | 32 | output | 通用寄存 |