MCAPI abstraction on FPGA based SoC design
Lauri Matilainen, Erno Salminen, Timo D. Hämäläinen · 2012
FPGAs are traditionally designed with RTL-level IP-block descriptions. Many FPGA designs include several synthesizable processors and SW executables are mapped to them after a separate software development process. The tools help connecting physical blocks together and typically provide a board support package for SW development to access HW from the application code. The designer is still responsible of carefully planning how the applications on multiple cores communicate, which is getting the more difficult the more cores and other IP blocks are introduced. We apply Multicore Association Communications API (MCAPI) to implement hardware independent communication mechanism between the applications. The benefit is a unified programming API to different processor and operating system types, but also for hardware IP-blocks that the cores can access. We introduce MCAPI and show a case study of a simple video encoder with and without MCAPI abstraction. Porting an application function takes 3 hours with MCAPI and 5 without, i.e. 40% reduction. However, the overhead from MCAPI is increase memory footprint by 25 KB and effect on the video encoder performance -22% compared to non-MCAPI case.