prjxray/minitests/partial_reconfig_flow
Rick Altherr ad150af4df minitests: partial_reconfig_flow: Remove init/final sequence hacks
Now that xc7series generates proper .bit files, the hacks need to be
removed.

Signed-off-by: Rick Altherr <kc8apf@kc8apf.net>
2018-02-01 14:34:31 -08:00
..
Makefile minitests: partial_reconfig_flow: Remove init/final sequence hacks 2018-02-01 14:34:31 -08:00
README.md partial_reconfig_flow: Rework to allow any verilog for ROI 2018-01-25 21:10:05 -08:00
defines.v minitest: FASM and xc7patch proof of concept using partial reconfig flow 2018-01-22 14:15:31 -08:00
harness.v partial_reconfig_flow: Rework to allow any verilog for ROI 2018-01-25 21:10:05 -08:00
harness_implement.tcl partial_reconfig_flow: Rework to allow any verilog for ROI 2018-01-25 21:10:05 -08:00
harness_synthesize.tcl partial_reconfig_flow: Rework to allow any verilog for ROI 2018-01-25 21:10:05 -08:00
inv.v partial_reconfig_flow: Rework to allow any verilog for ROI 2018-01-25 21:10:05 -08:00
non_inv.v partial_reconfig_flow: Rework to allow any verilog for ROI 2018-01-25 21:10:05 -08:00
roi_implement.tcl partial_reconfig_flow: Rework to allow any verilog for ROI 2018-01-25 21:10:05 -08:00
roi_synthesize.tcl partial_reconfig_flow: Rework to allow any verilog for ROI 2018-01-25 21:10:05 -08:00
write_bitstream.tcl minitest: FASM and xc7patch proof of concept using partial reconfig flow 2018-01-22 14:15:31 -08:00

README.md

FASM Proof of Concept using Vivado Partial Reconfig flow

harness.v is a top-level design that routes a variety of signal into a black-box region of interest (ROI). Vivado's Partial Reconfiguration flow (see UG909 and UG947) is used to implement that design and obtain a bitstream that configures portions of the chip that are currently undocumented.

Designs that fit within the ROI are written in FASM and merged with the above harness into a bitstream with fasm2frame and xc7patch. Since writting FASM is rather tedious, rules are provided to convert Verilog ROI designs into FASM via Vivado.

Usage

make rules are provided for generating each step of the process so that intermediate forms can be analyzed. Assuming you have a .fasm file, invoking the %_hand_crafted.bit rule will generate a merged bitstream:

make foo.hand\_crafted.bit # reads foo.fasm

Using Vivado to generate .fasm

Vivado's Partial Reconfiguration flow can be used to synthesize and implement a ROI design that is then converted to .fasm. Write a Verilog module that exactly matches the roi blackbox model in the top-level design. Note that even the name of the module must match exactly. Assuming you have created that design in my_roi_design.v, 'make my_roi_design_hand_crafted.bit' will synthesize and implement the design with Vivado, translate the resulting partial bitstream into FASM, and then generate a full bitstream by patching the harness bitstream with the FASM. non_inv.v is provided as an example ROI design for this flow.