Several algorithms for scheduling high-level functional blocks that assume the blocks may not be physically divided and that pseudocycles may be present due to the grouping of elements within blocks are presented. These algorithms rely on dependency information derived from the block-definitions to create a logical (rather than physical) partitioning of the circuit. The partitioned network is scheduled by an algorithm that is based on levelized scheduling with various heuristics added. The choice of the algorithm is based on the randomness of the partitioning technique. For highly random partitioning, PCSF performs best, while for partitioning that conforms closely to the signal flow of the circuit, FIQ performs best. For circuits in between, MEO is shown to perform best. These techniques represent an improvement over the technique of simulating blocks in random order, since no block will be scheduled unless there is a potential for performing useful work by simulating the block. The problem of finding the minimal schedule is shown to be NP-complete, hence, a heuristic approach to the problem is justified. A technique for computing the dependencies of a block is also presented.
展开▼