目前,各高层次综合系统中所使用的功能单元库中仅包含已经设计好并经过验证的功能单元。功能单元库通常由功能单元及功能单元所实现的操作两部分组成。
  功能单元部分包括:
  · 接口信息:输入、输出、控制端等。
  · 物理参数:面积、时延、功耗等。
  · 所实现的操作类型集:该功能单元所能实现的操作类型组成的集合。
  · 实现各个操作的控制码。
  · 实现操作的方式:例如流水线方式、非流水线方式等。
  操作部分包括:
  · 操作的类型:一元、二元、算术或逻辑运算等。
  · 操作的性质:操作的可交换性、操作是否符合结合律及分配律等。
  · 能实现该操作的功能单元。
  作为举例,表5.4列出了功能单元库中几个功能单元的部分信息。

  表5.4 功能单元库内容举例
功能单元部分 名 称 符 号 输入个数 输出个数 面 积 时 延 实现的操作
加法器 add 2 1 60 25 +
减法器 sub 2 1 60 25 -
ALU ALU 2 1 90 25 +,-
操作部分 名 称 符号 输入个数 输出个数 结合律 操作数交换 可用功能单元
加 法 + 2 1 Y Y add, ALU
减 法 - 2 1 Y N sub, ALU

  根据调度程序所提供的操作类型集(含有一个或多个操作类型)及相关的约束条件(如时延、面积等性能约束),功能单元库给出能实现该操作类型集并满足约束条件的所有功能单元的信息。调度程序根据用户设定的约束条件,从中选取一种功能单元来实现操作类型集。例如,对于速度要求较高的设计可以选取时延最小的功能单元,对于面积要求较高的设计可以选取面积最小的单元。当然,也可以把功能单元的性能价格比作为选取功能单元的依据。