# Xilinx Build Assets

This directory holds the repo-local Xilinx build assets that FAT stages into a
generated workspace before running Vitis HLS or Vivado.


## Directory layout

- `hls/`: Vitis HLS source template, batch wrapper, and HLS Tcl
- `vivado/`: Vivado batch wrapper plus the block-design Tcl source

Generated workspaces do not live here. FAT stages builds into
`.cache/<experiment>/` and runs Vitis/Vivado from there.

## Supported Flow

The intended portable flow is:

1. Keep the HLS source plus `vivado/create_bd.tcl` in this repo.
2. Install Vivado/Vitis separately.
3. Run `python main.py data/<experiment> --synthesis`.

The build system copies this directory into `.cache/`, renders the
`model.yaml` values into the staged HLS source, runs Vitis HLS to produce an IP
repository, then asks Vivado to create a fresh ZCU102 project from
`vivado/create_bd.tcl`. Only `encoder.bit` and `encoder.hwh` are copied back
into the data directory.

## Vivado Sources

`vivado/run.tcl` is the batch entrypoint used by FAT. It expects the staged HLS
IP repository, a fresh project work directory, a job count, and an output
directory. `vivado/create_bd.tcl` is the portable block-design source and must
not depend on generated Vivado project state, run outputs, or imported
checkpoints.

Keep generated Vivado state, run outputs, caches, and exported user files out
of source control.

## Naming Note

Files named `siso` refer to the original single-in, single-out HLS
implementation. The accelerator evolved after that first version, but the name
remained because renaming it would ripple through generated interfaces and
build scripts.