一、最佳硬件设计的编码风格
1.代码结构
2.数据类型
3.循环
4.数组
5.函数接口
二、数据类型的思考
1.绝对不要使用int,float,double类型进行综合
硬件中每个bit都是消耗寄存器/lut的,因此必须精确的指定位宽;
位宽扩展要显式扩展;
使用typedef几种管理位宽;
typedef ap_fixed<18,6> data_t;
typedef ap_uint<12> idx_t;
三、接口协议
1.被处理器调度的顶层,建议使用ap_ctrl_hs协议;
2.数据流模块,建议使用ap_ctrl_none协议,彻底的消除控制间隙
四、HLS编码设计黄金规则
1.位宽是首要的,第一等公民:每一根信号都要精确定位;
2.流是模块之间的通信语言--模块之间尽量不用数组,而是使用hls::stream;
3.循环是性能的重要部件--必须使用pipeline,变量局部化,边界固定,II=1
4.数组作为FIFO或者RAM---通过分区来匹配并行读
5.消除依赖关系
6.灵活的使用pragram

223

被折叠的 条评论
为什么被折叠?



