JakeJanovetz-webField-Programmable Gate Arrays (FPGA) are the
most flexible and capable devices available to interface to a
large variety of system devices such as memories, data
acquisition (ADC/DAC), image sensors, displays, and so on.
 Often, the goal is to interface these system devices to a
software infrastructure running on a workstation platform using
a Windows, Linux or Mac operating system.    The ubiquitous PC,
with its myriad of software development environments,
comfortable presence, and low-cost, should be the ultimate
microprocessor development platform but it has generally been
ill-suited to the intimate hardware development scene. This is
largely due to the layers of operating system between the
application software and the device pins a developer wishes to
"wiggle."  Development engineers in commercial design and
academic research have found a way to bring these two worlds
together fortuitously with USB-based FPGA modules, designed to
bridge the gap between hardware and software worlds.    