Serial QDR LVDS High-Speed ADCs on Xilinx Series 7 FPGAs
Bruno Valinoti, Rodrigo Melo April 10th to April 12th, 2019, Buenos Aires
Serial QDR LVDS High-Speed ADCs on Xilinx Series 7 FPGAs Bruno - - PowerPoint PPT Presentation
Serial QDR LVDS High-Speed ADCs on Xilinx Series 7 FPGAs Bruno Valinoti, Rodrigo Melo April 10th to April 12th, 2019, Buenos Aires Outline Introduction ADC board characteristics High Speed ADCs and the evolution next to FPGAs Proposal and
Bruno Valinoti, Rodrigo Melo April 10th to April 12th, 2019, Buenos Aires
X Southern Programmable Logic Conference
◮ Requirements, High speed, SNR and resolution. ◮ Abaco (4DSP) approach & problems ◮ Proposal ◮ Virtex 6 ◮ Zynq7000 series
X Southern Programmable Logic Conference
X Southern Programmable Logic Conference
FMC164 Analog Inputs Channels 4 Resolution 16 bits Input voltage range 1Vp-p (4dBm) to 2Vp-p (10 dBm) programmable Input gain Programmable from -2dB to 6dB in 0.5dB steps Input impedance 50Ω Analog input bandwidth 500MHz (typical) ADC Output QDR LVDS mode; 4-pairs DDR per channel Output data width DDR LVDS mode; 8-pairs DDR per channel Data Format Offset binary or 2’s complement 250MHz internal clock Sampling Frequency Range Up to 250MHz external clock
X Southern Programmable Logic Conference
X Southern Programmable Logic Conference
N N+1 D0 Clock
1
D2 D4 D6 D8 D10 D12 D14
2 3 4 5 6 7 8 9 10 11 12 13 14 15
X Southern Programmable Logic Conference
12 13 14 15 8 9 10 11 4 5 6 7 1 2 3
N N+1 D0 D1 D2 D3 Frame Clock
X Southern Programmable Logic Conference
X Southern Programmable Logic Conference
IOB
clk
D Q Q Q Q Q Q
D Q0 Q1 Q2 Q3 E Q4 Q5
D Q Q Q Q Q Q
clk_180
D Q0 Q1 Q2 Q3 E Q4 Q5
ena ena_180
Mux & registers
X Southern Programmable Logic Conference
X Southern Programmable Logic Conference
X Southern Programmable Logic Conference
ISERDESE2 ISERDESE2 ISERDESE2 ISERDESE2
X Southern Programmable Logic Conference
X Southern Programmable Logic Conference
◮ FMC164 ◮ ZC706 ◮ FMC ◮ DDR vs QDR ◮ framing signals
K J H G F E D C B A 1 40 LPC & HPC Only HPC
To get 16-bit values with a sampling clock of 250 MHz, the clock provided by the ADC run at 500 MHz to read 4-bit as DDR two times, known as QDR mode. X Southern Programmable Logic Conference
◮ adc_data.vhdl ◮ adc_frame.vhdl ◮ adc_cdc.vhdl ◮ adc_clock.vhdl
X Southern Programmable Logic Conference
◮ IBUFDS: differential input buffer. ◮ IDELAYE2: allows an input signal to be delayed. ◮ IDELAYCTRL: calibrates IDELAYE2, reducing effects of process,
◮ ISERDESE2: a serial-to-parallel converter. ◮ IN_FIFO: very small FIFOs, designed for memory applications but
◮ ODDR: logic to implement an output DDR register. ◮ BUFG: global clock buffer. ◮ BUFIO: I/O clock buffer. ◮ BUFR: regional clock buffer.
X Southern Programmable Logic Conference
IBUFDS x 4 dat_p_i[3:0] dat_n_i[3:0]
ISERDESE2 x 4
D Q5...Q8 CLK CLKDIV BITSLIP clk_i clk_div2_i bitslip_i data_o[15:0] Counter test_i
12 13 14 15 8 9 10 11 4 5 6 7 1 2 3
N N+1 D0 D1 D2 D3 Frame Clock
X Southern Programmable Logic Conference
◮ Forced bitslip input ◮ Signal shaping analysis, 1st order derivative ◮ Autoscale trigger ◮ Guard time ◮ Small FIFOs hardblocks near the IO
X Southern Programmable Logic Conference
36300 36550 36800 30000 15000 15000 30000 36300 36550 36800 30000 15000 15000 30000 20000 22500 25000 30000 15000 15000 30000 20000 22500 25000 5000 9500 14000
X Southern Programmable Logic Conference
IDELAYE2
IDATAIN DATAOUT CE INC
ISERDESE2
D Q1...Q8 DDLY CLK O CLKDIV
Control FSM
BUFIO BUFR BUFR clk_o clk_div2_o clk_div4 IBUFGDS clk_p_i clk_n_i %2 %4
X Southern Programmable Logic Conference
X Southern Programmable Logic Conference
test_fmc16x
F M C 1 6 X
a b c d e f g h REGS_to_AXIL AXIL AXIS AXIS axis_data_fifo AXI_DMA AXIL M_AXI_S2MM S_AXIS_S2MM
GP HP
X Southern Programmable Logic Conference
Core ADS42LB69 Ch A Ch B Ch C Ch D Ch E Ch F Ch G Ch H FMC168 FMC168/4 FMC168/4/2 Core ADS42LB69 Core ADS42LB69 Core ADS42LB69 Ch A Ch B Ch C Ch D Ch E Ch F Ch G Ch H CLK A CLK E CLK A CLK E
DIGITAL ANALOG
X Southern Programmable Logic Conference
X Southern Programmable Logic Conference
◮ An internal fake data generator works muxed with SERDES to test
◮ Python scripts to analyze the fake data. ◮ Fast Fourier Transform of a well known signal being sampled.
X Southern Programmable Logic Conference
X Southern Programmable Logic Conference
◮ QuADC ◮ Base for the FMC10X IP Core ◮ Packet Standardization
This work was co-funded by the European Union within the European Metrology Programme for Innovation and Research (EMPIR) joint research project 15SIB04 QuADC X Southern Programmable Logic Conference
X Southern Programmable Logic Conference