在之前HLS的基本概念1里有提及,HLS会把c的参数映射成rtl的端口实现。本章开始总结下HLS端口综合的一些知识。
1.HLS综合后的rtl端口大体可以分成2类:
Clock & Reset端口:
每个设计只能有一个Clock和一个Reset。可以选择增加ClockEnable端口(设置方式SoluTIon SetTIng → General → Add → Config_Interface → clock_enable)
Block-Level Interface端口:
顾名思义,Block端口的作用就是用来控制Block的 *** 作。它在c参数中没有直接的对应,但是它对应了c函数的调用/返回过程。默认Block端口都会加上,如果不需要,可以对函数顶层设置ap_none。
Port-Level Interface端口:
Port端口会跟c的参数有直接的对应关系。按照c参数的不同,标量,数组,指针,HLS综合后的rtl端口也有很多中不同的类型可供选择,这是我们讨论的重点。
2.HLS所支持的端口协议类型,以及同参数类型的对应关系:
Port-Level Interface更进一步可以细分为4中类型:
AXI4-Interface:支持Stream,Lite,Full共3中类型
NO I/O协议:无端口协议
Wire Handshakes:握手协议
Memory Interface:内存访问型的端口协议
各种rtl端口协议和c参数类型的对应关系如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)