Just looking out there at the manufacturers' websites, I see some parts that have mind-blowing speeds, at least when you consider they are not the total system and need to interface to other parts at those speeds. High speed ADCs come to mind. If I read these datasheets correctly, they really do signal 8-14 or so bits out at 500Mhz rates (differential). I am confused how that is even interfaced. When I look at high speed FPGAs and CPLDs they don't have pin-to-pin 2ns times. And microcontrollers are not even an option. So how are these sorts of parts used? Like I said, my first guess with a CPLD that blew the output into memory for analysis by a MCU, but I don't even see parts fast enough to do that, either memory or CPLDs, or any other logic.
On a PCB that means microstrip and stripline techniques - the trace has a constant impedance to ground along its length
and is terminated with a resistor of the same impedance - good to several GHz with careful design and the right
PCB material (PTFE), good to 100's MHz with ordinary FR4 board I think.
In practice for lots of logic signals this forces 4 and 6 (or more) layer boards (stripline has two ground planes either
side of every signal and is buried, microstrip has one and can run on the surface layers).
For high speeds the pins coming off the package are the limiting factor - ball-grid array packages are the fastest I
think.
Differential signalling can be used for longer signal runs to reduce noise-susceptibility.
When a whole high speed bus is routed in stripline the traces must have the same length to avoid signal skew -
you sometimes see wiggles in a trace on a board (used to equalize or adjust trace electrical lengths). Check out
a DDIM module for instance (magnifying lens may be needed!).
Stripline being buried performs better since there is only one dielectric involved - microstrip at the surface will
split a signal into two, one travelling at the speed of em-waves in air and one at the speed of em-waves in FR4...
I've seen the wiggles when Dave Jones tore down an Agilent Oscilloscope on one of his EEVBlog reviews.
Thank you, that artile at Wikipedia was a good read. I had not found that one before.
One other question in addition to the delivery of the signals from a 500Mhz part is the processing of those signals. Like I said, I don't see microcontrollers or even FPGAs or CPLDs that can keep up. How is that done?
Modern sub-micron processes yield FETs that switch in a few picoseconds, smaller transistors switch faster. Signals on and off
the chip are the slow ones, and the whole design has to take account of the speed of signal propagation across the die
(a few 100 micrometres of signal path can be many gate delays and need regular signal boosting with inverters to
counteract the line capacitance. low-K dielectrics (hafnium oxide ?) are used to help with both issues (speed
and capacitance).
Of course smaller transistors need lower voltages (less than 0.9V is common) and many chips have multiple-on-die
LDO voltage regulators for parts of the chip allowing individual segments to be powered down (needed because of
the higher leakage currents in small transistors - just turning off the clock isn't enough when you have 10's of millions of
transistors per square mm each leaking several nA).
Pulling a signal off such a chip involves several stages of ampification to boost the voltage and lower the impedance to
something than can drive the capacitance of an IO pin (measured in pF - on-chip capacitances are measured in fF)
So is what you are saying is that to be able to process 500Mhz signals you need to fab your own ASIC and than no off-the-shelf parts are available to do this?
No there are a number of FPGA's that can do the whole job... The Coming Due (OverDue?) is an example of a simple FPGA... A 32 bit processor. Don't make the common mistakes about speed, serial and parallel data speeds. Computers process data in Parallel that is a buss of X bits at a time but all A/D converters are serial devices... for the most part. so there will be a disparity in speed because bus and serial speeds are apples and oranges to each other.
Docedison:
No there are a number of FPGA's that can do the whole job... The Coming Due (OverDue?) is an example of a simple FPGA... A 32 bit processor. Don't make the common mistakes about speed, serial and parallel data speeds. Computers process data in Parallel that is a buss of X bits at a time but all A/D converters are serial devices... for the most part. so there will be a disparity in speed because bus and serial speeds are apples and oranges to each other.
Bob
For the high speed ADC parts, I don't see where they are essentially serial. This 500Mhz part has 8 differential pairs coming off it. As far as I can see, the output is at 500Mhz.
So I am wondering what FPGAs, CPLDs, other logic, or microcontrollers could keep up with a part like this, not to mention parts that are even faster.
JoeN:
For the high speed ADC parts, I don't see where they are essentially serial. This 500Mhz part has 8 differential pairs coming off it. As far as I can see, the output is at 500Mhz.
No, 16 LVDS pairs at 250Mbaud. There is a clock output pair for them that runs at 250MHz or 125MHz (for DDR signalling).
So I am wondering what FPGAs, CPLDs, other logic, or microcontrollers could keep up with a part like this, not to mention parts that are even faster.
Anything with fast enough silicon - as I said modern processes handle many GHz internally. rise/fall-times of a gate can be 10ps or less, the
incoming signal changes every 4000ps!
JoeN:
One other question in addition to the delivery of the signals from a 500Mhz part is the processing of those signals. Like I said, I don't see microcontrollers or even FPGAs or CPLDs that can keep up. How is that done?
High-end FPGAs and most microprocessors[/] can keep up with those rates just fine. Keep in mind USB's 2.0 raw data rate is pretty close to 500Mb/s... As data starts getting to those speeds, it is broken up, packagized, and serialized. Dedicated hardware transmits and receives the bits. Look up SERDES to see how that works.
JoeN:
Just looking out there at the manufacturers' websites, I see some parts that have mind-blowing speeds, at least when you consider they are not the total system and need to interface to other parts at those speeds. High speed ADCs come to mind. If I read these datasheets correctly, they really do signal 8-14 or so bits out at 500Mhz rates (differential). I am confused how that is even interfaced. When I look at high speed FPGAs and CPLDs they don't have pin-to-pin 2ns times. And microcontrollers are not even an option. So how are these sorts of parts used? Like I said, my first guess with a CPLD that blew the output into memory for analysis by a MCU, but I don't even see parts fast enough to do that, either memory or CPLDs, or any other logic.
Just wonderin.... :~
Thanks!
At high speeds (like maybe above 50 mhz), the connecting cables need to be looked at as TRANSMISSION LINES. And indeed, conductor length is critical (you may have seen some PCB traces that take a "squiggly" path?) they do that so each trace is the same length.
Also, PCB traces need to be the right geometry (proper width, proper spacing between each other and between grounds) because they are transmission lines.
With parallel data transfers, you can get errors from signal "skew" where one or more bits arrive early or late and when the clock line changes, all bits may not "be there" yet.
So, to solve the skew and timing problem, they use serial data transfers (like SATA hard drive cables). With a self clocking serial data stream, every bit it RELATIVE to every other bit and each bit arrives correctly timed relative to the serial clock, so "skew" is no longer a problem.
And lastly for speed, multiple serial links can improve data transfer rates even more.
I saw that half the equation was missing, actually the part I was asking about, which was the data processing part. What do you do with the very high speed signals coming off the damn ADC? The board they discuss at the end of the article has the ADC, vref, clock, instrumentation amp, etc. But no data processing. Just an output with the signals. The board they are discussing is actually a product of theirs:
Apparently that FPGA is reprogrammed for each ADC supported by this platform. Each eval board comes with the FPGA binaries. And the actual FPGA source code for various platforms is available from Analog:
So, for the AD9467 referenced in the PDF you gave me, the FPGA code is AD9467_Main.zip. Then the schematics and gerbers for the analog and digital sides are in the UG-200 and HSC-ADC-EVALC documentation. Well, that is the whole ball of wax, a real system design based on a fairly high speed ADC. Now I have to see how high this setup can go and try to understand everything involved.
CrossRoads:
Ok, good luck. What do you have in mind for an application? High speed digital video capture?
You know what, I have no actual application right now. I am just at the point of learning electronics that I am interested in higher speed circuits. I have the low-speed ones going well on breadboards and prototype boards using Atmel processors (and ARM by "cheating" with a Teensy 3.0 - too easy!) and Xilinx and Altera CPLDs. I just sent out my first PCB to be fabbed, which I did in DipTrace (sorry, I know you are an Eagle fan). It's a nothing-special low speed circuit with a ATTiny85 and 6 Adafruit 0.8" matricies and 6 MAX7219s. I want to do something harder and faster, I just don't know what. So I see that some ADCs are very high speed parts indeed, and I was wondering how signals are generally processed from those parts. And, in fact, many of these parts can be sampled from TI no problem:
As for a signal, I was just going to use a function generator and see if I could correctly capture the function like my oscilloscope can. Pretty damn exciting, yes? As for later and greater things, I just don't know yet.
BTW, a note to Eagle fans: Eagle is a non-starter for me. For anything over the 100x160mm board the price because too damn expensive as it requires Eagle Professional ($1640! :)). I want to do projects with LEDs matricies and they take board space. For $125 I was able to get the version of DipTrace that allows any size board, limited to 1000 pins and 4 layers. I can upgrade at any time to 2000 pins and 6 layers (try getting that manufactured though) for another $125. It can be taken to unlimited pins and layers for $225 more. That works for me.
Bare boards that are really big are expensive to purchase as well.
Better off breaking up a design with lots of big components like 8x8 matrices into standalone boards and run a ribbon cable over.
Look at my mega screw shield - $48 for 5 boards! Idid that a couple times, then bought a larger lot size to bring the per kit cost down, same with connectors, started buying in lots of 7 kits to reach a pricebreak point where the cost came down.