HLS 接口综合_增加协议特点

接口综合有两种,分别是 block-level interface protocolport-level interface protocol
接口综合只对顶层函数及其参数有用。
三小类:

  • 控制整个顶层函数的握手信号接口
  • 参数和指针接口
  • 返回值接口
    在这里插入图片描述
    (2)默认情况下,函数的值传递参数和指针参数会用没有 handshaking 信号的简单 wire
    ports 来实现。如果函数有返回值,输出端口的 ap_return 就会传递这个返回值,返回值的端
    口协议是 ap_ctrl_hls。

1 block-level interface protocol

(1)默认情况下,block-level interface protocol 会被自动添加到设计中,这些接口
制着整个块(即顶层函数)
,独立于任何 port-level I/O protocol。
block-level interface protocol 只作用于顶层函数或者顶层函数的返回值(不作用于顶层
函数的参数)
,该协议只有三种,分别是:ap_ctrl_hs、ap_ctrl_none、ap_ctrl_chain
ap_ctrl_hs (hand shaking )作用于函数时会产生额外几个输入输出接口,如黄色方框所示:

在这里插入图片描述
ap_start 为高表示代码块可以开始处理数据,这时
ap_idle 就为低,表明模块处于非空闲状态。
ap_ready 如果为高,表明这个模块可以接收新的数据,
ap_done 为高则表明已经处理完结果了。
在这里插入图片描述

2 port-level interface protocol

port-level interface protocol 数量较多,只作用于顶层函数的参数。
在这里插入图片描述
ap_none 是 scalar 的默认类型,表示没有接口协议。作为数据传递。
ap_stable,若要设置在芯片复位时输入才能改变则使用该模式。
另一个指针分别作为输入输出被实现,类型为 ap_ovld,该模式用于双向参数。当一个双向参数分别作为输入输出实现时,输入默认是 ap_none,输出默认是 ap_vld。
在这里插入图片描述
在这里插入图片描述
ap_hs 模式包括两种:ap_vld 和 ap_ack。ap_vld 表示输入或者输出是有效的,ap_ack 会给出一个应答信号。

常用默认模式
在这里插入图片描述

接口设置的不同

1 默认

in1 int2 默认为ap_none
inout 指针为双向,ap_ovld 并增加一个ap_vld
在这里插入图片描述

2 设置ap_vld ap_ack ap_hs

在这里插入图片描述
在这里插入图片描述

发布了415 篇原创文章 · 获赞 251 · 访问量 68万+

猜你喜欢

转载自blog.csdn.net/qq_35608277/article/details/104633923
HLS