如何在Vitis中设定Kernel的频率

描述

在Vitis 统一软件平台中使用Alveo系列开发板设计加速Kernel时,系统会自动为Kernel的时钟设置默认频率.

以 xilinx_u200_qdma_201910_1 平台为例,在Vitis中选择平台时可以看到默认的时钟频率是300Mhz和500Mhz.

Kernel

在Vitis Application Acceleration Development Flow 中我们看到 --kernel_frequency选项可以用于覆盖默认的 Kernel 频率

(https://www.xilinx.com/html_docs/xilinx2020_2/vitis_doc/buildtargets1.html#ldh1504034328524)

Kernel

那么 --kernel_frequency设置在Compile阶段或者Link阶段有什么区别呢?

我们以经典 Example design“Vector Addition” 为例探索一下:

1. 打开Vitis 2020.2,创建新的 Application Project

File -> New -> Application project

2. 选择 xilinx_u200_qdma_201910_1 平台

3. 选择打开 Example Design "Vector Addition"

4.对 Hardware Flow 在Compile阶段设置“kernel_frequency” 为200MHz,然后编译工程

注意:默认的Kernel频率只允许改小,不允许改大.

Kernel

在log看到执行的命令是:

v++ --target hw --compile  --kernel_frequency 200 …

5. Compile Kernel 完成后可以在Compile Summary中看到“--kernel_frequency 200" 已经设置成功.

Kernel

在Kernel Estimate报告中,可以看到,Target Clock已经按要求设置成200Mhz. 说明 Vitis_HLS是按照200Mhz的要求来综合Kernel的代码的.

Kernel

在Link Summary中可以看到,在把Kernel合入平台后的Implementation中,目标时钟还是平台默认的300Mhz,而不是在Compile 阶段设置的200Mhz.

Kernel

同时我们也可以翻看Implemented Design的时序报告(Timing Summary)查看Kernel实际的时钟要求:

clk_out1_pfm_top_clkwiz_kernel_0_1   {0.000 1.667}   3.333   300.000               

6. 在Link阶段加上“--kernel_frequency 100" 选项

Kernel

在log看到执行的命令是:

v++ --target hw --link  -R2 --kernel_frequency 100 …

7. 完成Hardware Build之后,查看Summary,可以看到这时100Mhz Kernel 频率的设置在整个Vitis Platform Link生效, 覆盖默认的300Mhz

Kernel

和之前一样翻看Implemented Design的时序报告(Timing Summary)查看Kernel实际的时钟要求,kernel的目标频率已经被正确修改了.

clk_out1_pfm_top_clkwiz_kernel_0_1 {0.000 5.000}          10.000          100.000 

总结:

选项“--kernel_frequency" 加在Compile阶段,影响的是对Kernel做高级综合的Vitis_HLS的目标频率,不影响Kernel合入平台后的Implementation的目标频率;   

选项“--kernel_frequency" 加在Link阶段, 不会影响对Kernel做高级综合的Vitis_HLS的默认目标时钟频率,但是可以设置Kernel合入平台后的Implementation的目标频率

审核编辑 :李倩

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分