HLS高层次综合设计技巧-参数和接口技巧

--共勉:尽自己绵薄之力,构建HLS高层次综合设计生态!

前言、HLS高层次代码风格
1.首先,vivado hls的代码首先必须遵循c/c++/systemc代码风格;
2.其次,在传统代码代码风格的基础下,然后做了一部分剔除后,保留一部分
不具备二义性的内容;
3.vivado hls是传统c/c++/systemc代码风格的阉割版,也就是子集合。

一、函数参数类型
1.scalar标量类型
scalar标量可以作为input数据类型,或者return,但是不能直接作为output数据类型

2.Array数组类型
Array类型可以作为input数据类型;
Array类型可以作为output数据类型;
Array类型可以作为in_out数据类型;

3.Pointer指针类型
Pointer指针类型可以作为input数据类型;
Pointer指针类型可以作为output数据类型;
Pointer指针类型可以作为in_out数据类型;


4.Refrence引用类型
Refrence引用类型可以作为input数据类型;
Refrence引用类型可以作为output数据类型;
Refrence引用类型可以作为in_out数据类型;

5.hls::stream类型(vivado hls最值得称赞的类型)
hls::stream可以作为input类型
hls::stream可以作为output类型
hls::stream不可以作为in_out类型


二、块级接口类型
1.ap_ctrl_hs块级别类型
这个是使用最多的块级别类型,使用占比90%情况;
握手类型,也称为边界约束类型。

2.ap_ctrl_none块级别类型
这个使用占比不多,因为在早期vivado hls这个类型甚至是不可综合的,
因为这种类型如果使用不当,会带来灾难,后续这个类型才支持的,
这个类型是有其存在的价值的,如果是纯数据流接口,可以使用这个接口来进行设计。

3.ap_ctrl_chain类型
这个类型是在大型系统级别的条件下才使用,在大多数情况下是不会使用的。


三、端口类型
1.AMBA的三种类型
axis类型;
axilite类型;
m_axi类型;

2.wire/reg类型
ap_none和ap_stable类型

3.握手类型
ap_ack和ap_vld和ap_ovld类型
ap_hs类型

4.内存访问类型
ap_memory和bram

5.fifo类型
ap_fifo接口

6.总线类型
ap_bus类型

--共勉:尽自己绵薄之力,构建HLS高层次综合设计生态!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值