ZHCUBL2L January   2018  – March 2025

 

  1.   1
  2.   C7000 主机仿真
  3. 1 关于本文档
    1. 1.1 相关文档
    2. 1.2 免责声明
    3. 1.3 商标
  4. 2 主机仿真入门
    1. 2.1 系统要求
    2. 2.2 安装说明
    3. 2.3 主机仿真库版本
    4. 2.4 差异总结:主机仿真编码与原生 C7000 编码
  5. 3 一般编码要求
    1. 3.1 所需的头文件
    2. 3.2 包依赖项
    3. 3.3 示例程序
  6. 4 内在函数
    1. 4.1 类似 OpenCL 的内在函数
    2. 4.2 流地址生成器内在函数
    3. 4.3 C6000 传统内在函数
    4. 4.4 存储器系统内在函数
  7. 5 TI 向量类型
    1. 5.1 构造函数
    2. 5.2 访问器
    3. 5.3 向量运算符
    4. 5.4 打印调试函数
  8. 6 流引擎和流地址生成器
  9. 7 查询表和直方图接口
    1. 7.1 查询表和直方图数据
  10. 8 C6000 迁移
    1. 8.1 __float2_t 传统数据类型
  11. 9 矩阵乘法加速器 (MMA) 接口
  12. 10编译器错误和警告
    1. 10.1 编译器错误和警告中包含的关键术语
    2. 10.2 主机仿真特定语法
  13. 11修订历史记录
  14.   36

主机仿真特定语法

C7000 主机仿真同时引入并省略了 C7000 编译器使用的一些语法。虽然本文档通篇详细说明了这些差异,但在所有这些情况下都不能依赖主机仿真编译器发出警告和错误。这是因为 C7000 编译器允许的一些原始语法构成了合法的 C++ 代码,而主机仿真编译器则没有理由警告用户。虽然在某些情况下使用原始 C7000 编译器语法在语法上可能是正确的,但无法始终保证结果。表 10-2 列出了在将原始 C7000 语法与 C7000 主机仿真搭配使用时可能出现的主机编译器错误和警告或缺失。

表 10-2 语法更改相关的编译错误和警告
说明 示例 编译器输出
将 cl7x 转换样式构造函数语法与主机仿真配合使用
// Works with cl7x but not Host Emulation
(long8)(1,2,3,4,5,6,7,8)
与
// Recommended; works on Host Emulation and cl7x
long8(1,2,3,4,5,6,7,8)
无错误或警告。使用转换样式构造函数语法时,结果不正确或产生意外结果。
以向量作为“布尔表达式”的三元运算符 res = vec1 ? vec2 : vec3 编译器错误:“无法将 vec_type 转换为 bool”。
将重排访问器与成员数据语法结合使用 example.s0121 编译器错误:“成员不存在”。
将重排访问器与函数数据语法结合使用 example.a0121() 编译器错误:“成员函数不存在”
不对访问器使用函数语法 ...= vect.s0; 编译时错误。
在 SE/SA 参数中使用无效值 将 VECLEN 设置为负数 在运行时,主机仿真将指出哪个字段无效。