您可使用来自平台 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。
例如:
v++ --link --clock.defaultId 1
[clock]
节头下可使用如下格式指定该选项:[clock]
defaultId=1
--clock.defaultTolerance
--clock.defaultTolerance <arg>
指定默认时钟容限,可采用值的形式或者默认时钟频率的百分比的形式。指定 clock.defaultFreqHz
时,您还可指定容限(值或百分比)。这样即可更新时序约束以反映接受的容限。
容限值 <arg> 可指定为整数(表示 clock.defaultFreqHz
± 指定容限);或者指定为默认时钟频率(指定为十进制值)的百分比。
例如:
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(来自目标平台)。
-
<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