Hardware-software co-design

_images/software-hardware.png

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.

_images/vboard.png

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)