• decomposing the specification into processes,
• mapping processes to special-purpose hardware or processors,
• compiling processes for the target processor,
• scheduling processes in time,
• designing specialized hardware,
• merging the results of software and hardware design,
• validating the design at various phases, and
• planning tests.