diff --git a/src/ieu/bmu/bitmanipalu.sv b/src/ieu/bmu/bitmanipalu.sv index f5e88b8b1..50678e784 100644 --- a/src/ieu/bmu/bitmanipalu.sv +++ b/src/ieu/bmu/bitmanipalu.sv @@ -115,32 +115,20 @@ module bitmanipalu import cvw::*; #(parameter cvw_t P) ( // ZKND Unit if (P.ZKND_SUPPORTED) begin: zknd - if (P.XLEN == 32) begin - zknd32 #(P.XLEN) ZKND32(.A(ABMU), .B(BBMU), .Funct7, .ZKNDSelect(ZBBSelect[2:0]), .ZKNDResult); - end - else begin - zknd64 #(P.XLEN) ZKND64(.A(ABMU), .B(BBMU), .Funct7, .RNUM(Rs2E[3:0]), .ZKNDSelect(ZBBSelect[2:0]), .ZKNDResult); - end + if (P.XLEN == 32) zknd32 #(P.XLEN) ZKND32(.A(ABMU), .B(BBMU), .Funct7, .ZKNDSelect(ZBBSelect[2:0]), .ZKNDResult); + else zknd64 #(P.XLEN) ZKND64(.A(ABMU), .B(BBMU), .Funct7, .RNUM(Rs2E[3:0]), .ZKNDSelect(ZBBSelect[2:0]), .ZKNDResult); end else assign ZKNDResult = 0; // ZKNE Unit if (P.ZKNE_SUPPORTED) begin: zkne - if (P.XLEN == 32) begin - zkne32 #(P.XLEN) ZKNE32(.A(ABMU), .B(BBMU), .Funct7, .ZKNESelect(ZBBSelect[2:0]), .ZKNEResult); - end - else begin - zkne64 #(P.XLEN) ZKNE64(.A(ABMU), .B(BBMU), .Funct7, .RNUM(Rs2E[3:0]), .ZKNESelect(ZBBSelect[2:0]), .ZKNEResult); - end + if (P.XLEN == 32) zkne32 #(P.XLEN) ZKNE32(.A(ABMU), .B(BBMU), .Funct7, .ZKNESelect(ZBBSelect[2:0]), .ZKNEResult); + else zkne64 #(P.XLEN) ZKNE64(.A(ABMU), .B(BBMU), .Funct7, .RNUM(Rs2E[3:0]), .ZKNESelect(ZBBSelect[2:0]), .ZKNEResult); end else assign ZKNEResult = 0; // ZKNH Unit if (P.ZKNH_SUPPORTED) begin: zknh - if (P.XLEN == 32) begin - zknh32 ZKNH32(.A(ABMU), .B(BBMU), .ZKNHSelect(ZBBSelect), .ZKNHResult(ZKNHResult)); - end - else begin - zknh64 ZKNH64(.A(ABMU), .B(BBMU), .ZKNHSelect(ZBBSelect), .ZKNHResult(ZKNHResult)); - end + if (P.XLEN == 32) zknh32 ZKNH32(.A(ABMU), .B(BBMU), .ZKNHSelect(ZBBSelect), .ZKNHResult(ZKNHResult)); + else zknh64 ZKNH64(.A(ABMU), .B(BBMU), .ZKNHSelect(ZBBSelect), .ZKNHResult(ZKNHResult)); end else assign ZKNHResult = 0; // Result Select Mux diff --git a/src/ieu/kmu/packer.sv b/src/ieu/kmu/packer.sv index bd9a143b7..4e59bd03b 100644 --- a/src/ieu/kmu/packer.sv +++ b/src/ieu/kmu/packer.sv @@ -37,11 +37,11 @@ module packer #(parameter WIDTH=32) ( logic [WIDTH-1:0] Pack, PackH, PackW; - assign lowhalf = A[WIDTH/2-1:0]; - assign highhalf = B[WIDTH/2-1:0]; - assign lowhalfh = A[7:0]; + assign lowhalf = A[WIDTH/2-1:0]; + assign highhalf = B[WIDTH/2-1:0]; + assign lowhalfh = A[7:0]; assign highhalfh = B[7:0]; - assign lowhalfw = A[15:0]; + assign lowhalfw = A[15:0]; assign highhalfw = B[15:0]; assign Pack = {highhalf, lowhalf}; diff --git a/src/ieu/kmu/zbkx.sv b/src/ieu/kmu/zbkx.sv index 5797195ec..1da15ca45 100644 --- a/src/ieu/kmu/zbkx.sv +++ b/src/ieu/kmu/zbkx.sv @@ -32,20 +32,17 @@ module zbkx #(parameter WIDTH=32) ( ); logic [WIDTH-1:0] xpermlookup; - integer i; + int i; - always_comb begin - if (ZBKXSelect[0] == 1'b0) begin - for(i=0; i> {B[i+:8], 3'b0}; - ZBKXResult[i+:8] = xpermlookup[7:0]; - end - end - else begin + always_comb + if (ZBKXSelect[0]) for(i=0; i> {B[i+:4], 2'b0}; ZBKXResult[i+:4] = xpermlookup[3:0]; end - end - end + else + for(i=0; i> {B[i+:8], 3'b0}; + ZBKXResult[i+:8] = xpermlookup[7:0]; + end endmodule