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

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

11.4.1.8. 无停顿(Stall-Free)RTL

Intel® HLS Compiler通过不在具有固定延迟的RTL模块周围放置停顿逻辑以优化硬件资源使用和性能。

如果您有一个具有固定延迟的RTL模块,并且希望将其集成到组件管道中而不包含停顿逻辑,请确保在对象清单(object manifest)文件 (.xml) 中设置属性,如下:

  1. EXPECTED_LATENCY属性(在FUNCTION单元下)指定一个值,从而延迟等于模块中的流水线阶段数。
    重要: 不准确的EXPECTED_LATENCY值会导致RTL模块与管道的其余部分不同步,并可能导致功能性不正确的结果。
  2. FUNCTION单元下的IS_STALL_FREE属性设置为"yes"

    此设置指示 Intel® HLS Compiler避免在RTL模块周围放置停顿逻辑。此设置还告知编译器,在接受输入值之后经过EXPECTED_LATENCY属性中指定的周期数,RTL模块就会产生一个结果。无停顿逻辑将在每个周期产生一个结果,但结果会因为EXPECTED_LATENCY属性中执行的周期数而被延迟。

对于具有固定延迟的RTL模块,输出信号(ovalidoready)可以具有恒定的高值,并且输入就绪信号(iready) 可以被忽略。

无停顿的RTL模块可能会收到无效的输入信号(ivalid为低电平)。该情况下,在无效输入的周期后,模块一定会在输出EXPECTED_LATENCY周期上产生无效数据。对于无内部状态的无停顿RTL模块,您可能会发现通过模块传播无效输入很方便。如果模块具有内部状态,则该状态应该不会受到未伴随ivalid = 1的数据输入的影响。