一ADC:
16bit精度+DDR+LVDS+8个outpin

二:FPGA处理流程:
1.差分数据转单端+idelaye2+generate for
generate
for(i=0;i<=7;i=i+1)begin:GEN_IN
IBUFDS #(.DIFF_TERM("TRUE"),       // Differential Termination.IBUF_LOW_PWR("FALSE"),     // Low power="TRUE", Highest performance="FALSE" .IOSTANDARD("LVDS")     // Specify the input I/O standard
) 
u_inbufds(.O(data_in[i]),  // Buffer output.I(din_p[i]),  // Diff_p buffer input (connect directly to top-level port).IB(din_n[i]) // Diff_n buffer input (connect directly to top-level port)
);(* IODELAY_GROUP = "selectio_wiz_0_group" *)
IDELAYE2# (.CINVCTRL_SEL           ("FALSE"),                            // TRUE, FALSE.DELAY_SRC              ("IDATAIN"),                          // IDATAIN, DATAIN.HIGH_PERFORMANCE_MODE  ("FALSE"),                            // TRUE, FALSE.IDELAY_TYPE            ("FIXED"),              // FIXED, VARIABLE, or VAR_LOADABLE.IDELAY_VALUE           (IDELAY_VALUE),                  // 0 to 31.REFCLK_FREQUENCY       (200.0),.PIPE_SEL               ("FALSE"),.SIGNAL_PATTERN         ("DATA"))                             // CLOCK, DATAidelaye2_bus(.DATAOUT                (data_dly[i]),.DATAIN                 (1'b0),                               // Data from FPGA logic.C                      (1'b0),.CE                     (),.INC                    (),.IDATAIN                (data_in[i]), // Driven by IOB.LD                     (1'b0),.REGRST                 (),.LDPIPEEN               (1'b0),.CNTVALUEIN             (5'b00000),.CNTVALUEOUT            (),.CINVCTRL               (1'b0));
end
endgenerate2.iddr+generate for
generate
for(i=0;i<=7;i=i+1)begin:GEN_IDDR
IDDR #(.DDR_CLK_EDGE("SAME_EDGE_PIPELINED"), // "OPPOSITE_EDGE", "SAME_EDGE" //.DDR_CLK_EDGE("SAME_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("ASYNC") // Set/Reset type: "SYNC" or "ASYNC" ) IDDR_inst (.Q1   (data_in_n0[i]), // 1-bit output for positive edge of clock .Q2   (data_in_n1[i]), // 1-bit output for negative edge of clock.C    (clkin_sys),   // 1-bit clock input.CE   (1'b1), // 1-bit clock enable input.D    (data_dly[i]),   // 1-bit DDR data input.R    (io_reset),   // 1-bit reset.S    (1'b0)    // 1-bit set);
end
endgeneratealways@(posedge clkin_bufr)
begindout_pin <= {  data_in_n1[7],data_in_n0[7],data_in_n1[6],data_in_n0[6],data_in_n1[5],data_in_n0[5],data_in_n1[4],data_in_n0[4],data_in_n1[3],data_in_n0[3],data_in_n1[2],data_in_n0[2],data_in_n1[1],data_in_n0[1],data_in_n1[0],data_in_n0[0]}; 
end