mirror of
https://github.com/openhwgroup/cvw.git
synced 2025-04-23 13:27:16 -04:00
Merge pull request #1153 from davidharrishmc/dev
Fixed decoder for illegal 0b1e0c33 issue #1152
This commit is contained in:
commit
1888d40760
3 changed files with 7 additions and 5 deletions
|
@ -119,13 +119,11 @@ module bmuctrl import cvw::*; #(parameter cvw_t P) (
|
|||
if (P.ZBC_SUPPORTED)
|
||||
casez({OpD, Funct7D, Funct3D})
|
||||
17'b0110011_0000101_010: BMUControlsD = `BMUCTRLW'b000_0011_0001_1_0_0_0_1_0_0_0_0_0; // clmulr
|
||||
17'b0110011_0000101_0??: BMUControlsD = `BMUCTRLW'b000_0011_0000_1_0_0_0_1_0_0_0_0_0; // clmul/clmulh
|
||||
17'b0110011_0000101_0?1: BMUControlsD = `BMUCTRLW'b000_0011_0000_1_0_0_0_1_0_0_0_0_0; // clmul/clmulh
|
||||
endcase
|
||||
if (P.ZBKC_SUPPORTED) begin
|
||||
casez({OpD, Funct7D, Funct3D})
|
||||
17'b0110011_0000101_0??: BMUControlsD = `BMUCTRLW'b000_0011_0000_1_0_0_0_1_0_0_0_0_0; // clmul/clmulh
|
||||
// 17'b0110011_0000101_001: BMUControlsD = `BMUCTRLW'b000_0011_0000_1_0_0_0_1_0_0_0_0_0; // clmul
|
||||
// 17'b0110011_0000101_011: BMUControlsD = `BMUCTRLW'b000_0011_0001_1_0_0_0_1_0_0_0_0_0; // clmulh
|
||||
17'b0110011_0000101_0?1: BMUControlsD = `BMUCTRLW'b000_0011_0000_1_0_0_0_1_0_0_0_0_0; // clmul/clmulh
|
||||
endcase
|
||||
end
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ module privdec import cvw::*; #(parameter cvw_t P) (
|
|||
|
||||
// svinval instructions
|
||||
// any svinval instruction is treated as sfence.vma on Wally
|
||||
assign sinvalvmaM = (InstrM[31:25] == 7'b0001001);
|
||||
assign sinvalvmaM = (InstrM[31:25] == 7'b0001011);
|
||||
assign sfencewinvalM = (InstrM[31:20] == 12'b000110000000) & rs1zeroM;
|
||||
assign sfenceinvalirM = (InstrM[31:20] == 12'b000110000001) & rs1zeroM;
|
||||
assign invalM = P.SVINVAL_SUPPORTED & (sinvalvmaM | sfencewinvalM | sfenceinvalirM);
|
||||
|
|
|
@ -219,6 +219,10 @@ module instrNameDecTB(
|
|||
else if (imm == 258) name = "SRET";
|
||||
else if (imm == 770) name = "MRET";
|
||||
else if (funct7 == 9) name = "SFENCE.VMA";
|
||||
else if (funct7 == 11) name = "SINVAL.VMA";
|
||||
else if (funct7 == 12 & rs2 == 0) name = "SFENCE.W.INVAL";
|
||||
else if (funct7 == 12 & rs2 == 1) name = "SFENCE.INVAL.IR";
|
||||
else if (imm == 259) name = "WFI";
|
||||
else if (imm == 261) name = "WFI";
|
||||
else name = "ILLEGAL";
|
||||
10'b1110011_001: name = "CSRRW";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue