An application level synthesis methodology for embedded systems