--clock 选项 - 2023.2 简体中文

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文
重要: 此处描述的 --clock 选项可搭配 --freqhz 一起用于管理时钟,如 管理时钟频率 中所述。

--clock 选项用于在编译 AI 引擎、HLS 内核以及链接设计期间分配时钟频率。--part 选项和 --platform 选项均支持该选项。如不提供选项,Vitis 会根据所选相应模式(如下表所示)分配默认时钟。

表 1. 分配的默认时钟
V++ -c --mode aie -c --mode hls -c -k -l
--part AIE PLL 频率的 ¼ 默认 HLS (100 MHz) 不适用 针对 Versal 器件分配 300 MHz
--platform 默认平台时钟频率 默认平台时钟频率 默认平台时钟频率 默认平台时钟频率

不同 v++ -c 模式和 v++ -l 有不同时钟指令。--freqhz 是 2023.2 中引入的全新时钟指令,可在所有 v++ -c 模式和 v++ -l 下使用,以帮助您在所有不同模式下都能使用单一时钟指令。旧指令仍受支持。

有两种方法可搭配使用 --clock 选项来将内核连接到指定频率:

  1. --clock.freqhz--freqhz:该选项用于将指定时钟频率从平台连接至内核。如果平台有一个或多个时钟处于指定的频率,则将选中其中之一。如果平台不含指定频率,则可使用平台参考时钟生成指定频率。
  2. --clock.id该选项也可用于将指定时钟频率连接到内核;但在该选项中,时钟被视为时钟源。该选项可用于在同一时钟源上连接单个或多个内核。请参阅以下示例以获取详细信息。
注释: 您可使用 platforminfo 实用工具来为目标平台决定可用时钟 ID,如 platforminfo 实用工具 中所述。

要确定 xilinx_vck190_base_bdc_202320_1.xpfm 平台中可用的固定时钟,请执行以下操作:

Plaftorminfo ../ xilinx_vck190_base_bdc_202320_1.xpfm

请参阅报告中的“Clock Information”(时钟信息):

=================
Clock Information
=================
Default Clock Index: 2
Clock Index: 0
Frequency: 104.166666
Clock Index: 1
Frequency: 156.250000
Clock Index: 2
Frequency: 312.500000
Clock Index: 3
Frequency: 78.125000
Clock Index: 4
Frequency: 208.333333
Clock Index: 5
Frequency: 416.666666
Clock Index: 6
Frequency: 625.000000

假设您要将内核 X 连接到 312.5 MHz 并将内核 Y 连接到 625.00 MHz,并且这两个频率均在平台内生成。建议在编译和链接阶段,使用 --freqhz 选项将特定时钟分配给内核 X 和 Y。

在编译模式(v++ -c --mode aiev++ -c --mode hls)下,可按如下所示在 CLI 内使用 --clock 选项 --freqhz

v++ -c --mode hls --platform <xx.xpfm> --freqhz=312500000 --config ./X.cfg

v++ -c --mode hls --platform <xx.xpfm> --freqhz=625000000 --config ./Y.cfg

在配置文件中可按如下方式提供该项。

针对 X.cfg 文件:

[clock]
freqhz=312500000 

针对 Y.cfg 文件:

[clock]
freqhz=625000000

在链接模式 (v++ -l) 下,语法为 <cu>.<clk_pin_name>

在 CLI 中,此命令可用作为:

v++ -l -t hw --platform ./<.xpfm> ./libadf.a ./Y.xo --freqhz=312500000:X.clk --freqhz=625000000:Y.clk -s --config ./system.cfg -o fixed.xsa
注释: 关键部分是 --freqhz=312500000:X.clk --freqhz=625000000:Y.clk

在配置文件中可按如下方式提供该项:

[clock]
freqhz=312500000: X.clk
freqhz=625000000 : Y.clk

此处,clk 是内核的管脚名称。

注释: clock 指令可在 CLI 中或在配置文件中使用。

--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 上的指定时钟管脚。
重要: 不指定该选项时,默认时钟容限为指定频率的 5%。

例如:

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