/// Unsynthesizable Primitives module std_unsyn_mult #( parameter WIDTH = 32 ) ( input logic [WIDTH-1:0] left, input logic [WIDTH-1:0] right, output logic [WIDTH-1:0] out ); assign out = left * right; endmodule module std_unsyn_div #( parameter WIDTH = 32 ) ( input logic [WIDTH-1:0] left, input logic [WIDTH-1:0] right, output logic [WIDTH-1:0] out ); assign out = left / right; endmodule module std_unsyn_mod #( parameter WIDTH = 32 ) ( input logic [WIDTH-1:0] left, input logic [WIDTH-1:0] right, output logic [WIDTH-1:0] out ); assign out = left % right; endmodule module std_unsyn_sdiv #( parameter WIDTH = 32 ) ( input signed [WIDTH-1:0] left, input signed [WIDTH-1:0] right, output signed [WIDTH-1:0] out ); assign out = $signed(left / right); endmodule module std_unsyn_smod #( parameter WIDTH = 32 ) ( input signed [WIDTH-1:0] left, input signed [WIDTH-1:0] right, output signed [WIDTH-1:0] out ); assign out = $signed(left % right); endmodule module std_unsyn_smult #( parameter WIDTH = 32 ) ( input signed [WIDTH-1:0] left, input signed [WIDTH-1:0] right, output signed [WIDTH-1:0] out ); assign out = $signed(left * right); endmodule