Intel® 高层次综合编译器专业版Pro版: 参考手册

ID 683349
日期 12/04/2023
Public
文档目录

10.2. 内部流

您可以将HLS ihc::stream对象作为单个任务或组件中的 FIFO。

例如,以使用HLS任务ihc::stream目标对象作为FIFO为例,请查看 <quartus_installdir>/hls/examples/tutorials/system_of_tasks/internal_stream中的教程。

为了帮助您更好地理解本教程,请查看以下显示存储-加载依赖关系的图表:

该图从教程中简化而来。它从教程的32次迭代中截取了10次迭代。

该图中,i是外循环的索引,j是内循环的索引。



外循环的每次迭代都会读取前一次循环迭代写入的所有值,并向缓冲区写入一个较少的值。在此设计中,内部流的性能优于数组,因为数组必须在读取值之前分配足够的空间来存储写入的值,但内部流不需要分配此空间。

此外,内层循环的行程计数因为每个外层循环而递减一,因而数组要求的空间在第一次迭代后从来不会被填满,这样就造成面积浪费。