sv2v/test/basic/clip_mul.sv

18 lines
387 B
Systemverilog

module top;
wire [3:0] a, b, w, x, y, z;
assign a = 4'b1011;
assign b = 4'b0101;
// loses upper bits
assign w = (a * b) >> 4;
// preserves upper bits via implicit extension
assign x = (1 * a * b) >> 4;
assign y = (a * b * 1) >> 4;
// preserves upper bits via "casting"
wire [7:0] tmp;
assign tmp = a * b;
assign z = tmp >> 4;
endmodule