1. A computer-implemented method of designing an embedded system for a programmable integrated circuit (IC) based on a base platform having a processor and a configurable number of processing elements, the method comprising: obtaining parameters specific to the embedded system; generating source code files that use the parameters to define configurable attributes of the base platform; obtaining a software definition and a hardware definition each using an application programming interface (API) of the base platform to define communication between software and hardware of the embedded system; the software definition including software source code to be produced into code for execution by the processor of the base platform, the hardware definition including at least one logic block for implementation using the processing elements; wherein the source code files include instructions to be produced into code for execution by the processor including auxiliary instructions designating tasks to be performed by the processing elements; wherein the parameters specify a number of processing elements to include in the base platform, the instructions that designate the tasks to be performed by one or more of processing elements, and for each of the processing elements each of the instructions the processing element is capable of performing; and automatically building, using a computer, an implementation of the embedded system for the programmable IC using the source code files, the software definition, and the hardware definition; wherein the implementation includes: the auxiliary instructions that are executable by the processor, each auxiliary instruction indicating to the processor to send the auxiliary instruction to the processing elements for performing the designated task; and a lookup table configured to indicate for each auxiliary instruction that designates a task capable of being performed by more than one of the processing elements, the more than one of the processing elements sorted based on a cost function.