1062 lines
46 KiB
Systemverilog
1062 lines
46 KiB
Systemverilog
// Generated by CIRCT firtool-1.139.0
|
|
module RenameStage(
|
|
input clock,
|
|
reset,
|
|
io_inValid_0,
|
|
io_inValid_1,
|
|
input [63:0] io_in_0_pc,
|
|
input [31:0] io_in_0_inst,
|
|
input [4:0] io_in_0_rs1,
|
|
io_in_0_rs2,
|
|
io_in_0_rd,
|
|
input [2:0] io_in_0_funct3,
|
|
input [63:0] io_in_0_immI,
|
|
io_in_0_immS,
|
|
io_in_0_immB,
|
|
io_in_0_immU,
|
|
io_in_0_immJ,
|
|
input [3:0] io_in_0_opClass,
|
|
input [4:0] io_in_0_aluFn,
|
|
input [2:0] io_in_0_memWidth,
|
|
input io_in_0_memSigned,
|
|
io_in_0_isLoad,
|
|
io_in_0_isStore,
|
|
io_in_0_isBranch,
|
|
io_in_0_isJal,
|
|
io_in_0_isJalr,
|
|
io_in_0_isLui,
|
|
io_in_0_isAuipc,
|
|
io_in_0_isOpImm,
|
|
io_in_0_isWord,
|
|
io_in_0_isSystem,
|
|
io_in_0_isFenceI,
|
|
io_in_0_isAmo,
|
|
input [4:0] io_in_0_amoOp,
|
|
input io_in_0_writesRd,
|
|
io_in_0_illegal,
|
|
input [63:0] io_in_1_pc,
|
|
input [31:0] io_in_1_inst,
|
|
input [4:0] io_in_1_rs1,
|
|
io_in_1_rs2,
|
|
io_in_1_rd,
|
|
input [2:0] io_in_1_funct3,
|
|
input [63:0] io_in_1_immI,
|
|
io_in_1_immS,
|
|
io_in_1_immB,
|
|
io_in_1_immU,
|
|
io_in_1_immJ,
|
|
input [3:0] io_in_1_opClass,
|
|
input [4:0] io_in_1_aluFn,
|
|
input [2:0] io_in_1_memWidth,
|
|
input io_in_1_memSigned,
|
|
io_in_1_isLoad,
|
|
io_in_1_isStore,
|
|
io_in_1_isBranch,
|
|
io_in_1_isJal,
|
|
io_in_1_isJalr,
|
|
io_in_1_isLui,
|
|
io_in_1_isAuipc,
|
|
io_in_1_isOpImm,
|
|
io_in_1_isWord,
|
|
io_in_1_isSystem,
|
|
io_in_1_isFenceI,
|
|
io_in_1_isAmo,
|
|
input [4:0] io_in_1_amoOp,
|
|
input io_in_1_writesRd,
|
|
io_in_1_illegal,
|
|
output io_outValid_0,
|
|
io_outValid_1,
|
|
output [63:0] io_out_0_decoded_pc,
|
|
output [31:0] io_out_0_decoded_inst,
|
|
output [4:0] io_out_0_decoded_rs1,
|
|
io_out_0_decoded_rs2,
|
|
output [2:0] io_out_0_decoded_funct3,
|
|
output [63:0] io_out_0_decoded_immI,
|
|
io_out_0_decoded_immS,
|
|
io_out_0_decoded_immB,
|
|
io_out_0_decoded_immU,
|
|
io_out_0_decoded_immJ,
|
|
output [4:0] io_out_0_decoded_aluFn,
|
|
output [2:0] io_out_0_decoded_memWidth,
|
|
output io_out_0_decoded_memSigned,
|
|
io_out_0_decoded_isLoad,
|
|
io_out_0_decoded_isStore,
|
|
io_out_0_decoded_isBranch,
|
|
io_out_0_decoded_isJal,
|
|
io_out_0_decoded_isJalr,
|
|
io_out_0_decoded_isLui,
|
|
io_out_0_decoded_isAuipc,
|
|
io_out_0_decoded_isOpImm,
|
|
io_out_0_decoded_isWord,
|
|
io_out_0_decoded_isSystem,
|
|
io_out_0_decoded_isFenceI,
|
|
io_out_0_decoded_isAmo,
|
|
output [4:0] io_out_0_decoded_amoOp,
|
|
output io_out_0_decoded_writesRd,
|
|
io_out_0_decoded_illegal,
|
|
output [5:0] io_out_0_prs1,
|
|
io_out_0_prs2,
|
|
output io_out_0_src1Ready,
|
|
io_out_0_src2Ready,
|
|
output [5:0] io_out_0_prd,
|
|
io_out_0_robIdx,
|
|
output [63:0] io_out_1_decoded_pc,
|
|
output [31:0] io_out_1_decoded_inst,
|
|
output [4:0] io_out_1_decoded_rs1,
|
|
io_out_1_decoded_rs2,
|
|
output [2:0] io_out_1_decoded_funct3,
|
|
output [63:0] io_out_1_decoded_immI,
|
|
io_out_1_decoded_immS,
|
|
io_out_1_decoded_immB,
|
|
io_out_1_decoded_immU,
|
|
io_out_1_decoded_immJ,
|
|
output [4:0] io_out_1_decoded_aluFn,
|
|
output [2:0] io_out_1_decoded_memWidth,
|
|
output io_out_1_decoded_memSigned,
|
|
io_out_1_decoded_isLoad,
|
|
io_out_1_decoded_isStore,
|
|
io_out_1_decoded_isBranch,
|
|
io_out_1_decoded_isJal,
|
|
io_out_1_decoded_isJalr,
|
|
io_out_1_decoded_isLui,
|
|
io_out_1_decoded_isAuipc,
|
|
io_out_1_decoded_isOpImm,
|
|
io_out_1_decoded_isWord,
|
|
io_out_1_decoded_isSystem,
|
|
io_out_1_decoded_isFenceI,
|
|
io_out_1_decoded_isAmo,
|
|
output [4:0] io_out_1_decoded_amoOp,
|
|
output io_out_1_decoded_writesRd,
|
|
io_out_1_decoded_illegal,
|
|
output [5:0] io_out_1_prs1,
|
|
io_out_1_prs2,
|
|
output io_out_1_src1Ready,
|
|
io_out_1_src2Ready,
|
|
output [5:0] io_out_1_prd,
|
|
io_out_1_robIdx,
|
|
output io_canAccept,
|
|
input io_wbValid_0,
|
|
io_wbValid_1,
|
|
input [5:0] io_wbPhys_0,
|
|
io_wbPhys_1,
|
|
input io_completeValid_0,
|
|
io_completeValid_1,
|
|
input [5:0] io_completeIdx_0,
|
|
io_completeIdx_1,
|
|
input io_completeException_0,
|
|
io_completeException_1,
|
|
input [63:0] io_completeCause_0,
|
|
io_completeCause_1,
|
|
io_completeBadAddr_0,
|
|
io_completeBadAddr_1,
|
|
input io_completeMispredict_0,
|
|
io_completeMispredict_1,
|
|
input [63:0] io_completeRedirectPc_0,
|
|
io_completeRedirectPc_1,
|
|
input io_completeCsrValid_0,
|
|
io_completeCsrValid_1,
|
|
input [11:0] io_completeCsrAddr_0,
|
|
io_completeCsrAddr_1,
|
|
input [2:0] io_completeCsrCmd_0,
|
|
io_completeCsrCmd_1,
|
|
input [63:0] io_completeCsrRs1_0,
|
|
io_completeCsrRs1_1,
|
|
input [4:0] io_completeCsrZimm_0,
|
|
io_completeCsrZimm_1,
|
|
input io_commitReady_0,
|
|
io_commitReady_1,
|
|
output io_commitValid_0,
|
|
io_commitValid_1,
|
|
output [5:0] io_commitEntry_0_robIdx,
|
|
output [4:0] io_commitEntry_0_archDest,
|
|
output io_commitEntry_0_writesDest,
|
|
output [3:0] io_commitEntry_0_opClass,
|
|
output [5:0] io_commitEntry_0_dest,
|
|
io_commitEntry_0_oldDest,
|
|
output io_commitEntry_0_exception,
|
|
output [63:0] io_commitEntry_0_exceptionCause,
|
|
io_commitEntry_0_badAddr,
|
|
output io_commitEntry_0_branchMispredict,
|
|
output [63:0] io_commitEntry_0_redirectPc,
|
|
output io_commitEntry_0_csrValid,
|
|
output [11:0] io_commitEntry_0_csrAddr,
|
|
output [2:0] io_commitEntry_0_csrCmd,
|
|
output [63:0] io_commitEntry_0_csrRs1,
|
|
output [4:0] io_commitEntry_0_csrZimm,
|
|
output io_commitEntry_0_fenceI,
|
|
output [5:0] io_commitEntry_1_robIdx,
|
|
output [4:0] io_commitEntry_1_archDest,
|
|
output io_commitEntry_1_writesDest,
|
|
output [3:0] io_commitEntry_1_opClass,
|
|
output [5:0] io_commitEntry_1_dest,
|
|
io_commitEntry_1_oldDest,
|
|
output io_commitEntry_1_exception,
|
|
output [63:0] io_commitEntry_1_exceptionCause,
|
|
io_commitEntry_1_badAddr,
|
|
output io_commitEntry_1_branchMispredict,
|
|
output [63:0] io_commitEntry_1_redirectPc,
|
|
output io_commitEntry_1_csrValid,
|
|
output [11:0] io_commitEntry_1_csrAddr,
|
|
output [2:0] io_commitEntry_1_csrCmd,
|
|
output [63:0] io_commitEntry_1_csrRs1,
|
|
output [4:0] io_commitEntry_1_csrZimm,
|
|
output io_commitEntry_1_fenceI,
|
|
input io_commitMapValid_0,
|
|
io_commitMapValid_1,
|
|
input [4:0] io_commitArch_0,
|
|
io_commitArch_1,
|
|
input [5:0] io_commitPhys_0,
|
|
io_commitPhys_1,
|
|
input io_commitFreeOld_0,
|
|
io_commitFreeOld_1,
|
|
input [5:0] io_commitOldPhys_0,
|
|
io_commitOldPhys_1,
|
|
input io_flush
|
|
);
|
|
|
|
wire e_1_valid;
|
|
wire e_valid;
|
|
wire _rob_io_canAllocate;
|
|
wire [5:0] _freeList_io_allocPhys_0;
|
|
wire [5:0] _freeList_io_allocPhys_1;
|
|
wire _freeList_io_canAllocate;
|
|
wire [5:0] _table_io_prs1_0;
|
|
wire [5:0] _table_io_prs1_1;
|
|
wire [5:0] _table_io_prs2_0;
|
|
wire [5:0] _table_io_prs2_1;
|
|
wire [5:0] _table_io_oldPrd_0;
|
|
wire [5:0] _table_io_oldPrd_1;
|
|
wire [5:0] _table_io_committedPhys_0;
|
|
wire [5:0] _table_io_committedPhys_1;
|
|
wire [5:0] _table_io_committedPhys_2;
|
|
wire [5:0] _table_io_committedPhys_3;
|
|
wire [5:0] _table_io_committedPhys_4;
|
|
wire [5:0] _table_io_committedPhys_5;
|
|
wire [5:0] _table_io_committedPhys_6;
|
|
wire [5:0] _table_io_committedPhys_7;
|
|
wire [5:0] _table_io_committedPhys_8;
|
|
wire [5:0] _table_io_committedPhys_9;
|
|
wire [5:0] _table_io_committedPhys_10;
|
|
wire [5:0] _table_io_committedPhys_11;
|
|
wire [5:0] _table_io_committedPhys_12;
|
|
wire [5:0] _table_io_committedPhys_13;
|
|
wire [5:0] _table_io_committedPhys_14;
|
|
wire [5:0] _table_io_committedPhys_15;
|
|
wire [5:0] _table_io_committedPhys_16;
|
|
wire [5:0] _table_io_committedPhys_17;
|
|
wire [5:0] _table_io_committedPhys_18;
|
|
wire [5:0] _table_io_committedPhys_19;
|
|
wire [5:0] _table_io_committedPhys_20;
|
|
wire [5:0] _table_io_committedPhys_21;
|
|
wire [5:0] _table_io_committedPhys_22;
|
|
wire [5:0] _table_io_committedPhys_23;
|
|
wire [5:0] _table_io_committedPhys_24;
|
|
wire [5:0] _table_io_committedPhys_25;
|
|
wire [5:0] _table_io_committedPhys_26;
|
|
wire [5:0] _table_io_committedPhys_27;
|
|
wire [5:0] _table_io_committedPhys_28;
|
|
wire [5:0] _table_io_committedPhys_29;
|
|
wire [5:0] _table_io_committedPhys_30;
|
|
wire [5:0] _table_io_committedPhys_31;
|
|
wire table_io_wen_0 = e_valid & io_in_0_writesRd;
|
|
wire table_io_wen_1 = e_1_valid & io_in_1_writesRd;
|
|
wire canRename = _freeList_io_canAllocate & _rob_io_canAllocate;
|
|
reg readyReg_0;
|
|
reg readyReg_1;
|
|
reg readyReg_2;
|
|
reg readyReg_3;
|
|
reg readyReg_4;
|
|
reg readyReg_5;
|
|
reg readyReg_6;
|
|
reg readyReg_7;
|
|
reg readyReg_8;
|
|
reg readyReg_9;
|
|
reg readyReg_10;
|
|
reg readyReg_11;
|
|
reg readyReg_12;
|
|
reg readyReg_13;
|
|
reg readyReg_14;
|
|
reg readyReg_15;
|
|
reg readyReg_16;
|
|
reg readyReg_17;
|
|
reg readyReg_18;
|
|
reg readyReg_19;
|
|
reg readyReg_20;
|
|
reg readyReg_21;
|
|
reg readyReg_22;
|
|
reg readyReg_23;
|
|
reg readyReg_24;
|
|
reg readyReg_25;
|
|
reg readyReg_26;
|
|
reg readyReg_27;
|
|
reg readyReg_28;
|
|
reg readyReg_29;
|
|
reg readyReg_30;
|
|
reg readyReg_31;
|
|
reg readyReg_32;
|
|
reg readyReg_33;
|
|
reg readyReg_34;
|
|
reg readyReg_35;
|
|
reg readyReg_36;
|
|
reg readyReg_37;
|
|
reg readyReg_38;
|
|
reg readyReg_39;
|
|
reg readyReg_40;
|
|
reg readyReg_41;
|
|
reg readyReg_42;
|
|
reg readyReg_43;
|
|
reg readyReg_44;
|
|
reg readyReg_45;
|
|
reg readyReg_46;
|
|
reg readyReg_47;
|
|
reg readyReg_48;
|
|
reg readyReg_49;
|
|
reg readyReg_50;
|
|
reg readyReg_51;
|
|
reg readyReg_52;
|
|
reg readyReg_53;
|
|
reg readyReg_54;
|
|
reg readyReg_55;
|
|
reg readyReg_56;
|
|
reg readyReg_57;
|
|
reg readyReg_58;
|
|
reg readyReg_59;
|
|
reg readyReg_60;
|
|
reg readyReg_61;
|
|
reg readyReg_62;
|
|
reg readyReg_63;
|
|
assign e_valid = io_inValid_0 & canRename;
|
|
assign e_1_valid = io_inValid_1 & canRename;
|
|
wire [5:0] e_dest = io_in_0_writesRd ? _freeList_io_allocPhys_0 : _table_io_oldPrd_0;
|
|
wire [5:0] e_1_dest = io_in_1_writesRd ? _freeList_io_allocPhys_1 : _table_io_oldPrd_1;
|
|
wire [63:0] _GEN =
|
|
{{readyReg_63},
|
|
{readyReg_62},
|
|
{readyReg_61},
|
|
{readyReg_60},
|
|
{readyReg_59},
|
|
{readyReg_58},
|
|
{readyReg_57},
|
|
{readyReg_56},
|
|
{readyReg_55},
|
|
{readyReg_54},
|
|
{readyReg_53},
|
|
{readyReg_52},
|
|
{readyReg_51},
|
|
{readyReg_50},
|
|
{readyReg_49},
|
|
{readyReg_48},
|
|
{readyReg_47},
|
|
{readyReg_46},
|
|
{readyReg_45},
|
|
{readyReg_44},
|
|
{readyReg_43},
|
|
{readyReg_42},
|
|
{readyReg_41},
|
|
{readyReg_40},
|
|
{readyReg_39},
|
|
{readyReg_38},
|
|
{readyReg_37},
|
|
{readyReg_36},
|
|
{readyReg_35},
|
|
{readyReg_34},
|
|
{readyReg_33},
|
|
{readyReg_32},
|
|
{readyReg_31},
|
|
{readyReg_30},
|
|
{readyReg_29},
|
|
{readyReg_28},
|
|
{readyReg_27},
|
|
{readyReg_26},
|
|
{readyReg_25},
|
|
{readyReg_24},
|
|
{readyReg_23},
|
|
{readyReg_22},
|
|
{readyReg_21},
|
|
{readyReg_20},
|
|
{readyReg_19},
|
|
{readyReg_18},
|
|
{readyReg_17},
|
|
{readyReg_16},
|
|
{readyReg_15},
|
|
{readyReg_14},
|
|
{readyReg_13},
|
|
{readyReg_12},
|
|
{readyReg_11},
|
|
{readyReg_10},
|
|
{readyReg_9},
|
|
{readyReg_8},
|
|
{readyReg_7},
|
|
{readyReg_6},
|
|
{readyReg_5},
|
|
{readyReg_4},
|
|
{readyReg_3},
|
|
{readyReg_2},
|
|
{readyReg_1},
|
|
{readyReg_0}};
|
|
always @(posedge clock) begin
|
|
if (reset) begin
|
|
readyReg_0 <= 1'h1;
|
|
readyReg_1 <= 1'h1;
|
|
readyReg_2 <= 1'h1;
|
|
readyReg_3 <= 1'h1;
|
|
readyReg_4 <= 1'h1;
|
|
readyReg_5 <= 1'h1;
|
|
readyReg_6 <= 1'h1;
|
|
readyReg_7 <= 1'h1;
|
|
readyReg_8 <= 1'h1;
|
|
readyReg_9 <= 1'h1;
|
|
readyReg_10 <= 1'h1;
|
|
readyReg_11 <= 1'h1;
|
|
readyReg_12 <= 1'h1;
|
|
readyReg_13 <= 1'h1;
|
|
readyReg_14 <= 1'h1;
|
|
readyReg_15 <= 1'h1;
|
|
readyReg_16 <= 1'h1;
|
|
readyReg_17 <= 1'h1;
|
|
readyReg_18 <= 1'h1;
|
|
readyReg_19 <= 1'h1;
|
|
readyReg_20 <= 1'h1;
|
|
readyReg_21 <= 1'h1;
|
|
readyReg_22 <= 1'h1;
|
|
readyReg_23 <= 1'h1;
|
|
readyReg_24 <= 1'h1;
|
|
readyReg_25 <= 1'h1;
|
|
readyReg_26 <= 1'h1;
|
|
readyReg_27 <= 1'h1;
|
|
readyReg_28 <= 1'h1;
|
|
readyReg_29 <= 1'h1;
|
|
readyReg_30 <= 1'h1;
|
|
readyReg_31 <= 1'h1;
|
|
readyReg_32 <= 1'h1;
|
|
readyReg_33 <= 1'h1;
|
|
readyReg_34 <= 1'h1;
|
|
readyReg_35 <= 1'h1;
|
|
readyReg_36 <= 1'h1;
|
|
readyReg_37 <= 1'h1;
|
|
readyReg_38 <= 1'h1;
|
|
readyReg_39 <= 1'h1;
|
|
readyReg_40 <= 1'h1;
|
|
readyReg_41 <= 1'h1;
|
|
readyReg_42 <= 1'h1;
|
|
readyReg_43 <= 1'h1;
|
|
readyReg_44 <= 1'h1;
|
|
readyReg_45 <= 1'h1;
|
|
readyReg_46 <= 1'h1;
|
|
readyReg_47 <= 1'h1;
|
|
readyReg_48 <= 1'h1;
|
|
readyReg_49 <= 1'h1;
|
|
readyReg_50 <= 1'h1;
|
|
readyReg_51 <= 1'h1;
|
|
readyReg_52 <= 1'h1;
|
|
readyReg_53 <= 1'h1;
|
|
readyReg_54 <= 1'h1;
|
|
readyReg_55 <= 1'h1;
|
|
readyReg_56 <= 1'h1;
|
|
readyReg_57 <= 1'h1;
|
|
readyReg_58 <= 1'h1;
|
|
readyReg_59 <= 1'h1;
|
|
readyReg_60 <= 1'h1;
|
|
readyReg_61 <= 1'h1;
|
|
readyReg_62 <= 1'h1;
|
|
readyReg_63 <= 1'h1;
|
|
end
|
|
else begin
|
|
readyReg_0 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h0)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h0
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h0)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h0 | readyReg_0));
|
|
readyReg_1 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h1)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h1
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h1)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h1 | readyReg_1));
|
|
readyReg_2 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h2)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h2
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h2)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h2 | readyReg_2));
|
|
readyReg_3 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h3)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h3
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h3)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h3 | readyReg_3));
|
|
readyReg_4 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h4)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h4
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h4)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h4 | readyReg_4));
|
|
readyReg_5 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h5)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h5
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h5)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h5 | readyReg_5));
|
|
readyReg_6 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h6)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h6
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h6)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h6 | readyReg_6));
|
|
readyReg_7 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h7)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h7
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h7)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h7 | readyReg_7));
|
|
readyReg_8 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h8)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h8
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h8)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h8 | readyReg_8));
|
|
readyReg_9 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h9)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h9
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h9)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h9 | readyReg_9));
|
|
readyReg_10 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'hA)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'hA
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'hA)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'hA | readyReg_10));
|
|
readyReg_11 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'hB)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'hB
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'hB)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'hB | readyReg_11));
|
|
readyReg_12 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'hC)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'hC
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'hC)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'hC | readyReg_12));
|
|
readyReg_13 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'hD)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'hD
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'hD)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'hD | readyReg_13));
|
|
readyReg_14 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'hE)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'hE
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'hE)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'hE | readyReg_14));
|
|
readyReg_15 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'hF)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'hF
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'hF)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'hF | readyReg_15));
|
|
readyReg_16 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h10)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h10
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h10)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h10 | readyReg_16));
|
|
readyReg_17 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h11)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h11
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h11)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h11 | readyReg_17));
|
|
readyReg_18 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h12)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h12
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h12)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h12 | readyReg_18));
|
|
readyReg_19 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h13)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h13
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h13)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h13 | readyReg_19));
|
|
readyReg_20 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h14)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h14
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h14)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h14 | readyReg_20));
|
|
readyReg_21 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h15)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h15
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h15)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h15 | readyReg_21));
|
|
readyReg_22 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h16)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h16
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h16)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h16 | readyReg_22));
|
|
readyReg_23 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h17)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h17
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h17)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h17 | readyReg_23));
|
|
readyReg_24 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h18)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h18
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h18)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h18 | readyReg_24));
|
|
readyReg_25 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h19)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h19
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h19)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h19 | readyReg_25));
|
|
readyReg_26 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h1A)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h1A
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h1A)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h1A | readyReg_26));
|
|
readyReg_27 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h1B)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h1B
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h1B)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h1B | readyReg_27));
|
|
readyReg_28 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h1C)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h1C
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h1C)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h1C | readyReg_28));
|
|
readyReg_29 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h1D)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h1D
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h1D)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h1D | readyReg_29));
|
|
readyReg_30 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h1E)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h1E
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h1E)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h1E | readyReg_30));
|
|
readyReg_31 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h1F)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h1F
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h1F)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h1F | readyReg_31));
|
|
readyReg_32 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h20)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h20
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h20)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h20 | readyReg_32));
|
|
readyReg_33 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h21)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h21
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h21)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h21 | readyReg_33));
|
|
readyReg_34 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h22)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h22
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h22)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h22 | readyReg_34));
|
|
readyReg_35 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h23)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h23
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h23)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h23 | readyReg_35));
|
|
readyReg_36 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h24)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h24
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h24)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h24 | readyReg_36));
|
|
readyReg_37 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h25)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h25
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h25)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h25 | readyReg_37));
|
|
readyReg_38 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h26)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h26
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h26)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h26 | readyReg_38));
|
|
readyReg_39 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h27)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h27
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h27)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h27 | readyReg_39));
|
|
readyReg_40 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h28)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h28
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h28)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h28 | readyReg_40));
|
|
readyReg_41 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h29)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h29
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h29)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h29 | readyReg_41));
|
|
readyReg_42 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h2A)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h2A
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h2A)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h2A | readyReg_42));
|
|
readyReg_43 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h2B)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h2B
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h2B)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h2B | readyReg_43));
|
|
readyReg_44 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h2C)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h2C
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h2C)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h2C | readyReg_44));
|
|
readyReg_45 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h2D)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h2D
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h2D)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h2D | readyReg_45));
|
|
readyReg_46 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h2E)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h2E
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h2E)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h2E | readyReg_46));
|
|
readyReg_47 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h2F)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h2F
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h2F)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h2F | readyReg_47));
|
|
readyReg_48 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h30)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h30
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h30)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h30 | readyReg_48));
|
|
readyReg_49 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h31)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h31
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h31)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h31 | readyReg_49));
|
|
readyReg_50 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h32)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h32
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h32)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h32 | readyReg_50));
|
|
readyReg_51 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h33)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h33
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h33)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h33 | readyReg_51));
|
|
readyReg_52 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h34)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h34
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h34)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h34 | readyReg_52));
|
|
readyReg_53 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h35)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h35
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h35)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h35 | readyReg_53));
|
|
readyReg_54 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h36)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h36
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h36)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h36 | readyReg_54));
|
|
readyReg_55 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h37)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h37
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h37)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h37 | readyReg_55));
|
|
readyReg_56 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h38)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h38
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h38)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h38 | readyReg_56));
|
|
readyReg_57 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h39)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h39
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h39)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h39 | readyReg_57));
|
|
readyReg_58 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h3A)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h3A
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h3A)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h3A | readyReg_58));
|
|
readyReg_59 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h3B)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h3B
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h3B)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h3B | readyReg_59));
|
|
readyReg_60 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h3C)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h3C
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h3C)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h3C | readyReg_60));
|
|
readyReg_61 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h3D)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h3D
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h3D)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h3D | readyReg_61));
|
|
readyReg_62 <=
|
|
io_flush | ~(table_io_wen_1 & _freeList_io_allocPhys_1 == 6'h3E)
|
|
& (io_wbValid_1 & io_wbPhys_1 == 6'h3E
|
|
| ~(table_io_wen_0 & _freeList_io_allocPhys_0 == 6'h3E)
|
|
& (io_wbValid_0 & io_wbPhys_0 == 6'h3E | readyReg_62));
|
|
readyReg_63 <=
|
|
io_flush | ~(table_io_wen_1 & (&_freeList_io_allocPhys_1))
|
|
& (io_wbValid_1 & (&io_wbPhys_1) | ~(table_io_wen_0 & (&_freeList_io_allocPhys_0))
|
|
& (io_wbValid_0 & (&io_wbPhys_0) | readyReg_63));
|
|
end
|
|
end // always @(posedge)
|
|
RenameTable table_0 (
|
|
.clock (clock),
|
|
.reset (reset),
|
|
.io_rs1_0 (io_in_0_rs1),
|
|
.io_rs1_1 (io_in_1_rs1),
|
|
.io_rs2_0 (io_in_0_rs2),
|
|
.io_rs2_1 (io_in_1_rs2),
|
|
.io_rd_0 (io_in_0_rd),
|
|
.io_rd_1 (io_in_1_rd),
|
|
.io_newPhys_0 (_freeList_io_allocPhys_0),
|
|
.io_newPhys_1 (_freeList_io_allocPhys_1),
|
|
.io_wen_0 (table_io_wen_0),
|
|
.io_wen_1 (table_io_wen_1),
|
|
.io_prs1_0 (_table_io_prs1_0),
|
|
.io_prs1_1 (_table_io_prs1_1),
|
|
.io_prs2_0 (_table_io_prs2_0),
|
|
.io_prs2_1 (_table_io_prs2_1),
|
|
.io_oldPrd_0 (_table_io_oldPrd_0),
|
|
.io_oldPrd_1 (_table_io_oldPrd_1),
|
|
.io_commitWen_0 (io_commitMapValid_0),
|
|
.io_commitWen_1 (io_commitMapValid_1),
|
|
.io_commitRd_0 (io_commitArch_0),
|
|
.io_commitRd_1 (io_commitArch_1),
|
|
.io_commitPhys_0 (io_commitPhys_0),
|
|
.io_commitPhys_1 (io_commitPhys_1),
|
|
.io_recover (io_flush),
|
|
.io_committedPhys_0 (_table_io_committedPhys_0),
|
|
.io_committedPhys_1 (_table_io_committedPhys_1),
|
|
.io_committedPhys_2 (_table_io_committedPhys_2),
|
|
.io_committedPhys_3 (_table_io_committedPhys_3),
|
|
.io_committedPhys_4 (_table_io_committedPhys_4),
|
|
.io_committedPhys_5 (_table_io_committedPhys_5),
|
|
.io_committedPhys_6 (_table_io_committedPhys_6),
|
|
.io_committedPhys_7 (_table_io_committedPhys_7),
|
|
.io_committedPhys_8 (_table_io_committedPhys_8),
|
|
.io_committedPhys_9 (_table_io_committedPhys_9),
|
|
.io_committedPhys_10 (_table_io_committedPhys_10),
|
|
.io_committedPhys_11 (_table_io_committedPhys_11),
|
|
.io_committedPhys_12 (_table_io_committedPhys_12),
|
|
.io_committedPhys_13 (_table_io_committedPhys_13),
|
|
.io_committedPhys_14 (_table_io_committedPhys_14),
|
|
.io_committedPhys_15 (_table_io_committedPhys_15),
|
|
.io_committedPhys_16 (_table_io_committedPhys_16),
|
|
.io_committedPhys_17 (_table_io_committedPhys_17),
|
|
.io_committedPhys_18 (_table_io_committedPhys_18),
|
|
.io_committedPhys_19 (_table_io_committedPhys_19),
|
|
.io_committedPhys_20 (_table_io_committedPhys_20),
|
|
.io_committedPhys_21 (_table_io_committedPhys_21),
|
|
.io_committedPhys_22 (_table_io_committedPhys_22),
|
|
.io_committedPhys_23 (_table_io_committedPhys_23),
|
|
.io_committedPhys_24 (_table_io_committedPhys_24),
|
|
.io_committedPhys_25 (_table_io_committedPhys_25),
|
|
.io_committedPhys_26 (_table_io_committedPhys_26),
|
|
.io_committedPhys_27 (_table_io_committedPhys_27),
|
|
.io_committedPhys_28 (_table_io_committedPhys_28),
|
|
.io_committedPhys_29 (_table_io_committedPhys_29),
|
|
.io_committedPhys_30 (_table_io_committedPhys_30),
|
|
.io_committedPhys_31 (_table_io_committedPhys_31)
|
|
);
|
|
FreeList freeList (
|
|
.clock (clock),
|
|
.reset (reset),
|
|
.io_allocReq_0 (io_inValid_0 & io_in_0_writesRd),
|
|
.io_allocReq_1 (io_inValid_1 & io_in_1_writesRd),
|
|
.io_allocPhys_0 (_freeList_io_allocPhys_0),
|
|
.io_allocPhys_1 (_freeList_io_allocPhys_1),
|
|
.io_canAllocate (_freeList_io_canAllocate),
|
|
.io_freeReq_0 (io_commitFreeOld_0),
|
|
.io_freeReq_1 (io_commitFreeOld_1),
|
|
.io_freePhys_0 (io_commitOldPhys_0),
|
|
.io_freePhys_1 (io_commitOldPhys_1),
|
|
.io_recover (io_flush),
|
|
.io_committedPhys_0 (_table_io_committedPhys_0),
|
|
.io_committedPhys_1 (_table_io_committedPhys_1),
|
|
.io_committedPhys_2 (_table_io_committedPhys_2),
|
|
.io_committedPhys_3 (_table_io_committedPhys_3),
|
|
.io_committedPhys_4 (_table_io_committedPhys_4),
|
|
.io_committedPhys_5 (_table_io_committedPhys_5),
|
|
.io_committedPhys_6 (_table_io_committedPhys_6),
|
|
.io_committedPhys_7 (_table_io_committedPhys_7),
|
|
.io_committedPhys_8 (_table_io_committedPhys_8),
|
|
.io_committedPhys_9 (_table_io_committedPhys_9),
|
|
.io_committedPhys_10 (_table_io_committedPhys_10),
|
|
.io_committedPhys_11 (_table_io_committedPhys_11),
|
|
.io_committedPhys_12 (_table_io_committedPhys_12),
|
|
.io_committedPhys_13 (_table_io_committedPhys_13),
|
|
.io_committedPhys_14 (_table_io_committedPhys_14),
|
|
.io_committedPhys_15 (_table_io_committedPhys_15),
|
|
.io_committedPhys_16 (_table_io_committedPhys_16),
|
|
.io_committedPhys_17 (_table_io_committedPhys_17),
|
|
.io_committedPhys_18 (_table_io_committedPhys_18),
|
|
.io_committedPhys_19 (_table_io_committedPhys_19),
|
|
.io_committedPhys_20 (_table_io_committedPhys_20),
|
|
.io_committedPhys_21 (_table_io_committedPhys_21),
|
|
.io_committedPhys_22 (_table_io_committedPhys_22),
|
|
.io_committedPhys_23 (_table_io_committedPhys_23),
|
|
.io_committedPhys_24 (_table_io_committedPhys_24),
|
|
.io_committedPhys_25 (_table_io_committedPhys_25),
|
|
.io_committedPhys_26 (_table_io_committedPhys_26),
|
|
.io_committedPhys_27 (_table_io_committedPhys_27),
|
|
.io_committedPhys_28 (_table_io_committedPhys_28),
|
|
.io_committedPhys_29 (_table_io_committedPhys_29),
|
|
.io_committedPhys_30 (_table_io_committedPhys_30),
|
|
.io_committedPhys_31 (_table_io_committedPhys_31)
|
|
);
|
|
ROB rob (
|
|
.clock (clock),
|
|
.reset (reset),
|
|
.io_allocateValid_0 (e_valid),
|
|
.io_allocateValid_1 (e_1_valid),
|
|
.io_allocateEntry_0_archDest (io_in_0_rd),
|
|
.io_allocateEntry_0_writesDest (io_in_0_writesRd),
|
|
.io_allocateEntry_0_opClass (io_in_0_opClass),
|
|
.io_allocateEntry_0_dest (e_dest),
|
|
.io_allocateEntry_0_oldDest (_table_io_oldPrd_0),
|
|
.io_allocateEntry_0_fenceI (io_in_0_isFenceI),
|
|
.io_allocateEntry_1_archDest (io_in_1_rd),
|
|
.io_allocateEntry_1_writesDest (io_in_1_writesRd),
|
|
.io_allocateEntry_1_opClass (io_in_1_opClass),
|
|
.io_allocateEntry_1_dest (e_1_dest),
|
|
.io_allocateEntry_1_oldDest (_table_io_oldPrd_1),
|
|
.io_allocateEntry_1_fenceI (io_in_1_isFenceI),
|
|
.io_allocateIdx_0 (io_out_0_robIdx),
|
|
.io_allocateIdx_1 (io_out_1_robIdx),
|
|
.io_canAllocate (_rob_io_canAllocate),
|
|
.io_completeValid_0 (io_completeValid_0),
|
|
.io_completeValid_1 (io_completeValid_1),
|
|
.io_completeIdx_0 (io_completeIdx_0),
|
|
.io_completeIdx_1 (io_completeIdx_1),
|
|
.io_completeException_0 (io_completeException_0),
|
|
.io_completeException_1 (io_completeException_1),
|
|
.io_completeCause_0 (io_completeCause_0),
|
|
.io_completeCause_1 (io_completeCause_1),
|
|
.io_completeBadAddr_0 (io_completeBadAddr_0),
|
|
.io_completeBadAddr_1 (io_completeBadAddr_1),
|
|
.io_completeMispredict_0 (io_completeMispredict_0),
|
|
.io_completeMispredict_1 (io_completeMispredict_1),
|
|
.io_completeRedirectPc_0 (io_completeRedirectPc_0),
|
|
.io_completeRedirectPc_1 (io_completeRedirectPc_1),
|
|
.io_completeCsrValid_0 (io_completeCsrValid_0),
|
|
.io_completeCsrValid_1 (io_completeCsrValid_1),
|
|
.io_completeCsrAddr_0 (io_completeCsrAddr_0),
|
|
.io_completeCsrAddr_1 (io_completeCsrAddr_1),
|
|
.io_completeCsrCmd_0 (io_completeCsrCmd_0),
|
|
.io_completeCsrCmd_1 (io_completeCsrCmd_1),
|
|
.io_completeCsrRs1_0 (io_completeCsrRs1_0),
|
|
.io_completeCsrRs1_1 (io_completeCsrRs1_1),
|
|
.io_completeCsrZimm_0 (io_completeCsrZimm_0),
|
|
.io_completeCsrZimm_1 (io_completeCsrZimm_1),
|
|
.io_commitValid_0 (io_commitValid_0),
|
|
.io_commitValid_1 (io_commitValid_1),
|
|
.io_commit_0_robIdx (io_commitEntry_0_robIdx),
|
|
.io_commit_0_archDest (io_commitEntry_0_archDest),
|
|
.io_commit_0_writesDest (io_commitEntry_0_writesDest),
|
|
.io_commit_0_opClass (io_commitEntry_0_opClass),
|
|
.io_commit_0_dest (io_commitEntry_0_dest),
|
|
.io_commit_0_oldDest (io_commitEntry_0_oldDest),
|
|
.io_commit_0_exception (io_commitEntry_0_exception),
|
|
.io_commit_0_exceptionCause (io_commitEntry_0_exceptionCause),
|
|
.io_commit_0_badAddr (io_commitEntry_0_badAddr),
|
|
.io_commit_0_branchMispredict (io_commitEntry_0_branchMispredict),
|
|
.io_commit_0_redirectPc (io_commitEntry_0_redirectPc),
|
|
.io_commit_0_csrValid (io_commitEntry_0_csrValid),
|
|
.io_commit_0_csrAddr (io_commitEntry_0_csrAddr),
|
|
.io_commit_0_csrCmd (io_commitEntry_0_csrCmd),
|
|
.io_commit_0_csrRs1 (io_commitEntry_0_csrRs1),
|
|
.io_commit_0_csrZimm (io_commitEntry_0_csrZimm),
|
|
.io_commit_0_fenceI (io_commitEntry_0_fenceI),
|
|
.io_commit_1_robIdx (io_commitEntry_1_robIdx),
|
|
.io_commit_1_archDest (io_commitEntry_1_archDest),
|
|
.io_commit_1_writesDest (io_commitEntry_1_writesDest),
|
|
.io_commit_1_opClass (io_commitEntry_1_opClass),
|
|
.io_commit_1_dest (io_commitEntry_1_dest),
|
|
.io_commit_1_oldDest (io_commitEntry_1_oldDest),
|
|
.io_commit_1_exception (io_commitEntry_1_exception),
|
|
.io_commit_1_exceptionCause (io_commitEntry_1_exceptionCause),
|
|
.io_commit_1_badAddr (io_commitEntry_1_badAddr),
|
|
.io_commit_1_branchMispredict (io_commitEntry_1_branchMispredict),
|
|
.io_commit_1_redirectPc (io_commitEntry_1_redirectPc),
|
|
.io_commit_1_csrValid (io_commitEntry_1_csrValid),
|
|
.io_commit_1_csrAddr (io_commitEntry_1_csrAddr),
|
|
.io_commit_1_csrCmd (io_commitEntry_1_csrCmd),
|
|
.io_commit_1_csrRs1 (io_commitEntry_1_csrRs1),
|
|
.io_commit_1_csrZimm (io_commitEntry_1_csrZimm),
|
|
.io_commit_1_fenceI (io_commitEntry_1_fenceI),
|
|
.io_commitReady_0 (io_commitReady_0),
|
|
.io_commitReady_1 (io_commitReady_1),
|
|
.io_flush (io_flush)
|
|
);
|
|
assign io_outValid_0 = e_valid;
|
|
assign io_outValid_1 = e_1_valid;
|
|
assign io_out_0_decoded_pc = io_in_0_pc;
|
|
assign io_out_0_decoded_inst = io_in_0_inst;
|
|
assign io_out_0_decoded_rs1 = io_in_0_rs1;
|
|
assign io_out_0_decoded_rs2 = io_in_0_rs2;
|
|
assign io_out_0_decoded_funct3 = io_in_0_funct3;
|
|
assign io_out_0_decoded_immI = io_in_0_immI;
|
|
assign io_out_0_decoded_immS = io_in_0_immS;
|
|
assign io_out_0_decoded_immB = io_in_0_immB;
|
|
assign io_out_0_decoded_immU = io_in_0_immU;
|
|
assign io_out_0_decoded_immJ = io_in_0_immJ;
|
|
assign io_out_0_decoded_aluFn = io_in_0_aluFn;
|
|
assign io_out_0_decoded_memWidth = io_in_0_memWidth;
|
|
assign io_out_0_decoded_memSigned = io_in_0_memSigned;
|
|
assign io_out_0_decoded_isLoad = io_in_0_isLoad;
|
|
assign io_out_0_decoded_isStore = io_in_0_isStore;
|
|
assign io_out_0_decoded_isBranch = io_in_0_isBranch;
|
|
assign io_out_0_decoded_isJal = io_in_0_isJal;
|
|
assign io_out_0_decoded_isJalr = io_in_0_isJalr;
|
|
assign io_out_0_decoded_isLui = io_in_0_isLui;
|
|
assign io_out_0_decoded_isAuipc = io_in_0_isAuipc;
|
|
assign io_out_0_decoded_isOpImm = io_in_0_isOpImm;
|
|
assign io_out_0_decoded_isWord = io_in_0_isWord;
|
|
assign io_out_0_decoded_isSystem = io_in_0_isSystem;
|
|
assign io_out_0_decoded_isFenceI = io_in_0_isFenceI;
|
|
assign io_out_0_decoded_isAmo = io_in_0_isAmo;
|
|
assign io_out_0_decoded_amoOp = io_in_0_amoOp;
|
|
assign io_out_0_decoded_writesRd = io_in_0_writesRd;
|
|
assign io_out_0_decoded_illegal = io_in_0_illegal;
|
|
assign io_out_0_prs1 = _table_io_prs1_0;
|
|
assign io_out_0_prs2 = _table_io_prs2_0;
|
|
assign io_out_0_src1Ready =
|
|
|{io_in_0_rs1 == 5'h0,
|
|
_GEN[_table_io_prs1_0],
|
|
io_wbValid_1 & io_wbPhys_1 == _table_io_prs1_0,
|
|
io_wbValid_0 & io_wbPhys_0 == _table_io_prs1_0};
|
|
assign io_out_0_src2Ready =
|
|
|{io_in_0_rs2 == 5'h0,
|
|
_GEN[_table_io_prs2_0],
|
|
io_wbValid_1 & io_wbPhys_1 == _table_io_prs2_0,
|
|
io_wbValid_0 & io_wbPhys_0 == _table_io_prs2_0};
|
|
assign io_out_0_prd = e_dest;
|
|
assign io_out_1_decoded_pc = io_in_1_pc;
|
|
assign io_out_1_decoded_inst = io_in_1_inst;
|
|
assign io_out_1_decoded_rs1 = io_in_1_rs1;
|
|
assign io_out_1_decoded_rs2 = io_in_1_rs2;
|
|
assign io_out_1_decoded_funct3 = io_in_1_funct3;
|
|
assign io_out_1_decoded_immI = io_in_1_immI;
|
|
assign io_out_1_decoded_immS = io_in_1_immS;
|
|
assign io_out_1_decoded_immB = io_in_1_immB;
|
|
assign io_out_1_decoded_immU = io_in_1_immU;
|
|
assign io_out_1_decoded_immJ = io_in_1_immJ;
|
|
assign io_out_1_decoded_aluFn = io_in_1_aluFn;
|
|
assign io_out_1_decoded_memWidth = io_in_1_memWidth;
|
|
assign io_out_1_decoded_memSigned = io_in_1_memSigned;
|
|
assign io_out_1_decoded_isLoad = io_in_1_isLoad;
|
|
assign io_out_1_decoded_isStore = io_in_1_isStore;
|
|
assign io_out_1_decoded_isBranch = io_in_1_isBranch;
|
|
assign io_out_1_decoded_isJal = io_in_1_isJal;
|
|
assign io_out_1_decoded_isJalr = io_in_1_isJalr;
|
|
assign io_out_1_decoded_isLui = io_in_1_isLui;
|
|
assign io_out_1_decoded_isAuipc = io_in_1_isAuipc;
|
|
assign io_out_1_decoded_isOpImm = io_in_1_isOpImm;
|
|
assign io_out_1_decoded_isWord = io_in_1_isWord;
|
|
assign io_out_1_decoded_isSystem = io_in_1_isSystem;
|
|
assign io_out_1_decoded_isFenceI = io_in_1_isFenceI;
|
|
assign io_out_1_decoded_isAmo = io_in_1_isAmo;
|
|
assign io_out_1_decoded_amoOp = io_in_1_amoOp;
|
|
assign io_out_1_decoded_writesRd = io_in_1_writesRd;
|
|
assign io_out_1_decoded_illegal = io_in_1_illegal;
|
|
assign io_out_1_prs1 = _table_io_prs1_1;
|
|
assign io_out_1_prs2 = _table_io_prs2_1;
|
|
assign io_out_1_src1Ready =
|
|
io_in_1_rs1 == 5'h0 | ~(table_io_wen_0 & (|io_in_0_rd) & io_in_0_rd == io_in_1_rs1)
|
|
& (|{_GEN[_table_io_prs1_1],
|
|
io_wbValid_1 & io_wbPhys_1 == _table_io_prs1_1,
|
|
io_wbValid_0 & io_wbPhys_0 == _table_io_prs1_1});
|
|
assign io_out_1_src2Ready =
|
|
io_in_1_rs2 == 5'h0 | ~(table_io_wen_0 & (|io_in_0_rd) & io_in_0_rd == io_in_1_rs2)
|
|
& (|{_GEN[_table_io_prs2_1],
|
|
io_wbValid_1 & io_wbPhys_1 == _table_io_prs2_1,
|
|
io_wbValid_0 & io_wbPhys_0 == _table_io_prs2_1});
|
|
assign io_out_1_prd = e_1_dest;
|
|
assign io_canAccept = {1'h0, io_inValid_0} + {1'h0, io_inValid_1} == 2'h0 | canRename;
|
|
endmodule
|
|
|