vivado报错及解决【二】
·
[DRC REQP-1884] ODDR_has_invalid_load: ODDR cell ODDR_p0_0 loads should only be an output buffer or a port, but it is driving an invalid load (one or more of): rgmii_p0_txd_OBUF[0]_inst, ila_wr_inst/inst/ila_core_inst/shifted_data_in_reg[7][132]_srl8, and ila_wr_inst/inst/ila_core_inst/u_trig/U_TM/N_DDR_MODE.G_NMU[13].U_M/allx_typeA_match_detection.ltlib_v1_0_0_allx_typeA_inst/probeDelay1_reg[0]
上述报错是因为将经过ODDR原语输出的信号进行ILA采样,经过ODDR/IDDR输出后的信号不能用于ILA采样。
XILINX给出的ODDR硬件原语实例化模板(Verilog):
// ODDR: Output Double Data Rate Output Register with Set, Reset// and Clock Enable.// 7 Series// Xilinx HDL Language Template, version 2018.3ODDR #(.DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE" or "SAME_EDGE".INIT(1'b0), // Initial value of Q: 1'b0 or 1'b1.SRTYPE("SYNC") // Set/Reset type: "SYNC" or "ASYNC") ODDR_inst (.Q(Q), // 1-bit DDR output.C(C), // 1-bit clock input.CE(CE), // 1-bit clock enable input.D1(D1), // 1-bit data input (positive edge).D2(D2), // 1-bit data input (negative edge).R(R), // 1-bit reset.S(S) // 1-bit set);// End of ODDR_inst instantiation
XILINX给出的IDDR硬件原语实例化模板(Verilog):
// IDDR: Input Double Data Rate Input Register with Set, Reset// and Clock Enable.// 7 Series// Xilinx HDL Language Template, version 2018.3IDDR #(.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);// End of IDDR_inst instantiation
更多推荐
所有评论(0)