UberDDR3/testbench/models/OBUFDS_model.v

50 lines
1.3 KiB
Verilog
Executable File

`timescale 1 ps/1 ps
module OBUFDS_model (
output wire O,
output wire OB,
input wire I
);
`ifdef NO_TEST_MODEL
parameter TEST_MODEL = 0;
`else
parameter TEST_MODEL = 1;
`endif
bufif0 (O, I, 1'b0);
notif0 (OB, I, 1'b0);
generate
if(TEST_MODEL == 1) begin
wire O_test, OB_test;
reg unequal = 0;
OBUFDS OBUFDS_test_model (
.O(O_test), // Diff_p output (connect directly to top-level port)
.OB(OB_test), // Diff_n output (connect directly to top-level port)
.I(I) // Buffer input
);
always @* begin
#1;
if((O !== O_test) && ($time > 500_000)) begin
$display("OBUFDS MODEL O does not match: time = %t", $time);
unequal <= 1;
$stop;
end
if((OB !== OB_test) && ($time > 500_000)) begin
$display("OBUFDS MODEL OB does not match: time = %t", $time);
unequal <= 1;
$stop;
end
end
initial begin
$display("---------------------------------------- TESTING OBUFDS Model ----------------------------------------");
end
end
endgenerate
endmodule