mirror of
https://github.com/openhwgroup/cvw.git
synced 2025-04-24 22:07:12 -04:00
Added BMU instructions to instruction name decoder
This commit is contained in:
parent
72002625eb
commit
45ee4c2f9f
1 changed files with 57 additions and 2 deletions
|
@ -54,12 +54,28 @@ module instrNameDecTB(
|
|||
10'b0010011_000: if (instr[31:15] == 0 & instr[11:7] ==0) name = "NOP/FLUSH";
|
||||
else name = "ADDI";
|
||||
10'b0010011_001: if (funct7[6:1] == 6'b000000) name = "SLLI";
|
||||
else name = "ILLEGAL";
|
||||
else if (funct7[6:1] == 6'b010010) name = "BCLRI";
|
||||
else if (funct7[6:1] == 6'b011010) name = "BINVI";
|
||||
else if (funct7[6:1] == 6'b001010) name = "BSETI";
|
||||
else if (funct7 == 7'b0110000) begin
|
||||
case (rs2)
|
||||
5'b00000: name = "CLZ";
|
||||
5'b00010: name = "CPOP";
|
||||
5'b00001: name = "CTZ";
|
||||
5'b00100: name = "SEXT.B";
|
||||
5'b00101: name = "SEXT.H";
|
||||
default: name = "ILLEGAL";
|
||||
endcase
|
||||
end else name = "ILLEGAL";
|
||||
10'b0010011_010: name = "SLTI";
|
||||
10'b0010011_011: name = "SLTIU";
|
||||
10'b0010011_100: name = "XORI";
|
||||
10'b0010011_101: if (funct7[6:1] == 6'b000000) name = "SRLI";
|
||||
else if (funct7[6:1] == 6'b010000) name = "SRAI";
|
||||
else if (funct7[6:1] == 6'b011010 & rs2 == 5'b11000) name = "REV8";
|
||||
else if (funct7[6:1] == 6'b011000) name = "RORI";
|
||||
else if (funct7[6:1] == 6'b010010) name = "BEXTI";
|
||||
else if (funct7 == 7'b0010100 & rs2 == 5'b00111) name = "ORC.B";
|
||||
else name = "ILLEGAL";
|
||||
10'b0010011_110: name = "ORI";
|
||||
10'b0010011_111: name = "ANDI";
|
||||
|
@ -69,22 +85,41 @@ module instrNameDecTB(
|
|||
10'b0100011_010: name = "SW";
|
||||
10'b0100011_011: name = "SD";
|
||||
10'b0011011_000: name = "ADDIW";
|
||||
10'b0011011_001: name = "SLLIW";
|
||||
10'b0011011_001: if (funct7 == 7'b0000000 )name = "SLLIW";
|
||||
else if (funct7[6:1] == 6'b000010) name = "SLLI.UW";
|
||||
else if (funct7 == 7'b0110000) begin
|
||||
case (rs2)
|
||||
5'b00000: name = "CLZW";
|
||||
5'b00010: name = "CPOPW";
|
||||
5'b00001: name = "CTZW";
|
||||
default: name = "ILLEGAL";
|
||||
endcase
|
||||
end else name = "ILLEGAL";
|
||||
10'b0011011_101: if (funct7 == 7'b0000000) name = "SRLIW";
|
||||
else if (funct7 == 7'b0100000) name = "SRAIW";
|
||||
else if (funct7 == 7'b0110000) name = "RORIW";
|
||||
else name = "ILLEGAL";
|
||||
10'b0111011_000: if (funct7 == 7'b0000000) name = "ADDW";
|
||||
else if (funct7 == 7'b0100000) name = "SUBW";
|
||||
else if (funct7 == 7'b0000001) name = "MULW";
|
||||
else if (funct7 == 7'b0000100) name = "ADD.UW";
|
||||
else name = "ILLEGAL";
|
||||
10'b0111011_001: if (funct7 == 7'b0000000) name = "SLLW";
|
||||
else if (funct7 == 7'b0000001) name = "DIVW";
|
||||
else if (funct7 == 7'b0110000) name = "ROLW";
|
||||
else name = "ILLEGAL";
|
||||
10'b0111011_010: if (funct7 == 7'b0010000) name = "SH1ADD.UW";
|
||||
else name = "ILLEGAL";
|
||||
10'b0111011_100: if (funct7 == 7'b0010000) name = "SH2ADD.UW";
|
||||
else if (funct7 == 7'b0000100) name = "ZEXT.H";
|
||||
else name = "ILLEGAL";
|
||||
10'b0111011_101: if (funct7 == 7'b0000000) name = "SRLW";
|
||||
else if (funct7 == 7'b0100000) name = "SRAW";
|
||||
else if (funct7 == 7'b0000001) name = "DIVUW";
|
||||
else if (funct7 == 7'b0110000) name = "RORW";
|
||||
else name = "ILLEGAL";
|
||||
10'b0111011_110: if (funct7 == 7'b0000001) name = "REMW";
|
||||
else if (funct7 == 7'b0010000) name = "SH3ADD.UW";
|
||||
else name = "ILLEGAL";
|
||||
10'b0111011_111: if (funct7 == 7'b0000001) name = "REMUW";
|
||||
else name = "ILLEGAL";
|
||||
|
@ -94,25 +129,45 @@ module instrNameDecTB(
|
|||
else name = "ILLEGAL";
|
||||
10'b0110011_001: if (funct7 == 7'b0000000) name = "SLL";
|
||||
else if (funct7 == 7'b0000001) name = "MULH";
|
||||
else if (funct7 == 7'b0110000) name = "ROL";
|
||||
else if (funct7 == 7'b0000101) name = "CLMUL";
|
||||
else if (funct7 == 7'b0100100) name = "BCLR";
|
||||
else if (funct7 == 7'b0110100) name = "BINV";
|
||||
else if (funct7 == 7'b0010100) name = "BSET";
|
||||
else name = "ILLEGAL";
|
||||
10'b0110011_010: if (funct7 == 7'b0000000) name = "SLT";
|
||||
else if (funct7 == 7'b0000001) name = "MULHSU";
|
||||
else if (funct7 == 7'b0010000) name = "SH1ADD";
|
||||
else if (funct7 == 7'b0000101) name = "CLMULR";
|
||||
else name = "ILLEGAL";
|
||||
10'b0110011_011: if (funct7 == 7'b0000000) name = "SLTU";
|
||||
else if (funct7 == 7'b0000001) name = "MULHU";
|
||||
else if (funct7 == 7'b0000101) name = "CLMULH";
|
||||
else name = "ILLEGAL";
|
||||
10'b0110011_100: if (funct7 == 7'b0000000) name = "XOR";
|
||||
else if (funct7 == 7'b0000001) name = "DIV";
|
||||
else if (funct7 == 7'b0010000) name = "SH2ADD";
|
||||
else if (funct7 == 7'b0000101) name = "MIN";
|
||||
else if (funct7 == 7'b0100000) name = "ORN";
|
||||
else if (funct7 == 7'b0000100) name = "ZEXT.H";
|
||||
else name = "ILLEGAL";
|
||||
10'b0110011_101: if (funct7 == 7'b0000000) name = "SRL";
|
||||
else if (funct7 == 7'b0000001) name = "DIVU";
|
||||
else if (funct7 == 7'b0100000) name = "SRA";
|
||||
else if (funct7 == 7'b0000101) name = "MINU";
|
||||
else if (funct7 == 7'b0110000) name = "ROR";
|
||||
else if (funct7 == 7'b0100100) name = "BEXT";
|
||||
else name = "ILLEGAL";
|
||||
10'b0110011_110: if (funct7 == 7'b0000000) name = "OR";
|
||||
else if (funct7 == 7'b0000001) name = "REM";
|
||||
else if (funct7 == 7'b0010000) name = "SH3ADD";
|
||||
else if (funct7 == 7'b0000101) name = "MAX";
|
||||
else if (funct7 == 7'b0100000) name = "XNOR";
|
||||
else name = "ILLEGAL";
|
||||
10'b0110011_111: if (funct7 == 7'b0000000) name = "AND";
|
||||
else if (funct7 == 7'b0000001) name = "REMU";
|
||||
else if (funct7 == 7'b0000101) name = "MAXU";
|
||||
else if (funct7 == 7'b0100000) name = "ANDN";
|
||||
else name = "ILLEGAL";
|
||||
10'b0110111_???: name = "LUI";
|
||||
10'b1100011_000: name = "BEQ";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue