I've been under the impression that FPGAs were merely, well, field-programmable gate arrays, but I've seen some example schematics with resistors, capacitors, and such in them. As such, can an FPGA serve only as a replacement for 7400-series ICs, or also for resistors or other passive components?
-
4\$\begingroup\$ If you've seen some example schematics, you should post them (pictures or links). That will reduce the guesswork. \$\endgroup\$– Nick AlexeevCommented Jun 18, 2013 at 1:36
-
\$\begingroup\$ @NickAlexeev I can look around for some, but as far as I know, application schematics do not influence chips' capabilities. ;) \$\endgroup\$– TortoiseCommented Jun 18, 2013 at 1:37
-
2\$\begingroup\$ @Tortoise But knowing what you've been reading does help us tell you where you've gone wrong. \$\endgroup\$– user3624Commented Jun 18, 2013 at 1:55
3 Answers
FPGAs can replace digital logic as well as (in mixed-signal FPGAs) a few analog components (mostly larger bits like ADCs/DACs, comparators, PLLs, etc.).
The analog/passive equivalent is the FPAA, and there are a few examples already in existence such as Lattice Semiconductor's ispPAC line.
-
\$\begingroup\$ Diodes Inc 700-series appear to be mask-configured rather than field programmable. Do you have a link or more information that says they can be field-programmable? \$\endgroup\$ Commented Jun 18, 2013 at 18:00
-
\$\begingroup\$ @ThePhoton: Nope. \$\endgroup\$ Commented Jun 18, 2013 at 19:46
FPGA's can emulate all sorts of devices (CPU's, Ethernet controllers, Encryption stuff), but that is not where FPGAs shine. The cool thing about an FPGA is that it can do all sorts of things that don't currently exist!
You could emulate an ARM CPU in an FPGA, but why do that when you can buy a real ARM for 10% of the cost? You could emulate a GPU in one, but it would be slower and much more expensive than buying one.
But you could design your own device that doesn't currently exist. How about a 3-D "microphone" that connects to a large array of normal microphones and generates a cool 3-D "image" using techniques similar to synthetic-aperture-radar? Or a controller that interfaces to a large array of servo motors for some performance art thing?
A lot of FPGAs are used to interface a standard computer or embedded CPU to something unique. Ultrasound transponders, for example.
So, while you can emulate a lot of things, if you just view an FPGA as something that can emulate other things then you're missing the point of FPGAs.
-
1\$\begingroup\$ According to some research I've read, sufficiently large number of microphones for detailed room mapping is in fact 5. I'll try to dig up the source if I can. \$\endgroup\$ Commented Jun 18, 2013 at 5:56
-
1\$\begingroup\$ @AndrejaKo My coworkers extensively researched this. The goal was not mapping a room, but making a super conference phone where the mics can easily locate and separate out each individual person while not picking up HVAC and other noises. The number and size of the mic array is important, and directly impacts the frequency range and resolution of the array. For a medium to large conference room, having 40 to 100 mics spread out over 30 feet wide is required for reasonable audio performance. But this is very different than just mapping a room. \$\endgroup\$– user3624Commented Jun 18, 2013 at 15:31
-
\$\begingroup\$ That's some quite interesting technology! \$\endgroup\$ Commented Jun 18, 2013 at 20:08
-
\$\begingroup\$ @AndrejaKo Here's a thing on acoustic room mapping: bigpondnews.com/articles/Technology/2013/06/18/… \$\endgroup\$– user3624Commented Jun 18, 2013 at 22:08
What can be replaced by a FPGA?
Entire rooms full of hardware have been replaced by FPGAs.
Pretty much anything a 7400-series ICs can do, a FPGA can also do:
Any digital function can be implemented with FPGAs. By "digital function", I mean something where each input is either "0" or "1" at any one instant, and each output is either "0" or "1" at any one instant, and the output depends only on some function of the input and some internal digital state. More complicated functions generally require a "larger" FPGA, or partitioning across multiple FPGAs.
Some 7400-series ICs -- and most FPGAs -- implement a few things that don't quite fit that definition of a "digital function":
- open-drain outputs
- bidirectional data buses
- slew-rate limited outputs
- internal "pull-up resistors" and "pull-down resistors" (on input pins)
What can't be replaced by a FPGA?
Alas, there are many things on a PCB that can't be replaced by a FPGA.
Digital functions that also must run at high speeds. (The available FPGAs keep getting better and better, allowing more complex and faster systems to be built from them, but the same process used to make a fully-generic FPGA chip can also be used to make a full-custom CPU or other ASIC chip that can pack slightly more functionality on the chip and make it go significantly faster -- but hard-wired to do only that one thing). (However, for embarrassingly parallel problems, a bunch of FPGAs, each one working on several parts of the problem in parallel, can finish a task faster and at lower cost than any reasonable number of CPUs -- see Deep Crack and COPACOBANA).
Continuous-time functions like PLLs. (However, many FPGAs also include a PLL on the same chip).
Analog functions and RF functions -- pure baseband analog functions such as anti-aliasing filters, op-amps, Ethernet transformers, etc.; mixed-signal functions such as comparators, ADCs, DACs, etc.; and radio-frequency functions such as heterodyning mixers. (As Ignacio Vazquez-Abrams pointed out, there exist a few FPGAs that include an ADC or two and a DAC or two, and there also exist FPGA-like chips -- the FPAA and mixed-signal PSoC, etc. -- that can be programmed to do some of these analog functions). (However, there are many tricks people use to replace large amounts of analog circuitry and RF with a small amount of analog circuitry and a DSP, and the DSP itself can be replaced by a FPGA).
Power circuits: voltage regulators, current limiters, over-voltage protection circuits, H bridges, maximum power-point trackers, power inductors, PoE injectors, PoE splitters, etc.
High-voltage circuits
Antennas
Sensors
Actuators, LEDs and other displays, etc.
connectors
I've seen some example schematics with resistors, capacitors, and such in them.
I've seen schematics of the stuff intended to go inside a FPGA, showing pull-up and pull-down resistors and lots of 7400-series boxes and other logic symbols, but I've never seen one with capacitors. Could you give me a link?
I've seen lots of schematics of the stuff intended to go on a PCB, showing a big box labeled "FPGA" in the middle and lots of other components around it -- voltage regulator and capacitors required by the FPGA datasheet for proper operation of the FPGA, and other components required by the application that couldn't be replaced by that FPGA.