A formal methodology for automated synthesis of VLSI systems