文档目录

11.4.1.4. 对象清单文件句法

HLS库对象清单文件是一个XML文件,它将库对象中的RTL模块映射到可由HLS代码调用的函数。 Intel® HLS Compiler使用清单文件中定义的属性将RTL模块集成到组件流水线中。

以下实例显示了实现双精度平方根函数的RTL模块的简单对象清单文件。RTL模块通过Verilog包装器以VHDL实现。

以下对象清单文件适用于名为my_fp_sqrt_double(第 2 行)的RTL模块,该模块通过名为my_sqrtfd(第2行)的C接口实现可调用函数。

1: <RTL_SPEC>
 2:   <FUNCTION name="my_sqrtfd" module="my_fp_sqrt_double">
 3:     <ATTRIBUTES>  
 4:       <IS_STALL_FREE value="yes"/>
 5:       <IS_FIXED_LATENCY value="yes"/>
 6:       <EXPECTED_LATENCY value="31"/>
 7:       <CAPACITY value="31"/>
 8:       <HAS_SIDE_EFFECTS value="no"/>
 9:       <ALLOW_MERGING value="no"/>
10:       <PARAMETER name="WIDTH" value="64"/>
11:     </ATTRIBUTES> 
12:     <INTERFACE>
13:       <AVALON port="clock" type="clock"/>
14:       <AVALON port="resetn" type="resetn"/>
15:       <AVALON port="ivalid" type="ivalid"/>
16:       <AVALON port="iready" type="iready"/>
17:       <AVALON port="ovalid" type="ovalid"/>
18:       <AVALON port="oready" type="oready"/>
19:       <INPUT port="datain" width="64"/>
20:       <OUTPUT port="dataout" width="64"/>
21:     </INTERFACE>
22:     <REQUIREMENTS>
23:       <FILE name="my_fp_sqrt_double_s5.v" />
24:       <FILE name="fp_sqrt_double_s5.vhd" />
25:     </REQUIREMENTS>
26:     <RESOURCES>
27:       <ALUTS value="2057"/>
28:       <FFS value="3098"/>
29:       <RAMS value="15"/>
30:       <MLABS value="43"/>
31:       <DSPS value="1.5"/>
32:     </RESOURCES>
33:   </FUNCTION>
34: </RTL_SPEC>
表 28.  对象清单文件中的元素和属性
XML元素 描述
RTL_SPEC 对象清单文件中的顶层元素。该文件中只能有一个这样的顶层元素。
功能性

定义RTL模块实现的HLS函数功能的元素。name属性内的FUNCTION元素指定函数名称。

您可能有多个FUNCTION元素,每个元素声明一个可以从 HLS组件调用的不同函数。

同一个RTL模块可以通过指定不同的参数来实现多个功能。要在同一模块使用不同参数组合,请为每个参数组合创建单独的FUNCTION标记。

ATTRIBUTES 该元素包含描述RTL模块各种特征(例如,延迟)的其他XML元素。

实例RTL模块采用一个名为WIDTHPARAMETER设置,其值为64。

请参阅ATTRIBUTES的XML元素了解更多特定于ATTRIBUTES元素的更多详细信息。

如果您使用不同模块,或使用同一RTL模块但具有不同的PARAMETER设置来创建多个基于RTL的函数,则您必须为每个函数创建单独的FUNCTION元素。

INTERFACE 该元素包含描述RTL模块接口的其他XML元素。

该实例对象清单文件显示了每个RTL模块必须提供的流接口信号(即,clockresetnivalidireadyovalidoready)。

resetn信号为低电平有效。其同步性取决于目标器件:
Intel Agilex® 7
resetn信号与时钟信号同步。有关复位信号时序的更多信息,请参阅Intel Agilex 7和 Intel Stratix 10无停顿(Stall-Free)和可停顿(Stallable)RTL模块的特定设计复位要求
Intel® Arria® 10
resetn信号与时钟信号异步。
Intel® Stratix® 10
resetn信号与时钟信号同步。有关复位信号时序的更多信息,请参阅Intel Agilex 7和 Intel Stratix 10无停顿(Stall-Free)和可停顿(Stallable)RTL模块的特定设计复位要求

信号名称必须与RTL模块属性文件中指定的信号名称相匹配。如果RTL代码和RTL模块属性文件中的信号名称不同,则在库创建期间会发生错误。

REQUIREMENTS 指定一个或多个RTL资源文件的元素(即.v.sv.vhd.hex.mif)。这些文件的指定路径与对象清单文件的位置相关。每个RTL资源文件都成为相关Platform Designer组件的一部分,这些组件与整个HLS组件相对应。

HLS库不支持.qip文件。

RESOURCES 此为可选元素,指定RTL模块使用的FPGA资源估算值。如果不指定此元素,则HLS资源估算报告中RTL模块使用的FPGA资源估算值默认为零。