Design automation for embedded systems