图5.7 数据通路的基本硬件模块

  功能单元是数据通路中用于实现一种或多种操作类型的组合逻辑单元。该功能单元有一个或多个选择输入(由控制器提供相应的选择输入信号),用以选择所要完成的操作类型。数据通路中的功能单元可以是半导体厂商提供的已经设计好的单元,也可以是下一步将要设计的假定单元。存储单元包括寄存器和内存单元,其中的使能输入与控制器相连,以控制其读/写操作。互联网包括连线、多路器和总线,其中的选择输入与控制器相连,用于选择输入数据。这些模块互连并由控制器提供控制信号后,即完成了一个实现预定功能的寄存器传输级设计。
  在寄存器传输级,控制器被表示为一个有限状态机(或微程序)。这个有限状态机(或微程序)通过虚设的时钟周期(称为控制步)来组织数据通路上的执行顺序。每个控制步中包含一组宏操作,每个宏操作都给出数据通路中各模块所需的控制信号(选择信号、使能信号…)。
  图5.8给出一个控制器和数据通路的例子:数据通路包括1个多路器和3个寄存器;控制器含2个控制步。
图5.8 控制器与数据通路
  

第1步的宏操作是:寄存器R1与R2的内容相加,结果存入R1中。即:
   (1) 控制器向寄存器R2发出使能信号,允许读寄存器R2中数据;
   (2) 控制器向多路器发出选择信号;选择第1输入端数据;
   (3) 控制器向功能单元FU发出选择信号,进行加法运算;
   (4) 控制器向寄存器R1发出使能信号,将数据写入寄存器R1。
  第2步的宏操作是:寄存器R1的内容减去R3的内容,结果存入R2中。即:
   (1) 控制器向寄存器R3发出使能信号,允许读寄存器R3中数据;
   (2) 控制器向多路器发出选择信号;选择第2输入端数据;
   (3) 控制器向功能单元FU发出选择信号,进行减法运算;
   (4) 控制器向寄存器R2发出使能信号,将数据写入寄存器R2。
  上述例子已经有了寄存器和控制步的概念,属于寄存器传输级的描述。如果它是高层次综合工具的综合结果,需要作为寄存器传输级综合工具的输入,则应当用硬件描述语言(例如VHDL)形式表述,以便各个工具之间的交流。
  结果反编译正是用于这个目的。它根据高层次综合结果产生相应的结构描述,用作较低层次设计工具的输入,也可作为设计文档保存。