Hardware-software co-design assigns computational roles according to their timing and execution needs. Parallel, timing-sensitive functions can be placed in the FPGA fabric, while operating systems and application code run on the multicore ARM processing system. Memory and peripheral interfaces connect these domains, allowing engineers to combine specialized hardware behavior with flexible software control in one embedded design.
These interfaces provide the communication path between programmable logic, processor-based software, memory, and external functions. They allow hardware accelerators or other FPGA operations to exchange data with application code running on the ARM processors. Without this linkage, the two processing domains could not operate as a coordinated embedded system, limiting the value of the co-design approach.
Its reconfigurable FPGA architecture lets engineers modify and evaluate accelerator designs without committing immediately to a specialized embedded product. A computation can be tested as part of a hardware-software system, then adjusted as performance or implementation requirements become clearer. This supports rapid comparison of design approaches before transferring a refined solution into deployment-focused hardware.
A typical workflow begins by identifying functions that benefit from parallel, timing-sensitive hardware execution and functions better suited to processor-based software. Engineers then implement the hardware portion in the FPGA fabric, run operating-system and application code on the ARM system, and connect both through memory and peripheral interfaces. The combined design can then be evaluated as an embedded prototype.
The board supports prototyping across several engineering areas, including computer vision, machine learning, robotics, networking, and real-time control. These applications can require both flexible software and specialized processing behavior, making them suitable for hardware-software partitioning. Using one reconfigurable platform allows researchers and students to investigate algorithms and embedded implementations within related experimental workflows.
In education and research, the board provides a practical setting for studying how algorithms become embedded systems. Users can evaluate the interaction between processor software, FPGA-based functions, memory, and peripherals while exploring application areas such as robotics or real-time control. Results from these prototypes help assess algorithm behavior and accelerator choices before product-oriented deployment.