module test_1( | |
input [7:0] a, b, c, | |
input s, x, | |
output [7:0] y1, y2 | |
); | |
wire [7:0] t1, t2; | |
assign t1 = s ? a*b : 0, t2 = !s ? b*c : 0; | |
assign y1 = x ? t2 : t1, y2 = x ? t1 : t2; | |
endmodule | |
module test_2( | |
input s, | |
input [7:0] a, b, c, | |
output reg [7:0] y | |
); | |
always @* begin | |
y <= 'bx; | |
if (s) begin | |
if (a * b > 8) | |
y <= b / c; | |
else | |
y <= c / b; | |
end else begin | |
if (b * c > 8) | |
y <= a / b; | |
else | |
y <= b / a; | |
end | |
end | |
endmodule | |