0 投票
分类:FPGA | 用户: (530 分)

将设计更新为使用新的 Vitis Unified CLI 时,我发现,即使我的设计原先使用旧工具时能满足时序,更新后也无法再满足时序。

2023.1 及更低版本的 CLI:

v++ -c --platform xilinx_vck190_base_202320_1.xpfm --save-temps -g -k kernel_name kernel.cpp -o kernel.xo

HLS 编译汇总中的估算 FMax:433.84 MHz

2023.2 CLI:

v++ -c --mode hls --platform xilinx_vck190_base_202320_1.xpfm --config kernel.cfg

HLS 编译汇总中的估算 FMax:78.72 MHz

设计中的唯一变更是使用新的命令行进行 v++ 编译。

1个回答

0 投票
用户: (380 分)
在 2023.2 中,指定“v++ -c --mode hls”时若搭配 platform 而非 clock,则会从平台读取默认时钟频率,但是在将 hls.clock 选项传递给 Vitis HLS 时会缺少单位 (MHz)。由于没有单位,因此会将该值视为以 ns 为单位的周期来处理。

 此问题将在 2024.1 版本中得到修复。

如果指定 platform 而非 clock,那么您将在 v++ 输出中看到类似如下消息:

INFO: [v++ 82-10520] No user clocking directives found, hence PL frequency is being inferred from the platform. 312.500000 will be used as PL frequency

hls_compile.log 将显示类似如下消息:

INFO: [HLS 200-1465] Applying ini 'clock=312.500000' at /kernel/hls/config.cmdline(7)

如果没有单位,则会将其视为以 ns 为单位的周期来处理。

变通方法是用户显式指定 --freqhz 选项(请勿在 config 文件中同时指定 platform 选项和 hls.clock - 如果同时指定 platform 和 hls.clock,那么 HLS 将打印一个错误)。
欢迎来到 问答社区 ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...