Skip to Main Content
This paper presents a practical approach to hardware/software partitioning, which is targeted at the rapid prototyping of embedded systems as a mixture of software and reconfigurable hardware. In our method, an application is firstly specified in the high-level programming language C - this is considered to be an executable functional specification. We subsequently allow this specification to be partitioned into hardware and software modules. The hardware modules, which are defined in Handel-C, are synthesised and mapped to a Xilinx Virtex FPGA. The FPGA is situated on a PCB, which is installed in a standard PC. The software modules are executed on the same PC. The paper describes the methodology, and shows how the partitioning process can be readily achieved with minimal changes to the original C program via the use of a predefined library. A simple example is used to illustrate the design process.