Hardware-software co-design¶

Fig. 2 Summary of software-hardware co-execution solutions.¶
Hint
Hooking functions/instructions in binary applications:
Use cases:
Running binaries with custom instructions on devices without hardware support.
Replacing software routines with hardware accelerators, without modifying application sources.
Switching drivers/implementations without recompiling the software application.
For instance, evaluating accelerators on target boards before the RTL is ready for synthesis.

Fig. 3 gh:dbhi/vboard: virtual development board for HDL design.¶
Co-execution platform options:
Workstation/laptop (amd64)
Native
QEMU user mode
QEMU system mode
Single Board Computer (SBC)
FPGA board (PS only)
FPGA board (PS and PL)