enabling delayed tracing
This commit is contained in:
@@ -7,12 +7,12 @@ task print_ex_type (
|
||||
input [`EX_BITS-1:0] ex_type
|
||||
);
|
||||
case (ex_type)
|
||||
`EX_ALU: $write("ALU");
|
||||
`EX_LSU: $write("LSU");
|
||||
`EX_CSR: $write("CSR");
|
||||
`EX_FPU: $write("FPU");
|
||||
`EX_GPU: $write("GPU");
|
||||
default: $write("NOP");
|
||||
`EX_ALU: dpi_trace("ALU");
|
||||
`EX_LSU: dpi_trace("LSU");
|
||||
`EX_CSR: dpi_trace("CSR");
|
||||
`EX_FPU: dpi_trace("FPU");
|
||||
`EX_GPU: dpi_trace("GPU");
|
||||
default: dpi_trace("NOP");
|
||||
endcase
|
||||
endtask
|
||||
|
||||
@@ -25,113 +25,113 @@ task print_ex_op (
|
||||
`EX_ALU: begin
|
||||
if (`ALU_IS_BR(op_mod)) begin
|
||||
case (`BR_BITS'(op_type))
|
||||
`BR_EQ: $write("BEQ");
|
||||
`BR_NE: $write("BNE");
|
||||
`BR_LT: $write("BLT");
|
||||
`BR_GE: $write("BGE");
|
||||
`BR_LTU: $write("BLTU");
|
||||
`BR_GEU: $write("BGEU");
|
||||
`BR_JAL: $write("JAL");
|
||||
`BR_JALR: $write("JALR");
|
||||
`BR_ECALL: $write("ECALL");
|
||||
`BR_EBREAK:$write("EBREAK");
|
||||
`BR_MRET: $write("MRET");
|
||||
`BR_SRET: $write("SRET");
|
||||
`BR_DRET: $write("DRET");
|
||||
default: $write("?");
|
||||
`BR_EQ: dpi_trace("BEQ");
|
||||
`BR_NE: dpi_trace("BNE");
|
||||
`BR_LT: dpi_trace("BLT");
|
||||
`BR_GE: dpi_trace("BGE");
|
||||
`BR_LTU: dpi_trace("BLTU");
|
||||
`BR_GEU: dpi_trace("BGEU");
|
||||
`BR_JAL: dpi_trace("JAL");
|
||||
`BR_JALR: dpi_trace("JALR");
|
||||
`BR_ECALL: dpi_trace("ECALL");
|
||||
`BR_EBREAK:dpi_trace("EBREAK");
|
||||
`BR_MRET: dpi_trace("MRET");
|
||||
`BR_SRET: dpi_trace("SRET");
|
||||
`BR_DRET: dpi_trace("DRET");
|
||||
default: dpi_trace("?");
|
||||
endcase
|
||||
end else if (`ALU_IS_MUL(op_mod)) begin
|
||||
case (`MUL_BITS'(op_type))
|
||||
`MUL_MUL: $write("MUL");
|
||||
`MUL_MULH: $write("MULH");
|
||||
`MUL_MULHSU:$write("MULHSU");
|
||||
`MUL_MULHU: $write("MULHU");
|
||||
`MUL_DIV: $write("DIV");
|
||||
`MUL_DIVU: $write("DIVU");
|
||||
`MUL_REM: $write("REM");
|
||||
`MUL_REMU: $write("REMU");
|
||||
default: $write("?");
|
||||
`MUL_MUL: dpi_trace("MUL");
|
||||
`MUL_MULH: dpi_trace("MULH");
|
||||
`MUL_MULHSU:dpi_trace("MULHSU");
|
||||
`MUL_MULHU: dpi_trace("MULHU");
|
||||
`MUL_DIV: dpi_trace("DIV");
|
||||
`MUL_DIVU: dpi_trace("DIVU");
|
||||
`MUL_REM: dpi_trace("REM");
|
||||
`MUL_REMU: dpi_trace("REMU");
|
||||
default: dpi_trace("?");
|
||||
endcase
|
||||
end else begin
|
||||
case (`ALU_BITS'(op_type))
|
||||
`ALU_ADD: $write("ADD");
|
||||
`ALU_SUB: $write("SUB");
|
||||
`ALU_SLL: $write("SLL");
|
||||
`ALU_SRL: $write("SRL");
|
||||
`ALU_SRA: $write("SRA");
|
||||
`ALU_SLT: $write("SLT");
|
||||
`ALU_SLTU: $write("SLTU");
|
||||
`ALU_XOR: $write("XOR");
|
||||
`ALU_OR: $write("OR");
|
||||
`ALU_AND: $write("AND");
|
||||
`ALU_LUI: $write("LUI");
|
||||
`ALU_AUIPC: $write("AUIPC");
|
||||
default: $write("?");
|
||||
`ALU_ADD: dpi_trace("ADD");
|
||||
`ALU_SUB: dpi_trace("SUB");
|
||||
`ALU_SLL: dpi_trace("SLL");
|
||||
`ALU_SRL: dpi_trace("SRL");
|
||||
`ALU_SRA: dpi_trace("SRA");
|
||||
`ALU_SLT: dpi_trace("SLT");
|
||||
`ALU_SLTU: dpi_trace("SLTU");
|
||||
`ALU_XOR: dpi_trace("XOR");
|
||||
`ALU_OR: dpi_trace("OR");
|
||||
`ALU_AND: dpi_trace("AND");
|
||||
`ALU_LUI: dpi_trace("LUI");
|
||||
`ALU_AUIPC: dpi_trace("AUIPC");
|
||||
default: dpi_trace("?");
|
||||
endcase
|
||||
end
|
||||
end
|
||||
`EX_LSU: begin
|
||||
case (`LSU_BITS'(op_type))
|
||||
`LSU_LB: $write("LB");
|
||||
`LSU_LH: $write("LH");
|
||||
`LSU_LW: $write("LW");
|
||||
`LSU_LBU:$write("LBU");
|
||||
`LSU_LHU:$write("LHU");
|
||||
`LSU_SB: $write("SB");
|
||||
`LSU_SH: $write("SH");
|
||||
`LSU_SW: $write("SW");
|
||||
default: $write("?");
|
||||
`LSU_LB: dpi_trace("LB");
|
||||
`LSU_LH: dpi_trace("LH");
|
||||
`LSU_LW: dpi_trace("LW");
|
||||
`LSU_LBU:dpi_trace("LBU");
|
||||
`LSU_LHU:dpi_trace("LHU");
|
||||
`LSU_SB: dpi_trace("SB");
|
||||
`LSU_SH: dpi_trace("SH");
|
||||
`LSU_SW: dpi_trace("SW");
|
||||
default: dpi_trace("?");
|
||||
endcase
|
||||
end
|
||||
`EX_CSR: begin
|
||||
case (`CSR_BITS'(op_type))
|
||||
`CSR_RW: $write("CSRW");
|
||||
`CSR_RS: $write("CSRS");
|
||||
`CSR_RC: $write("CSRC");
|
||||
default: $write("?");
|
||||
`CSR_RW: dpi_trace("CSRW");
|
||||
`CSR_RS: dpi_trace("CSRS");
|
||||
`CSR_RC: dpi_trace("CSRC");
|
||||
default: dpi_trace("?");
|
||||
endcase
|
||||
end
|
||||
`EX_FPU: begin
|
||||
case (`FPU_BITS'(op_type))
|
||||
`FPU_ADD: $write("ADD");
|
||||
`FPU_SUB: $write("SUB");
|
||||
`FPU_MUL: $write("MUL");
|
||||
`FPU_DIV: $write("DIV");
|
||||
`FPU_SQRT: $write("SQRT");
|
||||
`FPU_MADD: $write("MADD");
|
||||
`FPU_NMSUB: $write("NMSUB");
|
||||
`FPU_NMADD: $write("NMADD");
|
||||
`FPU_CVTWS: $write("CVTWS");
|
||||
`FPU_CVTWUS:$write("CVTWUS");
|
||||
`FPU_CVTSW: $write("CVTSW");
|
||||
`FPU_CVTSWU:$write("CVTSWU");
|
||||
`FPU_CLASS: $write("CLASS");
|
||||
`FPU_CMP: $write("CMP");
|
||||
`FPU_ADD: dpi_trace("ADD");
|
||||
`FPU_SUB: dpi_trace("SUB");
|
||||
`FPU_MUL: dpi_trace("MUL");
|
||||
`FPU_DIV: dpi_trace("DIV");
|
||||
`FPU_SQRT: dpi_trace("SQRT");
|
||||
`FPU_MADD: dpi_trace("MADD");
|
||||
`FPU_NMSUB: dpi_trace("NMSUB");
|
||||
`FPU_NMADD: dpi_trace("NMADD");
|
||||
`FPU_CVTWS: dpi_trace("CVTWS");
|
||||
`FPU_CVTWUS:dpi_trace("CVTWUS");
|
||||
`FPU_CVTSW: dpi_trace("CVTSW");
|
||||
`FPU_CVTSWU:dpi_trace("CVTSWU");
|
||||
`FPU_CLASS: dpi_trace("CLASS");
|
||||
`FPU_CMP: dpi_trace("CMP");
|
||||
`FPU_MISC: begin
|
||||
case (op_mod)
|
||||
0: $write("SGNJ");
|
||||
1: $write("SGNJN");
|
||||
2: $write("SGNJX");
|
||||
3: $write("MIN");
|
||||
4: $write("MAX");
|
||||
5: $write("MVXW");
|
||||
6: $write("MVWX");
|
||||
0: dpi_trace("SGNJ");
|
||||
1: dpi_trace("SGNJN");
|
||||
2: dpi_trace("SGNJX");
|
||||
3: dpi_trace("MIN");
|
||||
4: dpi_trace("MAX");
|
||||
5: dpi_trace("MVXW");
|
||||
6: dpi_trace("MVWX");
|
||||
endcase
|
||||
end
|
||||
default: $write("?");
|
||||
default: dpi_trace("?");
|
||||
endcase
|
||||
end
|
||||
`EX_GPU: begin
|
||||
case (`GPU_BITS'(op_type))
|
||||
`GPU_TMC: $write("TMC");
|
||||
`GPU_WSPAWN:$write("WSPAWN");
|
||||
`GPU_SPLIT: $write("SPLIT");
|
||||
`GPU_JOIN: $write("JOIN");
|
||||
`GPU_BAR: $write("BAR");
|
||||
default: $write("?");
|
||||
`GPU_TMC: dpi_trace("TMC");
|
||||
`GPU_WSPAWN:dpi_trace("WSPAWN");
|
||||
`GPU_SPLIT: dpi_trace("SPLIT");
|
||||
`GPU_JOIN: dpi_trace("JOIN");
|
||||
`GPU_BAR: dpi_trace("BAR");
|
||||
default: dpi_trace("?");
|
||||
endcase
|
||||
end
|
||||
default: $write("?");
|
||||
default: dpi_trace("?");
|
||||
endcase
|
||||
endtask
|
||||
|
||||
|
||||
Reference in New Issue
Block a user