Each such processing element comprises a processor and programmable hardware resources at the functional unit level and at a larger scale as coprocessor support. This denotes intuitive support for expressing both software constructs found in HLLs such as complex data types, composibility, expressivenes and hardware constructs such as timing and more importantly concurrency.
Efficient analysis implies better design capture by the automatic tool, and hence better results.
An executable specification enables efficient simulation and functional validation. This alleviates the need to maintain multiple specifications of the same design which can be error-prone and cumbersome to maintain. A processing element is composed of a general purpose processor with programmable functional unit and co-processor level hardware support. The Java programming language exhibits several characteristics that enable hardware-software specification. Java is object-oriented.