1. IDDR
IDDR #(
.DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE", "SAME_EDGE"// or "SAME_EDGE_PIPELINED"
.INIT_Q1(1'b0), // Initial value of Q1: 1'b0 or 1'b1
.INIT_Q2(1'b0), // Initial value of Q2: 1'b0 or 1'b1
.SRTYPE("SYNC") // Set/Reset type: "SYNC" or "ASYNC"
) IDDR_inst (
.Q1(Q1), // 1-bit output for positive edge of clock
.Q2(Q2), // 1-bit output for negative edge of clock
.C(C), // 1-bit clock input
.CE(CE), // 1-bit clock enable input
.D(D), // 1-bit DDR data input
.R(R), // 1-bit reset
.S(S) // 1-bit set
);
客户反映ISE工程移植到vivado工程IDDR异常,OPPOSITE_EDGE 修改 SAME_EDGE_PIPELINED 后问题解决
2.LVDS传输高速串行数据,可以使用IOserdes,有些场景因为节省功耗不使用IOserdes
LVDS查分管脚IBUFDS后直接通过IDELAYE2 做固定延迟