User:Megacz/Gateware
From Wikipedia, the free encyclopedia
Contents |
[edit] Definition
Gateware is the data which describes the configuration of a Field-programmable gate array or similar programmable logic device.
[edit] Description
By analogy, software is to microprocessors as gateware is to FPGAs.
Gateware is sometimes described using the ambiguous term "bitstream."
[edit] Openness
In marked contrast to microprocessor Instruction_set_architectures, the documentation required to create gateware binaries has been undocumented -- and often (questionably) claimed to be a proprietary trade secret -- for every major commercial FPGA since the Xilinx XC6212 was discontinued. This often surprises developers coming from the software world, where chip vendors are often quite happy to let third parties create compilers and development tools for their products.
[edit] Formats
Although specific gateware file formats are currently vendor-specific, most FPGA toolchains have at least one format corresponding to each of the following (listed in order of decreasing abstraction level)
- A high level language, such as Verilog, VHDL, Lava, or Handel_C
- A synthesized (or mapped), but unplaced, unrouted netlist, often as an EDF file with many vendor-specific extensions
- A placed netlist
- A placed, routed netlist
- A placed, routed netlist which has been encoded into the form that the device expects. This form of gateware is commonly referred to as a bitstream or (specifically) a gateware bitstream.