Patent ID: 7310594

Claim:
A method of designing a multiprocessor system using a single programming language, comprising the steps of: defining in at least one file with program code in the single programming language, a structure of at least two processing engines and a connectivity between the at least two processing engines by tagging the code with preprocessor compiler directives; wherein a first preprocessor compiler directive in the code specifies for a first processing engine of the at least two processing engines, a type of embedded processor on which compiled code from the at least one file is to execute, and a second preprocessor compiler directive in the code specifies for a second processing engine of the at least two processing engines, a first function from a library containing a plurality of implementations of a plurality of functions, and the second preprocessor compiler directive specifying one of a software implementation and a hardware implementation of the first function; wherein the library includes for the first function, the software implementation in a high-level programming language for compilation into processor executable program code and the hardware implementation in a hardware description language that specifies a circuit; compiling the code in the at least one file with the preprocessor compiler directives; wherein compiling includes generating processor executable instructions for execution by a processor; obtaining from the library each hardware implementation of each function specified by a preprocessor compiler directive in the code; and generating from each hardware implementation, including the hardware implementation of the first function, a circuit definition.