iverilog/ivtest/ivltests/sdf_del_typ.v

40 lines
753 B
Verilog

`timescale 1ns/10ps
module top;
reg a, pass;
wire z;
time edge_time;
always @(z) begin
if ((z === 0) && (($time - edge_time) != 3)) begin
$display("Falling took %d, expected 3", $time - edge_time);
pass = 1'b0;
end
if ((z === 1) && (($time - edge_time) != 2)) begin
$display("Rising took %d, expected 2", $time - edge_time);
pass = 1'b0;
end
end
initial begin
pass = 1'b1;
$sdf_annotate("ivltests/sdf_del.sdf", top);
#10;
edge_time = $time;
a = 1'b0;
#10;
edge_time = $time;
a = 1'b1;
#10 if (pass) $display("PASSED");
end
my_buf dut(z, a);
endmodule
module my_buf (output z, input a);
buf (z, a);
specify
(a => z) = (0, 0);
endspecify
endmodule