Home    Bloggers    Messages    Webinars    Resources   
Tw  |  Fb  |  In  |  Rss
William Murray

An FPGA-Based Flash ADC

William Murray
William Murray
William Murray
3/3/2013 8:07:52 PM
User Rank
Blogger
For larger numbers of bits it is possible to follow the ADC with a Calibration Memory
For larger numbers of bits it is possible to follow the ADC output with a calibration memory look up table that is loaded from an area in Config flash or an SPI flash or EEPROM.

50%
50%
William Murray
William Murray
3/1/2013 12:03:45 PM
User Rank
Blogger
Re: Have I used a home-brew Flash?
For the resistors in this application these are not bad -- (0.01% std)

http://www.linear.com/product/LT5400

 

For overshoot / undershoot there are Schottky diode clamps.  

 

Agreed it is likely best kept to 2-3bits tops and then a SAR or similar for more bits.

 

A finer pitch BGA part gives much less capacitance, at the trade off of finer pitch part.

 

For a buffer amp that gives decent speed look at:

http://www.analog.com/en/high-speed-op-amps/current-feedback-amplifiers/ad811/products/product.html

(About 14ns /Volt for 200pf slew rate) 

 

 These parts should give an 8bit SAR/Flash hybrid ADC a conversion rate of over 10MSPS, and bandwidth in > 30Mhz

 

One has to recall that most FPGA ADC's are just up to 10-11bits at about 1MSPS and are SAR derivative style ADC's for small silicon area, and a single comparator.  This provides a way to combine FLASH with SAR to get more speed for the same # of bits at the added complexity of more I/O and resistors.   With the monolithic resistor packs that are matched and precision, virtually all the Non-Linearity and Temperature issues are eliminated for just 1-2 parts.   Any fast ADC one puts down will require an amp that will drive a large capacitive load due to the style of ADC construction.  

50%
50%
Aser
Aser
3/1/2013 11:46:15 AM
User Rank
Expert
Re: would something like this be useful?
Such ADC is really useful. Its precision is enough, for example, to implement the software defined radio with the proper autoregulated amplification. Even less precision is used in the GPS receiver. The downsampling adds more dynamic range as it was shown in the previous blog.

I have not used such ADC. But I have used such an comparator as the input of the logic analyser. The tuning of the reference voltage helps to estimate the form of the logic signal wave. 

50%
50%
tomii
tomii
3/1/2013 10:07:48 AM
User Rank
Blogger
Have I used a home-brew Flash?
Why yes, I have.  I've also done the reverse, and used a home-brew DAC.

Where you have to be very careful with this is in the precision of the devices involved.  With the inputs (diff rx's), it's not too bad, as they're fairly uniform, but the resistors will kill ya.  Even with 0.1% resistors, you will find a considerable percentage error in INL/DNL after only a couple of input "steps," and this is additive accross them all - that is a single imperfect part will affect every input.

From an external viewpoint, they're also pretty slow.  All that PCB space makes for a lot of extra trace capacitance, and means that if you want it to have a speed of more than a few kHz, then you need to add high-power drivers that are well-designed to ensure overshoots and undershoots won't damage your digital device.  And, the number of resistors required is 2^N, where N is the number of bits.  That gets unwieldy, quick.
Internally speaking - you can still buy flash ADCs out there, but you will almost never find one with more than 8 or 9 bits, as the innards start to get really complex around that point.  Even from the point of view of the Verilog you presented, it requires a line of code for every possible output.  8 bits would be 255 lines.  Ouch! (I guess you could write a little C program to write the lines of code for you, but I have to wonder at what point the syntesizer might start getting angry at you)
 
For the DAC side, I've used R2R ladders to reproduce 8-bit audio with not horrible results.  I've long since gone away from that, though, and started using PWM.
 
For the ADC, I would probably never consider doing this for more than about 2 or so bits (e.g. 3 states or so), as it immediately becomes more efficient in real estate (both on-chip and off) and code to just plop in a cheap SOIC ADC - and even the cheapest will likely have better results over range and temp.
 
 


50%
50%
Crusty
Crusty
3/1/2013 7:16:53 AM
User Rank
Blogger
Re: Very nice idea.
@ Hamster: I totally agree, in the past I used to drive bar led displays this way and set up some very non-linear indicators.

50%
50%
William Murray
William Murray
3/1/2013 6:45:21 AM
User Rank
Blogger
Re: Very nice idea.
--Resolution -- The resolution can be increased either by adding resistor taps -- 16=4bit, 32=5bit, ... or by adding a SAR bottom end to the bits.  I did not have room or time to show the SAR add-on but may for a later column -- the SAR will slow down the conversion  for example for an 8bit converter it may by 6x slower with the SAR's overhead.

 

50%
50%
Garcia-Lasheras
Garcia-Lasheras
2/28/2013 7:05:44 PM
User Rank
Blogger
Re: Very nice idea.
I really like the concept. By using this design, you don't have a lot of resolution, but the sample frequency that can be achieved is very, very high.

I've used low resolution flash converters in mixed-signal communication ASIC for decoding Bluetooth signals.

Your idea may be useful in order to decode a high-bitrate modulated signal after the band-base processing. In fact, it could be used for decoding multiple streams/channels in real time.

50%
50%
hamster
hamster
2/28/2013 6:45:20 PM
User Rank
Blogger
Very nice idea.
I also like how it does not have to be a rail-to-rail ADC, or even linear.

Sometimes you might need only to know if it is  "higher than ideal", "in the ideal range" or  "lower than idea". In which case the ladder needs just three resistors and only four pins are required.

50%
50%
More Blogs from William Murray
When extreme thermal cycling causes circuit boards and chip packages and the silicon die in the packages to expand and contract at different rates, problems may ensue.
In order to simulate a design we need models that represent the functionality and timing characteristics of our design elements, but the timing aspects of these models may be based on uncertain data.
A large amount of skill is required to write custom test code for custom hardware. Even more skill is required to test a CPU, RAM, or ROM.
Designing high-temperature electronics can present many challenges for "down-hole" petroleum equipment, ovens and micro-waves, automotive, medical, aerospace, and other applications.
If a design does not meet a size, speed, reliability, flexibility, or power constraint, a little code refactoring may be all that's required.
flash poll
follow us on twitter
follow Xilinx on twitter
like us on facebook
like Xilinx on facebook
All Programmable Planet     About Us     Contact Us     Help     Register     Twitter     Facebook     RSS