我在vivado HLS中实现了这个循环计算。
For (i = 0; i < 59; i++){
#pragma HLS unroll
tmp = C[i];
For (j = 0; j < 3; j++){
#pragma HLS unroll
tmp = tmp + A[j][i] * B[j];
}
C[i] = tmp;
}
DSP48E利用率结果为189。
我导出这个模块并在vivado中运行合成。
DSP48利用率结果为39。
我想知道为什么结果会有很大的不同?
2条答案
按热度按时间toe950271#
请记住,Vivado HLS(高级综合)将始终提供 * 估计 *。它永远不会提供 * 准确 * 的资源利用率,因为Vivado HLS中的编译器不执行place and route。而Vivado综合提供的是实际的资源利用率。
不过,话虽如此,您提到的DSP48差异量,这是一个相当大的差异,不应该 * 发生 *。以下是我的答案列表,供您解决这个问题:
opt_design
优化。nnsrf1az2#