Bridging the Worlds of Hardware and Software with USB-based FPGA
Field-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.