Best workflow for fast FPGA/Yocto iteration on ZynqMP ?
Hello,
I’m currently working on a Yocto + meta-xilinx workflow for Zynq UltraScale+ and I’m wondering if my workflow is completely wrong… or if everyone suffers the same way
My current workflow
- Vivado
- make PL changes
- integrate Verilog into a custom IP
- add it to the Block Design
- validate BD
- run synthesis
- run implementation
-generate .xsa
- Yocto / meta-xilinx
generate the SDT (`sdtgen`)
generate machine conf (`gen-machine-conf`)
run bitbake
flash SD card with dd
Total time: easily 30+ minutes for every small hardware change.
And very often I only discover stupid mistakes at runtime…
Example from today:
I forgot to reconnect an AXI slave.
No Vivado errors.
Yocto build succeeds.
Linux boots fine.
Then my app starts and obviously cannot find the AXI slave address...
So I have to redo everything just because of one missing AXI slave connection.
Questions :
How do you guys iterate faster with Yocto + meta-xilinx?
Some ideas I’ve been thinking about:
avoid rebuilding the full OS for every .xsa ? Is it possible ?
load only a new bitstream?
device tree overlays? I know that exists but don't know if it is usefull here
What the purpose of the fpga-manager ?
Thanks