第 14 章:保留站设计
学习目标
- 设计保留站结构
- 实现操作数捕获
- 管理执行单元
14.1 保留站结构
typedef struct {
logic busy;
logic [5:0] op;
logic [31:0] vj, vk; // 操作数值
logic [3:0] qj, qk; // 操作数来源
logic [3:0] dest; // 目标寄存器
} reservation_station_t;
reservation_station_t rs_alu [3:0];
reservation_station_t rs_mul [1:0];
14.2 发射逻辑
if (!rs_full && decode_valid) begin
rs[i].op <= opcode;
rs[i].vj <= reg_ready[rs1] ? reg_data[rs1] : 0;
rs[i].qj <= reg_ready[rs1] ? 0 : reg_tag[rs1];
end
思考:如何判断操作数是否就绪?