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?
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.).
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.
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.
Actuators, LEDs and other displays, etc.
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.