HLS接口综合-基本介绍

Interface synthesis Overview

在这里插入图片描述
如上图所示,对于蓝色区域的C语言代码,在下方vivado生成的接口信息中,包含了代码中的四个参数in1、in2、in3以及return,这些被称为port-level interface protocol。而列表中还包含了几个我们在代码中看不见的接口参数(vivado根据接口类型自动生成的),分别是ap_start、ap_done、ap_idle、ap_ready(下面会讲分别是什么),这些参数被称为block-level interface protocol。(interface protocol表示接口协议)

Block-level Interface protocol

block-level interface protocol只能作用于函数或者函数的返回值

三种可用的protocol(协议)

  • ap_ctrl_hs (最常用的一种)
  • ap_ctrl_none
  • ap_ctrl_chain

在这里插入图片描述

ap_ctrl_hs vs. ap_ctrl_none

在这里插入图片描述
从上图的接口信息中我们可以看到,ap_ctrl_hs会生成相应的block-level 的接口信号,而ap_ctrl_none则不会生成。

block-level接口参数介绍

  • ap_start:高电位表示该模块已经可以开始处理数据(进入工作状态)
  • ap_idle:高电位表示该模块当前为空闲状态
  • ap_ready:高电位表示该模块当前可以接收新的数据
  • ap_done:高电位表示该模块操作已完成(与ap_ready同步)
信号说明
ap_start该信号控制模块执行,逻辑为1时设计开始运行。
它应保持逻辑1直到相应的输出握手ap_ready被置位。当ap_ready变高时,决定了是否继续保持ap_start置位并执行其他事物或设置ap_start为逻辑0,当前事务的结束时允许设计暂停。
如果在ap_ready为逻辑1 之前ap_start被置为低,设计有可能没有把所有输入端口读完,并可能拖延下一个输入读取操作。
ap_ready这个输出信号表明设计已经准备好接受新数据
当准备好接受新的输入时,ap_ready 信号设置为逻辑1。表明所有为这次事物的输入读已经完成。
如果设计不是流水线操作,直到下一次事物才开始执行新的读。
这个信号是用来决定何时在端口上用新的值,决定是否用一个ap_start输入信号来启动一个新的事务。
如果ap_start信号没有被设置为高,当设计在当前事务完成中所有的操作,这个信号变为低电平。
ap_done这个信号表明设计在当前的事务中完成所有的操作。输出逻辑1表明设计已经完成了这个事务的所有操作。因为在事务结束时,该信号为逻辑1还表示ap_return端口上的数据是有效的。
不是所有的函数都有函数返回值,因此并非所有的RTL设计都有一个ap_return端口
ap_idle这个信号表示设计正在操作或闲置状态(无操作)。
输出端口上用逻辑1表明是空闲状态。一旦设计开始运行,该信号为低电平。
该信号为高电平时,设计完成操作,未进行任何进一步的操作。

在这里插入图片描述
由上图中的仿真波形我们可以看到,当模块的rst信号置地以后,ap_start信号被拉高,同时ap_idle信号拉低,表示现在模块已经进入工作状态。当ap_start信号为低电位时,表示模块当前正在处理数据,同时ap_done也为低电位。当当前的数据处理完成后,ap_ready电位拉高,表示可以接受下一波数据。同时ap_done信号也被拉高,表示当前数据处理完成。

port-level interface protocol

对于输入形参

一共有两种接口

接口说明
ap_none默认类型,该类型不止用任何I/O转换协议,对应于HDL中的wire类型
ap_stable只用于输入信号,其具体实现方式仍为ap_none。它用于向Vivado HLS的综合器表明该信号在两次复位之间值是不变的。

对于双向的参数(in-out)(ap_ovld)

对于双向参数,只有一种对应的接口,即为(ap_ovld)。下面是它对应不同参数时的具体作用。

对应参数说明
输入信号其效果与ap_none是一样的
输出信号其效果与ap_vld是一样的
双向(in-out)信号输入使用ap_none处理,输出使用ap_vld处理

其他接口信号

接口信号说明
ap_vld在数据端口port_name的基础上创建一个额外的数据有效信号指示< port_name >_vld
ap_ack在数据端口port_name的基础上创建一个额外的应答信号指示< port_name >_ack
ap_hs使用该类型,则会同时创建额外的数据有效信号和应答信号,其效果相当于ap_vld与ap_ack之和

信号类型以及对应的接口支持

在这里插入图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值