--clock 选项 - 2022.1 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文
重要: 在嵌入式处理器平台上和含固定时钟的 Alveo™ 平台上均支持此处描述的 --clock 选项,如 管理时钟频率 中所述。

您可使用来自平台 shell 脚本的时钟 ID 或者通过指定内核时钟频率来指定 --clock 选项。指定时钟 ID 时,内核频率由平台上该时钟 ID 的频率来定义。指定内核频率时,平台会尝试通过按比例缩放某一可用 fixed 平台时钟来创建指定频率。在某些情况下,只能实现近似时钟频率,您可指定 --clock.tolerance--clock.default_tolerance 来标示可接受的范围。如果可用的固定时钟无法在可接受容限范围内进行缩放,则会发出一条警告,并且内核会连接到默认时钟。

--clock.XXX 选项提供了一种方法,可用于在链接进程中从 v++ 命令行向内核分配时钟,并定位所需的内核时钟频率源。有多种选项可供使用,且具体适用范围各不相同。优先级顺序是根据时钟选项的专用性来判定的。此处所列规则是根据从泛用到专用的顺序罗列的,专用规则优先于泛用规则:

  • 如果不指定 --clock.XXX 选项,则会对每个计算单元 (CU) 应用平台默认时钟。对于含 2 个时钟的内核,来自平台的时钟 ID 0 将分配给 ap_clk,时钟 ID 1 则分配给 ap_clk_2
  • 指定 --clock.defaultId=<id> 可为所有内核定义专用时钟 ID,从而覆盖平台默认时钟分配。
  • 指定 --clock.defaultFreqHz=<Hz> 会为所有内核定义专用时钟频率,覆盖用户指定的默认时钟 ID 和平台默认时钟。
  • 指定 --clock.id=<id>:<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]] 会向关联 CU 列表分配 1 个时钟 ID,并(可选)为 CU 分配时钟管脚。
  • 指定 --clock.freqHz=<Hz>:<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]] 会向关联 CU 列表分配指定时钟频率,并(可选)为 CU 分配时钟管脚。

--clock.defaultFreqHz

--clock.defaultFreqHz <arg>

指定默认时钟频率(以 Hz 为单位)以供所有内核使用。这样即可覆盖默认平台时钟并分配指定时钟频率作为默认值。<arg> 则被指定为时钟频率(以 Hz 为单位)。

例如:

v++ --link --clock.defaultFreqHz 300000000
提示: 在配置文件中的 [clock] 节头下可使用如下格式指定该选项:
[clock]
defaultFreqHz=300000000

--clock.defaultId

--clock.defaultId <arg>
指定 --clock.defaultId=<id> 会为所有内核定义专用时钟 ID,以覆盖平台默认时钟。<arg> 则被指定为来自目标平台上定义的某一时钟的时钟 ID,而不是默认时钟 ID。
提示: 您可使用 platforminfo -v 命令为目标平台决定可用的时钟 ID 和时钟状态,如 platforminfo 实用工具 中所述。

例如:

v++ --link --clock.defaultId 1
提示: 在配置文件中的 [clock] 节头下可使用如下格式指定该选项:
[clock]
defaultId=1

--clock.defaultTolerance

--clock.defaultTolerance <arg>

指定默认时钟容限,可采用值的形式或者默认时钟频率的百分比的形式。指定 clock.defaultFreqHz 时,您还可指定容限(值或百分比)。这样即可更新时序约束以反映接受的容限。

容限值 <arg> 可指定为整数(表示 clock.defaultFreqHz ± 指定容限);或者指定为默认时钟频率(指定为十进制值)的百分比。

重要: 不指定该选项时,默认时钟容限为 5%。

例如:

v++ --link --clock.defaultFreqHz 300000000 --clock.defaultTolerance 0.10
提示: 在配置文件中的 [clock] 节头下可使用如下格式指定该选项:
[clock]
defaultTolerance=0.10

--clock.freqHz

--clock.freqHz <arg>

指定时钟频率(以 Hz 为单位)并将其分配到关联计算单元 (CU) 的列表以及(可选)CU 上的专用时钟管脚。<arg> 指定为 <frequency_in_Hz>:<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]

<frequency_in_Hz>
定义指定的时钟频率(以 Hz 为单位)。
<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]
将定义的频率应用于指定 CU 和(可选)CU 上的指定时钟管脚。
例如:
v++ --link --clock.freqHz 300000000:vadd_1,vadd_3
提示: 在配置文件中的 [clock] 节头下可使用如下格式指定该选项:
[clock]
freqHz=300000000:vadd_1,vadd_3

--clock.id

--clock.id <arg>

指定来自目标平台的可用时钟 ID 并将其分配到关联计算单元 (CU) 的列表以及(可选)CU 上的专用时钟管脚。<arg> 指定为 <reference_ID>:<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]

<reference_ID>
定义要使用的时钟 ID(来自目标平台)。
提示: 您可使用 platforminfo 实用工具来为目标平台决定可用时钟 ID,如 platforminfo 实用工具 中所述。
<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]
将定义的频率应用于指定 CU 和(可选)CU 上的指定时钟管脚。

例如:

v++ --link --clock.id 1:vadd_1,vadd_3
提示: 在配置文件中的 [clock] 节头下可使用如下格式指定该选项:
[clock]
id=1:vadd_1,vadd_3

--clock.tolerance

--clock.tolerance <arg>

指定时钟容限,可采用值的形式或者时钟频率的百分比的形式。指定 --clock.freqHz 时,您还可指定容限(值或百分比)。这样即可更新时序约束以反映接受的容限。<arg> 指定为 <tolerance>:<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]

<tolerance>
  • 可指定为整数(表示 clock.freqHz ± 指定容限值);或者指定时钟频率(指定为十进制值)的百分比。
  • <cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]:将定义的时钟容限应用于指定 CU 和(可选)CU 上的指定时钟管脚。
<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]
将定义的时钟容限应用于指定 CU 和(可选)CU 上的指定时钟管脚。
重要: 不指定该选项时,默认时钟容限为 clock.FreqHz 的 5%。

例如:

v++ --link --clock.tolerance 0.10:vadd_1,vadd_3 
提示: 在配置文件中的 [clock] 节头下可使用如下格式指定该选项:
[clock]
tolerance=0.10:vadd_1,vadd_3