一、gcd(a,b)算法使用rtl和hls实现有何种区别
ap_uint<32> gcd(ap_uint<32> opA,ap_uint<32> opB){
#pragma HLS INLINE
while(opA != opB){
#pragma HLS PIPELINE
if(opA > opB)
opA = opA - opB;
else
opB = opB - opA;
}
return opA;
}
二、如何写hls代码
1.top function和Testbench分开,放在不同files中
2.如果top function中有多个kernel function,你需要将其组合在top-function中,
并且可综合
3.testbench可以多次调用top-level fucntion,进行多次执行
4.testbench要测试top function多次传输执行,要测试完整
5.一定要进行C/RTL co-simulation联合仿真验证
6.main函数反馈zero才是代表验证通过
三、可综合设计
1.interface接口一般要么用ap_ctrl_chain和ap_ctrl_hs,一般不用ap_ctrl_none
2.ap_ctrl_none作为接口,多实用纯stream接口
四、c to rtl转换