Sign extension
This commit is contained in:
parent
f895a4ccf6
commit
1a41dcd1ba
@ -1,12 +1,17 @@
|
|||||||
`timescale 1ns / 1ps
|
`timescale 1ns / 1ps
|
||||||
|
|
||||||
module Extend
|
module Extend
|
||||||
#(
|
(
|
||||||
parameter N_IN = 12,
|
input logic[1:0] imm_src,
|
||||||
parameter N_OUT = 32
|
input logic[31:7] instr,
|
||||||
) (
|
output logic[31:0] imm_ext
|
||||||
input logic enable,
|
);
|
||||||
input logic[N_IN-1:0] imm,
|
always_comb begin
|
||||||
output logic[N_OUT-1:0] imm_ext
|
case(imm_src)
|
||||||
);
|
'd0: imm_ext = {{20{instr[31]}}, instr[31:20]}; // Type I
|
||||||
|
'd1: imm_ext = {{20{instr[31]}}, instr[31:25], instr[11:7]}; // Type S
|
||||||
|
'd2: imm_ext = {{20{instr[31]}}, instr[7], instr[30:25], instr[11:8], 1'b0} ; // Type S
|
||||||
|
default: imm_ext = 'dx;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
endmodule
|
endmodule
|
||||||
|
Loading…
Reference in New Issue
Block a user