Skip to content

making changes to firmware

Sho Uemura edited this page Oct 17, 2024 · 1 revision

This supplements the information in the firmware README.

installing Vivado

To build RFSoC firmware, you need to install device support for RFSoC. The configuration shown in this screenshot is sufficient but might not be necessary (probably don't need Kria or MPSoC). image

generating a project from source

Source files for the "standard" firmwares are in subdirectories of firmware/projects. For custom firmwares, the needed files (.tcl and .xdc files) should have been made available alongside the compiled .bit and .hwh, and you should put them in a subdirectory of firmware/projects (or, more generally, some directory two levels below the firmware directory), otherwise the proj.tcl script will not be able to find the QICK source files.

making changes to a project

Once you have a the firmware project and can see the block diagram, most changes are either double-clicking on a block to change its parameters, or deleting/adding blocks and wiring them up.

The best way to find out how to swap gens/ROs is to open a firmware project that uses the gen/RO you want, and copying how it's done there; the firmware README also has a bit of a cheat sheet.

Changing the program memory is a special case which is explained a bit at the end of the firmware README.

Substantial changes to clock organization (e.g. adding a new generator tile that runs at a different freq, or changing which clock the tProc runs on) will usually mean changes to the timing.xdc file.

Aside from "how do you make X change," there is some amount of fuzzier knowledge along the lines of "does this warning matter"/"how do you make this error go away"/"how big can I make X without causing compilation to fail" which is mostly about experience.

utilization spreadsheet

https://docs.google.com/spreadsheets/d/1dEPnMjl1iUzRy8IMK-xgelpNPyki1HhAVNFa8bIxsiY/template/preview