I’m running into a recurring problem with Zynq designs and I’m curious how others handle this.
On paper, using the PL for acceleration always looks like the right move. In practice, I keep finding that the integration cost—AXI plumbing, cache coherency, DMA setup, and tool friction—ends up dominating the project far more than the accelerator itself.
I’ve had projects where the hardware worked, but performance was still disappointing because the PS–PL interface became the bottleneck, or where workflow choices (Vivado vs Vitis) boxed me into painful rework later.
So my question is: at what point do you personally decide that moving functionality into the PL is worth it on Zynq, and when do you step back and keep things in software instead?
I’d really like to hear what decision signals or failure experiences others use to make that call.