Applications of FPGAs
Implementation of random logic
- easier changes at system-level (one device is modified)
- can eliminate need for full-custom chips
Prototyping
- ensemble of gate arrays used to emulate a circuit to be manufactured
- get more/better/faster debugging done than possible with simulation
Reconfigurable hardware
- one hardware block used to implement more than one function
- functions must be mutually-exclusive in time
- can greatly reduce cost while enhancing flexibility
- RAM-based only option
Special-purpose computation engines
- hardware dedicated to solving one problem (or class of problems)
- accelerators attached to general-purpose computers