iverilog/ivtest/ivltests/br919.v

36 lines
858 B
Verilog

module top;
reg pass;
reg we;
reg [7:0] c;
reg signed [7:0] res;
initial begin
pass = 1'b1;
c = 8'd3;
we = 1'b1;
// $display ("res(we) = %d", (we ? (-$signed(c)) / 8'sd2 : 8'd1));
// $display ("res(1) = %d", (1'b1 ? (-$signed(c)) / 8'sd2 : 8'd1));
res = we ? (-$signed(c)) / 8'sd2 : 8'd1;
if (res !== 126) begin
$display("Failed: variable ternary, expected 126, got %d", res);
pass = 1'b0;
end
res = 1'b1 ? (-$signed(c)) / 8'sd2 : 8'd1;
if (res !== 126) begin
$display("Failed: constant true ternary, expected 126, got %d", res);
pass = 1'b0;
end
res = 1'b0 ? 8'd1 : (-$signed(c)) / 8'sd2;
if (res !== 126) begin
$display("Failed: constant false ternary, expected 126, got %d", res);
pass = 1'b0;
end
if (pass) $display("PASSED");
end
endmodule