The traditional process for designing embedded machine control systems typically involves multiple stages of development that each requires specialised electronic design automation (EDA) tools such as state-diagram and flowcharting tools, SPICE circuit simulation, board layout and routing, control design tools, finite element analysis (FEA), C and VHDL languages, multiple target-specific compilers, and human-machine interface (HMI) tools.