1.调度的基本概念
  调度是将操作赋给执行过程中的某一时间段。在同步系统中,执行时间用控制步表示,一个控制步是一个基本时间单位,对应一个(或多个)时钟周期。调度的目标在于:在满足给定的约束条件下,将算法级行为描述中的各个操作赋给相应的控制步,使得给定的目标函数最小。这个目标函数主要包括延时、功耗和芯片面积等参数。
  调度算法必须考虑控制数据流图中的控制结构(如循环、条件分枝等)、数据相关性和硬件本身的约束。同步系统中,硬件本身的约束是指每个硬件模块在同一控制步中最多只能使用一次。例如,寄存器每次只能存储一个值(数据),组合逻辑功能单元每次只能执行一个操作,总线每次只能传载一个值(数据)等。
  求解约束条件下的最优解问题是一个NP难题。由于调度问题和高层次综合中其他任务之间的紧密相关性,它被认为是高层次综合中的一个重要部分。在用户给出时间约束的条件下,调度问题变得更为重要,因为调度决定了高层次综合结果是否满足时间约束。
  2.调度与时间因素和资源因素的关系
  调度问题与高层次综合其他部分之间有较强的相互作用,这是因为调度对设计中的2个主要因素起着重要作用:
  (1)时间因素,包括整个数字系统的运算速度、关键路径与指定路径的延时、各操作的完成时间等。
  (2)资源因素,即所需的功能单元、寄存器、互连线路等硬件资源。
  对调度来说,时间约束和资源约束条件也相互制约,图5.9给出一般情况下时间因素和资源因素与调度结果之间的关系。
调度决定了数字系统各操作之间的串行和并行的折衷,也就是近似地决定了数字系统的性能价格比。如果设计者给定了时间约束条件,调度算法将设法使操作有效地并行执行,以尽可能少的硬件资源来满足给定的时间约束。同样,如果设计者给定了硬件资源约束,调度算法将在满足资源约束的条件下,以最快的速度完成各操作。 
图5.9 调度结果与时间因素和资源因素的关系
  

3.操作的调度类型
  在同步系统中,控制步对应于时钟周期。控制步代表的时间段的大小受各操作执行时间与数据存储时间的影响。一旦控制步所代表的时间段大小确定后,则各操作相应地分为3种类型:
  (1) 单周期操作:可以由相应功能单元在一个控制步中实现的操作,图5.10(a)所示的各种操作都属于单操作。
  (2) 多周期操作:相应功能单元在多个控制步中才能实现的操作,图5.10(b)所示的乘法操作(操作1)属于多周期操作。
  (3) 链式操作:相应功能单元在一个控制步中实现的、多个具有数据相关性的操作称为链式操作(chaining operations)。 图5.11中的操作2与操作3属于链式操作,而操作2与操作5、操作4与操作3、操作4与操作5都不是链式操作。
  将操作分为单周期、多周期和链式操作的原因是:各操作的复杂程度不同,完成相应操作的执行时间也就不同。如果把单周期操作作为一个基准的话,则执行时间较长的操作可以被安排成多周期操作,执行时间较短的可以被安排成链式操作。