Algorithms for the scheduling problem in VLSI high-level synthesis