Xilinx Toolchain¶
Chapter Two of “FPGAs!? Now What?” gives a good overview of the full compilation process. The basic layers are:
- Synthesis
- The “logic synthesizer” compiles from HDL to a netlist
- Implementation
The “translator” takes a set of netlists and design constraints and generates a merged netlist.
Then a “mapper” regroups the netlist so that place and route will be easier
Then a “place and route” tool decides exactly how the FPGA logic will be configured
- Bitstream
- The “bitstream generator” translates the configuration into the binary format that the FPGA uses to re-flash itself
File Extensions¶
| Extension | Description |
|---|---|
| .par | “place and route” output |
| .vhd | VHDL source code |
| .v | Verilog source code |
| .ucf | “constraints file”: hardware pinouts, timing, etc |
| .prj | [list of files in the project?] |
| .wcfg | [waveform configuration (saved from gtkwave?] |
| .srp | “Synthesis Report File” |
| .xst | [xst settings?] |
| .lso | |
| .vcf | |
| .bgn | bitgen report file |
| .bit | Final FPGA bitstream file (binary) |
| .xwbt | |
| .bld | Build report from NGDBuild |
| .blc | NGDBuild report file |
| .cmd_log | |
| .drc | Design rule check output |
| .ncd | |
| .wdb | |
| .exe | |
| .map | [intermediate step] |
| .mrp | |
| .ncd | [intermediate step? netlist?] |
| .ngm | |
| .xrpt | |
| .par | [place and route output?] |
| .pcf | |
| .ptwx | |
| .stx | |
| .syr | |
| .twr | |
| .twx | |
| .unroutes | unrouted traces; if routing was successful, there should be none |
| .ut | |
| .xpi | |
| .log | |
| .xmsgs | |
| .gise | |
| .xise | ISE project/workplace |
| .cgc | [coregen? used to programatically re-gen core?] |
| .cgp | Coregen Project |
| .ngc | Pre-compiled netlist |
| .sym | |
| .asy | “Symbol file” |
| _flist.txt | File list (?) |
| .gise | |
| .ncf | |
| .sym | |
| .veo | |
| .vho | |
| .xco | [intermediate file?] |
See also: