ECMP 486: Research in VLSI Systems

Notes on Paper by Robert Walker


Some parts of this paper photocopied too dark to read. Here is what those parts say:

On front page:

Scheduling -- a central task in high-level synthesis -- involves determining the execution order of operations in a behavioral description. After introducing the scheduling problem, this tutorial describes four scheduling algorithms commonly used to solve it.

Figure 4:

for each operation oi
  if oi has no immediate predecessors
    cstep(oi) = 1;
    /*  cstep (oi) indicates control step
        into which operation oi is scheduled  */
  else
    cstep(oi) = maximum cstep of any of oi's 
                immediate predecessors

Figure 5:

current-cstep = 0

while there are unscheduled operations
  
   current-cstep = current-cstep + 1 

   place data-ready operations into the ready list,
   evaluate the priority of each operation, 
   and sort the ready list in order of priority.

   while there are data-ready operations in the 
   ready list that meet the resource constraints
 
      Choose the highest priority data-ready operation oi
      from the ready list

      cstp(oi) = current-cstep

Figure 6:

construct an ASAP and an ALAP schedule, 
determine the schedule length, and
compute the schedule interval of each operation.

construct a histogram for each operation type k.

while there are unscheduled operations

  delta (Cbest) = infinity

  for each operation oi

    for each cstep sj in Si

      compute increase in cost delta(Cij) if 
      operation oi is scheduled into cstep sj

      if delta(Cij) < delta(Cbest)

         delta(Cbest) = delta(Cij)

         bestop = i; beststep = j;

  cstep (bestop) = beststep

  update histograms

Joan Carletta, carletta@ces.cwru.edu