HLS是把C/C++描述的算法 高层次综合成rtl, 实现时序和并行性。
1调度
安排用多少时钟周期,每个操作花费几个时钟周期,比如,加,乘,加+乘;
2控制逻辑提取
自动实现状态机的设计.控制逻辑与有限状态机有着紧密的联系,但并不是一一对应。
example:
3资源映射
执行某个操作用什么资源,比如在某个时钟下执行乘加操作,映射成dsp48,或者某个周期映射乘法器,加法器,bram,lut等
比如vivado 提供fft核,使用的资源如下图,
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiN2cTN1ADM4AjNyETM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
那么你可以手写fft算法,然后对比资源使用率。
综合出来的rtl无法做什么优化(根据命名方式你能猜的出来是什么含义吗?),不如更好的对C/C++算法及其测试激励进行综合指导。
ref :ug902