规范主体 - 2021.2 Chinese

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

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

在规范区域内,规范主体应遵循如下准则:

  1. 使用局部非静态标量或阵列/指针变量,或者使用局部静态串流变量。局部变量是在函数主体(对应函数中的数据流)或循环主体(对应循环中的数据流)内声明的。
  2. 在以下条件下,函数调用序列向前馈送数据(不含反馈)的方式为从某一函数到按词法顺序位居其后的另一函数:
    1. 变量(标量除外)只能包含 1 个读进程和 1 个写进程。
    2. 如果使用稍后变为通道的局部变量,请先使用写进程,再使用读进程(生产者位于使用者之前)。
    3. 如果使用函数实参,请先使用读进程,再使用写进程(使用者位于生产者之前)。设计必须保留所有主体内部反依赖关系。
    4. 函数返回类型必须为空。
    5. 通过变量的不同进程间不得存在任何循环进位依赖关系。
      • 在规范循环内部(即,某一迭代编写的值由后一迭代读取)。
      • 在连续调用顶层函数之间执行(即,某一迭代编写的输入输出实参由后一迭代读取)。
    6. 数据流区域内部不支持任何形式的控制,用于定义进程的函数调用除外。
      • conditional、loop、return、goto 和 throw 皆无。
      • 围绕数据流的唯一控制是:
        • 仅用于循环,含有无符号整数归纳变量,该变量初始化为 0,按 1 递增,与非负常量或无符号函数输入进行比较,此函数包含循环中的数据流,其中不含任何除变量声明外的其它语句。通常,在该级别只能声明循环主体内使用的串流。