学习目标

  • 设计保留站结构
  • 实现操作数捕获
  • 管理执行单元

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

思考:如何判断操作数是否就绪?

下一步

第 15 章:ROB 重排序缓冲

更新时间: