HLS中pragma的归纳总结(入门级)

Vitis High-Level Synthesis (HLS) 是Xilinx公司推出的一款基于C++等高级语言的开发工具,由Vivado HLS升级而来,它能够将高级语言转化为RTL语言,目的是针对大数据、AI、云等新兴领域,面向软件开发者,加快开发和验证速度。就三五年内而言,其在resource、latency、timing等方面必然是比不上直接进行RTL设计,但是它的优势在于极大的提高了开发、验证效率,大幅度降低了上手和开发的时间成本。
当然,现在的HLS工具还不能完美的直接将C++转化为RTL,需要coder在代码设计过程中具有一定的硬件思维,同时加入合理的optimization directives(HLS pragma),使结果更加符合预期。
下面介绍了一些directive,仅供参考,当然在手册ug902中还能找到更加详细的介绍,在github中的Vitis Libraries中还能看到大量的应用实例。

  1. unroll,如下代码所示,unroll是将for循环内的代码展开成8份,也相当于使用8倍的资源去实现这个结构。factor指定的unroll份数必须是可以被循环次数整除的数。factor也可以省略,default时unroll份数就是循环次数。
for(int i=0;i<16;i++){
#pragma HLS unroll factor=8
  x[i] = y[i];
}
  1. 一个比较经
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值