# Kintex-7 B210 Vivado build This directory recreates the clone's Vivado project from the canonical source files stored in Git. The generated `.xpr`, `.srcs`, `.runs`, `.gen`, IP output products, reports, and bitstreams live under `build/` and are disposable. ## Historical baseline At the `clone-vivado-2024.1` point in history, `sources.tcl` intentionally matches the original Vivado 2024.1 project source set exactly. In particular it contains: ``` lib/sim/fifo/axi_fifo_2clk_sim.v ``` as a synthesis source because that is what the original clone project used. Do **not** "clean up" that line in the historical baseline commit. The FIFO repair should be a later Git commit that replaces it with the hardware FIFO/XPM implementation, making the bug and fix visible in history. ## Files - `project_config.tcl` -- part, top, expected Vivado version, default jobs. - `sources.tcl` -- explicit source manifest; no recursive globs. - `create_project.tcl` -- creates a disposable Project-Mode Vivado project. - `build.tcl` -- full OOC-IP/synthesis/implementation/bitstream build. - `reports.tcl` -- timing, route, bus-skew, CDC, methodology, utilization, power, and operating-condition reports. - `ip/b200_clk_gen/b200_clk_gen.xci` -- version-controlled clock-wizard customization. It is imported into the generated project so the canonical XCI is never modified by a build. ## Check the manifest Before starting Vivado: ```bash cd vivado/b210_k7 make check ``` For the reconstructed 2024.1 baseline this should report 99 entries and zero missing files. The count is expected to change in later commits when the FIFO/XPM sources are added. ## Build For the historical baseline, use Vivado 2024.1: ```bash cd vivado/b210_k7 make build JOBS=8 ``` Equivalent direct command: ```bash B210_JOBS=8 vivado -mode batch -source vivado/b210_k7/build.tcl ``` Build products are written to: ``` build/images/usrp_b210_fpga.bit build/images/usrp_b210_fpga.bin build/reports/*.rpt build/vivado/B210_Project_Firmwire/... ``` The `.bin` file is the raw image suitable for UHD's `usrp_b210_fpga.bin`. ## Intentional Vivado migration `project_config.tcl` rejects a different Vivado version by default. During an explicit migration you can temporarily run: ```bash B210_ALLOW_VIVADO_MISMATCH=1 vivado -mode batch -source vivado/b210_k7/create_project.tcl ``` Once the migration is validated, change `B210_EXPECTED_VIVADO` in `project_config.tcl` in the migration commit (for example from `2024.1` to `2026.1`). ## Source-control rule Edit files under `lib/`, `top/`, and `vivado/b210_k7/`. Never edit a copy under `build/`. If deleting `build/` prevents a clean rebuild from a fresh checkout, then a required source is missing from Git or from `sources.tcl`.