From ac6c4cc0942924c01de7563b0c99af01b99780f9 Mon Sep 17 00:00:00 2001 From: Riley King-Saunders Date: Tue, 13 Oct 2026 22:24:43 +1100 Subject: [PATCH] Added module for sign extension. Needs test cases --- modules/sign_extender.sv | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 modules/sign_extender.sv diff --git a/modules/sign_extender.sv b/modules/sign_extender.sv new file mode 100644 index 0000000..114e13d --- /dev/null +++ b/modules/sign_extender.sv @@ -0,0 +1,13 @@ +`ifndef SIGN_EXTENDER_H +`define SIGN_EXTENDER_H + +module sign_extender #(in_width=4, out_width=5)( + input logic [0:0] op, + input logic [2**in_width-1:0] val, + output logic [2**out_width-1:0] ext_val +); + always_comb begin + assign ext_val = (op) ? {{(2**(out_width-in_width)){val[2**in_width-1]}}, val} : ({{(2**(out_width-in_width)){1'b0}}, val}); + end +endmodule +`endif