dear members, im new to fpga develpment what are things one should consider when interfacing adc chip to an fpga. Im interested to know thecircuit level stuffs like how to choose fpga banks and so on? please share your experience. thanks
very unspecific ... there are huge differences between ADCs. Some have SPI Interface, others parallel SDR, some parallel DDR LVDS, some serial LVDS, ...
sorry, lets take ad7626- serial as example in the data sheet its specified Differential Output Voltage, VOD 290 mV Common-Mode Output Voltage, VOCM 1130 mV Differential Input Voltage, VID 100 to 650 mV Common-Mode Input Voltage, VICM 800 to 1575 mV
niclas wrote: > dear members, im new to fpga develpment what are things one should > consider when interfacing adc chip to an fpga. Im interested to know > thecircuit level stuffs like how to choose fpga banks and so on? please > share your experience. thanks Hey Niclas, it sounds a little like 'Do my homework ...' What about some more details, what do you have in mind to do in your FPGA? Best Regards, Andreas
niclas wrote: > sorry, lets take ad7626- serial as example > in the data sheet its specified This is a ADC with SPIish LVDS Interface and and CNV which can be driven as LVDS or CMOS. To get the best performance: Gnerate CLK and an CNV_enable with the FPGA, but retime CNV_enable with a low jitter Clock which does not come from the FPGA. This can be done with an external FF. Use DCO to capture the data D in the FPGA. So ...
1 | +---------+ |
2 | | LOW | +----------+ |
3 | | JITTER | | | |
4 | | CLOCK o---+-------------->i | |
5 | +---------+ | | | |
6 | | | | |
7 | | | | |
8 | | | FPGA | |
9 | +---------+ | | | |
10 | | FLIP i<--+ | | |
11 | | FLOP i<--- CNV_enable ---o | |
12 | | o---+ | | |
13 | +---------+ | | | |
14 | | | | |
15 | | | | |
16 | | | | |
17 | +---------+ | | | |
18 | | i<--+ | | |
19 | | ADC i<------ CLK -------o | |
20 | | AD7626 o------- DCO -------i | |
21 | | o------- D ---------i | |
22 | +---------+ | | |
23 | +----------+ |
CLK and CNC_enable have to be derived from the low jitter clock. You could also gerenate CNV directly inside the FPGA without external FF, this is done on the evaluation board, but ... you may get a little bit poorer performance.
Dear gb, thanks for the reply i can do the vhdl part. i can do the adc controlling and reading. thats not a problem. my question is how to choose FPGA bank to connect this ADC to FPGA
OK. Choose any bank. For the LVDS: [quote]The 7 Series has different capabilities in the HR (High Range) and HP (High Performance) banks. The HR banks use the LVDS_25 IOSTANDARD and if it as an output the VCCO must be 2.5V. HR - LVDS_25 Output - VCCO must be 2.5V HR - LVDS_25 Input and DIFF_TERM=TRUE - VCCO must be 2.5V HR - LVDS_25 Input and DIFF_TERM=FALSE - VCCO can be 1.8-3.3V HP - LVDS Output - VCCO must be 1.8V HP - LVDS Input and DIFF_TERM=TRUE - VCCO must be 1.8V HP - LVDS Input and DIFF_TERM=FALSE - VCCO must be 1.8V[/quote] Source: https://forums.xilinx.com/t5/Other-FPGA-Architecture/LVDS-in-HR-banks/td-p/206709 So CLK and CNV if it is generated in the FPGA have to connect to a HR Bank with VCCO=2.5 V. LVDS from a HP Bank may not be compatible with your ADC, check the Datasheets. DCO and D can connect to a HR Bank with any allowed VCCO. I use a similar ADC, the AD7960 and use as follows: Low_jitter_clock CMOS -> Bank with VCCO=3.3 V CNV_enable CMOS <- Bank with VCCO=3.3 V CLK LVDS_25 <- Bank with VCCO=2.5V DCO LVDS_25 -> Bank with VCCO=2.5V D LVDS_25 -> Bank with VCCO=2.5V But this is Xilinx/AMD. You did not name the FPGA you intend to use.
i checked the ad7960 data sheet and below are the voltage levels i found Differential Output Voltage, VOD RL = 290 mV Common-Mode Output Voltage, VOCM RL = 1130 mV Differential Input Voltage, VID 650 mV Common-Mode Input Voltage, VICM 1575 mV it may be stupid question..pardon me...My confusion is for DCO and D which are inputs to fpga has VID 650mV as per ad7960 datsheet.. will the fpga able to capture this signal? similarly for CLK output?
These niclas wrote: > Differential Input Voltage, VID 650 mV > Common-Mode Input Voltage, VICM 1575 mV are the maximum Values which are allowed for the ADC LVDS Inputs. These Differential Output Voltage, 290 mV Common-Mode Output Voltage, 1130 mV are the Values for the ADC LVDS Outputs -> FPGA Inputs. LVDS_25 is defined here, Page 11: https://www.xilinx.com/support/documentation/data_sheets/ds189-spartan-7-data-sheet.pdf So yes, you can connect DCO and D directly from the ADC to the FPGA. But: The FPGA Bank has to be an HR Bank and it has to be supplied with VCCO=2.5 V. You may also use the internal termination (set DIFF_TERM = TRUE) but you can also use an external 100 Ohm Resistor.
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.