仅对英特尔可见 — GUID: afv1552185086628
Ixiasoft
1. Intel® HLS Compiler Pro版参考手册
2. 编译器
3. C语言和库支持
4. 组件接口
5. 组件存储器(存储器属性)
6. 组件中的循环
7. 组件并发
8. 任意精度数学支持
9. 组件目标频率(Target Frequency)
10. 任务系统
11. 库
12. 高级硬件综合控制
13. Intel® High Level Synthesis Compiler Pro版参考总结
A. 高级数学源代码库
B. 支持的数学函数
C. Cyclone® V限制
D. Intel® HLS Compiler Pro版参考手册存档
E. Intel® HLS Compiler Pro版参考手册修订历史
13.1. Intel® HLS Compiler Pro版i++命令行参数
13.2. Intel® HLS Compiler Pro版头文件
13.3. Intel® HLS Compiler Pro版编译器定义的预处理器宏
13.4. Intel® HLS Compiler Pro版关键字
13.5. Intel® HLS Compiler Pro版模拟API(仅测试台)
13.6. Intel® HLS Compiler Pro版组件存储器属性
13.7. Intel® HLS Compiler Pro版循环预处理指令
13.8. Intel® HLS Compiler Pro版范围预处理指令
13.9. Intel® HLS Compiler Pro版组件属性
13.10. Intel® HLS Compiler Pro版组件默认值接口
13.11. Intel® HLS Compiler Pro版组件调用接口控制属性
13.12. Intel® HLS Compiler Pro版组件宏
13.13. Intel® HLS Compiler Pro版技术性任务系统API
13.14. Intel® HLS Compiler Pro版管道API
13.15. Intel® HLS Compiler Pro版流输入接口
13.16. Intel® HLS Compiler Pro版流输出接口
13.17. Intel® HLS Compiler Pro版存储器映射接口
13.18. Intel® HLS Compiler Pro版加载-存储单元控制
13.19. Intel® HLS Compiler Pro版任意精度数据类型
仅对英特尔可见 — GUID: afv1552185086628
Ixiasoft
11.4.1.9. HLS库的RTL模块限制和局限性
当您想要将RTL模块包含在HLS库中时会受到一些限制和约束,以确保该库在不同的用户设计中能够一致地工作。
RTL模块限制
创建RTL模块时,请确保其在以下限制内运行:
- RTL模块必须在任何通过时序分析的时钟频率下正常工作。
- 数据输入和输出大小必须与RTL模块函数签名(.h)文件中声明的参数和返回值的大小相匹配。
例如,如果您在RTL模块中使用 24位值,则将输入声明为32位,并声明函数签名以接受uint数据类型。在RTL模块中,接受32位输入但丢弃置顶的8个位。
- RTL模块无法连接到外部I/O信号。所有输入和输出信号都必须来自使用该库的HLS组件。
- RTL模块必须具有clock端口,resetn端口和握手端口,以支持数据输入和输出接口。握手信号必须被命名为ivalid,ovalid,iready和oready。
- 对应于RTL模块实例的每个函数调用都完全独立于其他实例。不共享任何硬件。
- RTL模块必须同时接收所有输入。单个ivalid输入表示所有输入都包含有效数据。
基于RTL的对象限制
在HLS库中使用RTL模块有以下限制:
- 您只能在对象清单(.xml)文件中设置RTL模块参数。
要将同一模块与具有多个参数的组合一起使用,则请为每个参数组合创建单独的FUNCTION标记。
- 通过HLS组件代码,数据输入以值的形式传递给RTL模块。
您不能将流、指针或引用作为输入传递给RTL模块。
对于流数据,首先从组件中的流提取数据,然后将提取的标量数据传递给HLS库中的 RTL模块。
将数据输入作为指针或引用传递给RTL模块会导致 Intel® HLS Compiler中出现致命错误。
- RTL模块源文件的名称不能与其他库中的对象或 Intel® HLS Compiler IP文件名称相冲突。
您在创建库时,请选择不会与其他库或编译器IP相冲突的 RTL模块名称。例如,将库名称作为您RTL模块名称的前缀。
如果存在命名冲突,则HLS组件在经过Intel Quartus Prime编译时可能会失败或导致不能正确工作的FPGA图像。
- RTL模块及其信号的名称不能与任何由支持的RTL语言定义的保留名称相冲突:Verilog、System Verilog和VHDL。
- Intel® HLS Compiler不支持.qip 文件。您必须手动解析嵌套.qip文件以创建RTL文件的平面列表。