在编译进程 (v++
-c
) 中,您可以使用
--hls.clock
命令来指定内核频率。这样您即可对以指定频率为目标的内核进行编译,并允许 Vitis HLS 工具按指定频率来执行内核逻辑确认。虽然这只是编译的目标频率,但可提供最优化和反馈。
要使用不同于平台默认频率的其它频率来实现内核,对于采用固定时钟的平台,可使用 --clock 选项,如 识别平台时钟 中所述。生成器件二进制文件 (.xclbin) 时,可使用不同时钟频率将多个内核连接到平台。每个内核或者内核的每个独特实例 (CU) 都能够连接到指定的时钟频率或连接到多个时钟,并且不同内核可以使用不同时钟频率。
因此,内核的时钟频率管理流程如下:
- 使用 Vitis 编译器按指定频率编译 HLS 代码:
v++ -c -k <krnl_name> --hls.clock freqHz:<krnl_name>
提示:freqHz
必须以 Hz 为单位(例如,250000000Hz
表示 250 MHz)。 - 在链接期间,通过以下命令为内核中的每个时钟信号指定时钟频率或时钟 ID:
v++ -l ... --clock.freqHz <freqHz>:kernelName.clk_name
您可使用来自平台 shell 脚本的时钟 ID 或者通过指定内核时钟频率来指定 --clock
选项。指定时钟 ID 时,内核频率由平台上该时钟 ID 的频率来定义。指定内核频率时,平台会尝试通过按比例缩放某一可用 fixed
平台时钟来创建指定频率。
在某些情况下,只能实现近似时钟频率,您可指定 --clock.tolerance
或 --clock.default_tolerance
来标示可接受的范围。如果可用的固定时钟无法在可接受容限范围内进行缩放,则会发出一条警告,并且内核会连接到默认时钟。