Jump to content
  • 0

FPGA based Fast ADC implementation


Shobino

Question

Hi Guys,

I am totally new to FPGA. I have been using Microcontrollers for all my designs.

I am planning to design a data acquisition board with a >20 MHz parallel ADC(eg: LTC2296) which must sample sine wave frequencies up to 1MHz.

Most of the high speed ADC evaluation boards I referred are coupled with an FPGA board for data acquisition. So I came to the conclusion that it might be convenient to use an FPGA for my design too.

But, I have no idea where to start. Kindly give suggestions on a suitable FPGA evaluation board for beginners. Ultimately, it must be possible to interface the above mentioned parallel ADC to the FPGA board and start collecting data samples.

If anybody has already done such an application, please share the details/link.

Thank you.

Shobino

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
1 hour ago, Shobino said:

Ultimately, it must be possible to interface the above mentioned parallel ADC to the FPGA board and start collecting data samples.

You are committed to the LTC2296? I assume that you want to use the analog devices EVB for that device?

Designing ADC boards isn't trivial. Jumping into the FPGA development flow from a Micro-controller design flow won't be easy.

A lot depends on your application. In theory, buying an ADI ADC EVB that can be connected to an FPGA board using a "standard" connector like the FMC or HSMC might be an easier path, if ADI has pre-built projects for a particular combination of EVB/FPGA platform that suits you needs. There are a lot of potential pitfalls waiting for the unwary. In general ADI has good FPGA support for it's products, but this is limited.

Digilent makes a few FPGA boards with SYZYGY interfaces as well as 14-bit dual 100 MHz ADC pods that are well designed for general purpose applications. I wouldn't say that these are suitable for beginners though. The Eclypse-Z7 is, in my opinion, particularly not well suited to beginners.

Perhaps a FPGA based instrument like the Analog Discovery, the Red Pitaya, or the ADALM2000 would be a more convenient option? It really depends on how much data you want to collect and how you want to process it.

There is a general lack of ADC hardware for FPGA boards in the 2-99 MHz ADC Fs range. There are more possibilities for "14-bit" 100 or 125 MHz ADC sampling. The ADC data width is in quotes because the actual ENOB for ADC devices is rarely close to the advertised word width, even assuming a perfect analog pre-conditioning front end.

Until SYZYGY came along, "low cost" converter based projects for FPGA platforms were better supported by Intel based platforms. Terasic's DDC and a Cyclone board with an HSMC connector is a possibility for 100-125 MHz Fs conversion projects.

Edited by zygot
Link to comment
Share on other sites

  • 0

@zygot,

Thank you very much for responding.

LTC2296 is just an example to show the specifications of the ADC. In fact I can choose any such ADC which will be available in the market for a decade.

I understand that jumping to FPGA design is not easy. Can you suggest an alternative option to accomplish the data acquisition? I though about using a FIFO chip along with microcontroller/DSP. Also it might be possible to use a CPLD and SRAM as a FIFO memory along with microcontroller/DSP. But what I understood is that beginning with CPLD takes the same effort as that of FPGA. Please correct me if I am wrong.

Link to comment
Share on other sites

  • 0

PLDs and CPLDs have seen their days fade into the sunset for the two programmable vendors who control 80% of the market. The MAX10 has morphed into a device that is practically indistinguishable an FPGA.

I wish that I had a better answer than get cracking on your programmable logic skills. You might be able to find a suitable alternative to what I've mentioned but I don't know of anything.

The big problem these days might be finding a distributor who has stock of any parts that you might want to use. Try locating any MAX10 devices ready to ship...

Link to comment
Share on other sites

  • 0

Hello @Shobino ,

          A few years ago I have designed a PCB for a medium speed 14bit ADC named AD9649 (20/40/65 or 80) which is supposed to interface with the Digilent Nexys 2 Spartan 3E-500 board. The ADC PCB is connected to the Nexys-2 via the Hirose FX-2 connector. The ADC is clocked via the FPGA's DCM to whichever sampling frequency you desire, obtained from the onboard Nexys crystal oscillator. The PCB features the ADC, the clock matching circuit, SMA and input matching, as well as LDOs and circuitry for the SPI interface used only for the configuration of the ADC, if desired. 

          I have successfully tested the board by implementing a simple BRAM memory and required logic in the FPGA. I can read the FPGA BRAM using the Digilent dpimref VHDL module via the onboard Cypress microcontroller, but the transfer is slow. However, the BRAM is small in size, I can only store a 24500 samples and transfer them via USB very slow.

         I can provide the schematic, PCB, gerbers and even ship a PCB to you, depending on where you are located. My skills in FPGA are at intermediate level and I am not skilled in microcontroller programming. 

What I want from you: I would need the Cypress microcontroller code and FPGA vhdl (on which I can contribute too) which is supposed to implement a high speed transfer of the samples from the ADC using a FIFO in the FPGA. The transfer will be performed using USB to the PC. I would need to acquire frames ~25ms long at 20MSPS, without any loss in data. This would be a one-time transfer only, no real-time streaming. There is enough time in the application to transfer the ~1Mbyte of samples after the 25ms. 

I will attach a photo of the ADC PCB with the Nexys 2. If you are interested, please answer here or mail to namin a t o r2 0 0 3@yahoo.com  (without spaces).

 

1461827093_IMG_20220212_2312242271.jpg

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...