规范形式 - 2021.2 Chinese

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2021-12-15
Version
2021.2 Chinese

Vitis HLS 通过转换区域来应用 DATAFLOW 最优化。赛灵思建议在此区域内部(称为“规范区域”)使用规范格式来编写代码。 数据流最优化有 2 种主要的规范形式:

  1. 适用于未内联的子函数的函数规范形式。
    void dataflow(Input0, Input1, Output0, Output1) 
    {
     #pragma HLS dataflow
     UserDataType C0, C1, C2;
     func1(read Input0, read Input1, write C0, write C1);
     func2(read C0, read C1, write C2);
     func3(read C2, write Output0, write Output1);
    }
  2. 循环主体内部的数据流。

    对于 for 循环(内部函数未内联),整型循环变量应包含:

    1. 循环头文件中声明初始值(设置为 0)。
    2. 循环条件为正数常量或常量函数实参。
    3. 按 1 递增。
    4. 数据流编译指示需位于循环内。
      void dataflow(Input0, Input1, Output0, Output1) 
      {
       for (int i = 0; i < N; i++) 
       {
       #pragma HLS dataflow
       UserDataType C0, C1, C2;
       func1(read Input0, read Input1, write C0, write C1);
       func2(read C0, read C0, read C1, write C2);
       func3(read C2, write Output0, write Output1);
       }
      }