blob: a197573e9af9b01bf5e382a06ff9c7e923484f54 [file] [log] [blame] [edit]
module iddr_wrapper (
input wire C,
input wire CB,
input wire CE,
input wire S,
input wire R,
input wire D,
output wire Q1,
output wire Q2
);
parameter USE_PHY_IDDR = 0;
parameter USE_IDELAY = 0;
parameter DDR_CLK_EDGE = "OPPOSITE_EDGE";
parameter INIT_Q1 = 0;
parameter INIT_Q2 = 0;
parameter SRTYPE = "ASYNC";
// Use a physical IDDR
generate if (USE_PHY_IDDR) begin
wire d;
if (USE_IDELAY) begin
IDELAYE2 # (
.IDELAY_TYPE ("FIXED"),
.DELAY_SRC ("IDATAIN"),
.IDELAY_VALUE (16)
) an_idelay (
.IDATAIN (D),
.DATAOUT (d)
);
end else begin
assign d = D;
end
IDDR_2CLK # (
.SRTYPE (SRTYPE),
.INIT_Q1 (INIT_Q1),
.INIT_Q2 (INIT_Q2),
.DDR_CLK_EDGE (DDR_CLK_EDGE)
) the_iddr (
.C (C),
.CB (CB),
.CE (CE),
.S (S),
.R (R),
.D (d),
.Q1 (Q1),
.Q2 (Q2)
);
end endgenerate
endmodule