HLS系列–High Level Synthesis(HLS)的端口综合6

HLS系列–High Level Synthesis(HLS)的端口综合6,第1张

在上一章,介绍了Block Level Interface。

本章里着重介绍下Port Level Interface的2中子类别:No I/O Protocol和Wire handshakes

HLS系列–High Level Synthesis(HLS)的端口综合6,HLS系列–High Level Synthesis(HLS)的端口综合6,第2张

下面先介绍下No I/OProtocol

ap_none:
ap_none是HLS最简单的一种接口协议类型,不论是input还是output端口,综合后都不附带额外的控制信号,在rtl里面所呈现的唯一端口就是在rtl代码里所写的。

因为ap_none非常简单,所以它不会带来额外的硬件资源效率开销。但是使用的时候,也有一些注意事项:
1、 对输入端口,数据需要在合适的时间及时准备好,并且保持一定的时间不能改变。
2、对输出端口,下级需要及时的在合适的时间读取输出的数据。

Note:ap_none不能被用来约束数组Array

ap_stable:
同ap_none类似,ap_stable也是HLS最简单的一种接口协议类型,不同的是:
1、 ap_stable只能用来约束输入端口
2、输入端口的数据必须要在整个 *** 作过程中保持恒定
3、 除此之外,ap_stable还暗示HLS综合工具,输入端口的扇出(fanout)可以不用寄存(registered)

因为上述的特性,ap_stable通常用来约束模块的配置参数输入。

接下来介绍下Wirehandshakes Protocol

ap_hs:
ap_hs中的hs是handshake的意思,顾名思义,它可以为输入输出提供额外的控制信号。除了数据端口外,它提供的控制信号有:
1、Valid signal用来指示数据何时有效
2、Acknowledge signal用来指示数据何时被取走

下面是一个例子,提供了一个输入端口in和输出端口out:

HLS系列–High Level Synthesis(HLS)的端口综合6,HLS系列–High Level Synthesis(HLS)的端口综合6,第3张

ap_ack
它是ap_hs的简化版本,它不提供vld信号。

ap_vld
它也是ap_hs的简化版本,它不提供ack信号
1、 对于input,只有in_ack输出
2、对于output,只有out_ack输入

ap_ovld
它也是ap_hs的简化版本
1、对于输入,它等效ap_none
2、对于输出,它等效ap_vld

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2545178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存