| References |
| ========== |
| |
| Xilinx documents one should be familiar with: |
| --------------------------------------------- |
| |
| ### UG470: 7 Series FPGAs Configuration User Guide |
| |
| https://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf |
| |
| *Chapter 5: Configuration Details* contains a good description of the overall |
| bit-stream format. (See section "Bitstream Composition" and following.) |
| |
| ### UG912: Vivado Design Suite Properties Reference Guide |
| |
| http://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_3/ug912-vivado-properties.pdf |
| |
| Contains an excellent description of the in-memory data structures and |
| associated properties Vivado uses to describe the design and the chip. The TCL |
| interface provides a convenient interface to access this information. |
| |
| ### UG903: Vivado Design Suite User Guide: Using Constraints |
| |
| http://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_3/ug903-vivado-using-constraints.pdf |
| |
| The fuzzers generate designs (HDL + Constraints) that use many physical |
| contraints constraints (placement and routing) to produce bit-streams with |
| exactly the desired features. It helps to learn about the available constraints |
| before starting to write fuzzers. |
| |
| ### UG901: Vivado Design Suite User Guide: Synthesis |
| |
| http://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_3/ug901-vivado-synthesis.pdf |
| |
| *Chapter 2: Synthesis Attributes* contains an overview of the Verilog |
| attributes that can be used to control Vivado Synthesis. Many of them |
| are useful for writing fuzzer designs. There is some natural overlap |
| with UG903. |
| |
| ### UG909: Vivado Design Suite User Guide: Partial Reconfiguration |
| |
| https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_3/ug909-vivado-partial-reconfiguration.pdf |
| |
| Among other things this UG contains some valuable information on how to constrain a design in a way so that the items inside a pblock are strictly separate from the items outside that pblock. |
| |
| ### UG474: 7 Series FPGAs Configurable Logic Block |
| |
| https://www.xilinx.com/support/documentation/user_guides/ug474_7Series_CLB.pdf |
| |
| Describes the capabilities of a CLB, the most important non-interconnect resource of a Xilinx FPGA. |
| |
| Other documentation that might be of use: |
| ----------------------------------------- |
| |
| Doc of .bit container file format: |
| http://www.pldtool.com/pdf/fmt_xilinxbit.pdf |
| |
| Open-Source Bitstream Generation for FPGAs, Ritesh K Soni, Master Thesis: |
| https://vtechworks.lib.vt.edu/bitstream/handle/10919/51836/Soni_RK_T_2013.pdf |
| |
| VTR-to-Bitstream, Eddie Hung: |
| https://eddiehung.github.io/vtb.html |
| |
| From the bitstream to the netlist, Jean-Baptiste Note and Éric Rannaud: |
| http://www.fabienm.eu/flf/wp-content/uploads/2014/11/Note2008.pdf |
| |
| Wolfgang Spraul's Spartan-6 (xc6slx9) project: |
| https://github.com/Wolfgang-Spraul/fpgatools |
| |
| Marek Vasut's Typhoon Cyclone IV project: |
| http://git.bfuser.eu/?p=marex/typhoon.git |
| |
| XDL generator/imported for Vivado: |
| https://github.com/byuccl/tincr |
| |