prjxray/minitests/partial_reconfig_flow
Jake Mercer c05b4b0406 MAKE - Format Trailing Whitespace
Add `make format-trailing-ws`.  This recipe finds all _files_ (not
links) known to Git and uses `sed` to remove trailing whitespace.

Signed-off-by: Jake Mercer <jake.mercer@civica.co.uk>
2019-10-26 10:04:52 +01:00
..
Makefile MAKE - Format Trailing Whitespace 2019-10-26 10:04:52 +01:00
README.md docs: fixed some READMEs and removed empty .md file generation 2019-09-25 09:54:28 +02: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 tcl: reformat existing code 2018-12-05 16:52:56 -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 tcl: reformat existing code 2018-12-05 16:52:56 -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.