图5.2 高层次综合示意图

  1. 编译
  高层次综合的出发点是逻辑级以上级别的行为描述,一般是由硬件描述语言用算法进行的行为描述,不含任何结构信息。通常,在行为描述中,将数字系统的操作模型限制在一些预先定义好的代数和逻辑运算类型中(例如加法、减法、比较、赋值、循环等操作类型)。若要使用其他操作模型,则需要将该操作作为函数或子程序来描述。
  如图5.2所示,高层次综合工具首先将行为特性描述经过编译转换到一种有利于高层次综合的中间表示格式。数字系统的行为特性描述由硬件描述语言编写,它的编译与计算机高级程序设计语言的编译相似。中间表示格式通常包含数据流和控制流的语法分析图或分析树,目前绝大多数的高层次综合系统用语法分析图作为中间表示格式。
  图5.3给出了一个行为描述的例子,它由一个简单的VHDL程序段所表述。其中包含赋值、加法、减法、比较等算术逻辑运算,以及while循环操作、if…then…else等结构控制操作等。
  2. 中间表示格式
  高层次综合中的语法分析图与程序设计语言分析图类似,包括抽象的操作及其性质(操作类型、操作数的可交换性等)、操作的控制相关性(执行顺序)和数据相关性(操作的输入数据和输出数据)等。
  
      图5.3 一个VHDL行为描述的例子 --example

    entity
example is
     port ( in1, in2: in integer;
      cond: in bit;
       ......
     fout: out integer
     );
     ......
    end example;

    architecture behavior of example is
     begin
      process
       variable v1, v2, v3: integer;
       ......
       v1 := in1;               ----- 1
       v2 := in2;               ----- 2
       while (v1 < v2 ) loop        ----- 3
        if ( cond ='1') then        ----- 4
           v3 := v1 + v2;         ----- 5
           v2 := in1;           ----- 6
        else
           v3 := v1 - v2;         ----- 7
        end if;
       end loop;             ----- 8
       fout <= v3;               ----- 9
     end process;
       ......
    end behavior;