0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Vivado HLS中常见的接口类型

454398 来源:CSDN 博主 作者:weixin_41967965 2020-12-26 11:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Vivado HLS中常见的接口类型有:

1. ap_none

默认类型,该类型不适用任何I/O转换协议,它用于表示只读的输入信号,对应于HDL中的wire类型。

2. ap_stable

只用于输入信号,其具体实现方式仍为ap_none。它用于向Vivado HLS的综合器表明该信号在两次复位之间值是不变的。

3. ap_vld

在数据端口port_name的基础上创建一个额外的数据有效信号指示_vld。

4. ap_ack

在数据端口port_name的基础上创建一个额外的应答信号指示_ack。

5. ap_hs

使用该类型,则会同时创建额外的数据有效信号和应答信号,其效果相当于ap_vld与ap_ack之和。

6. ap_ovld

对于输入信号,其效果与ap_none是一样的。

对于输出信号,其效果与ap_vld是一样的。

对于双向(inout)类型的信号,输入使用ap_none,输出使用ap_vld进行处理。

7. ap_memory

把对数组的读写等效为对外部RAM的引用。

8. ap_fifo

把对数组、指针和参数引用的读写用FIFO的方式来实现。

9. ap_bus

把对指针和参数引用的读写用总线接口的方式来实现。

在TCL脚本中,我们也可以对接口类型进行更改。在图形化的开发界面中,可以直接在directives.tcl中进行规则的编辑,如图1所示。

图1 通过TCL配置改变端口类型

图1 通过TCL配置改变端口类型

此外,我们还可以通过在Vivado HLS中的Directive视图中选择INTERFACE来进行更改,如图2所示。

图2 接口的类型选择

例如:

void adders_io(intin1,intin2,int*in_out1)

{

*in_out1 = in1 + in2 + *in_out1;

}

这里我们使用了指针。从其本质上来说,指针是一个“双向”的类型,即它即可以做为输入,同时也可以用来输出。在默认的情况下,端口的综合结果如图3所示。

图3 默认情况下的端口综合结果

图3 默认情况下的端口综合结果

如果按照图1中的示例对端口类型进行指定,则C综合之后的结果如图4所示。

图4 自定义端口类型之后的端口综合结果

图4 自定义端口类型之后的端口综合结果

在图1的示例中,我们指定了端口的类型,所以对比图3与图4,可以看出,端口in1和in2的类型从默认的ap_none变为自定义的ap_vld,并且分别具有了对应的数据有效指示位in1_ap_vld和in2ap_vld。

一、Block-level接口协议(块级接口协议,与函数本身相关联,不与任何数据端口相关联)

Block-Level Interface端口:
顾名思义,Block端口的作用就是用来控制Block的操作。它在c参数中没有直接的对应,但是它对应了c函数的调用/返回过程。默认Block端口都会加上,如果不需要,可以对函数顶层设置ap_none。

ap_ctrl_none:没有块级I/O控制协议

ap_ctrl_chain:它同ap_ctrl_hs几乎一样,除了多出一个输入信号ap_continue,它可以使得下游模块控制上游模块的运行/终止。不过这种模式比较不常用,所以有兴趣的读者,可以自己去研究相关的文档。

ap_ctrl_hs:块级I/O控制握手协议,我们已经采用的(ap_start,ap_ready,ap_idle,ap_done)

ap_ctrl_hs是默认的端口类型,它综合出来的端口会有额外的4个系统控制信号,如下所示:
图片居中使用:

o4YBAF9uImKAXuooAAB5NwFc8lM104.png

其端口行为时序如下:

o4YBAF9uImWAcPaUAAILFJ4vGe8191.png

在ap_rst释放后,ap_start高电平启动模块的运行,然后ap_idle立即拉低表明模块不再空闲。

ap_ready拉高表明本模块已经准备好接收新的输入,不过它的行为会稍微有些复杂,在non-pipelined实现中,ap_ready和ap_done会同时拉高;在pipelined实现中,它可能会随时拉高。

o4YBAF9uImiAHBsxAAFmYJIe09Y263.jpg

二、Port-level接口协议

Port端口会跟c的参数有直接的对应关系。按照c参数的不同,标量,数组,指针,HLS综合后的rtl端口也有很多中不同的类型可供选

a) ap_ovid :一般用于in-out指针

b) ap_none

c) ap_hs:包括ap_vld(使能)ap_sck(应答)

其中Port level是我们需要重点关注的,它又可以细分为4中类型:(出处:http://xilinx.eetrend.com/blog/9935 )

A. AXI4-Interface:支持Stream,Lite,Full共3中类型
B. NO I/O协议:无端口协议
C. Wire Handshakes:握手协议
D. Memory Interface:内存访问型的端口协议

各种rtl端口协议和c参数类型的对应关系如下:

pIYBAF9uImmAc8N9AADCuQ0I0mE194.jpg


o4YBAF9uImuAZZA3AADoB9bmNsg287.png

三、其他

1.可以IO口添加寄存器,目的是可以控制输入输出波形。(添加寄存器条件是要配置成:ap_hs)


2.可以对设计添加全局使能端口。

pIYBAF9uIneAfnkSAANp9Wu6l2Y865.png

编辑:hfy


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Vivado
    +关注

    关注

    19

    文章

    846

    浏览量

    70477
  • HLS
    HLS
    +关注

    关注

    1

    文章

    133

    浏览量

    25600
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工业网关的IO接口有哪些类型

    工业网关的I/O接口类型多样,主要分为数字I/O、模拟I/O、串行通信接口、工业总线接口、以太网接口、无线通信接口以及专用
    的头像 发表于 12-02 09:27 128次阅读

    五种HDMI接口类型介绍

    我们都知道USB接口有很多类型,然而熟悉的HDMI接口,它也有很多不一样的接口,本文将围绕HDMI的不同接口类型进行解析。
    的头像 发表于 10-28 16:11 3593次阅读
    五种HDMI<b class='flag-5'>接口类型</b>介绍

    一文认全常见光纤接口

    在光通信系统中,光纤接口是连接光纤与设备、光纤与光纤的关键部件,其性能直接影响光信号的传输质量与链路稳定性。无论是数据中心、电信网络,还是安防监控、工业控制等场景,都离不开高质量的光纤接口与科学的选型搭配。本文将通过常见
    的头像 发表于 10-24 18:37 369次阅读

    超详细的工业相机常见的数据接口类型分析

    工业相机作为机器视觉系统中的核心组成部分,其数据接口更是核心枢纽的存在,将直接决定系统的速度、稳定性与扩展能力等。面对多样接口,你是否也在为选型而纠结?今天小编将深入解析每类数据接口的特点、优势以及
    的头像 发表于 10-11 17:00 758次阅读
    超详细的工业相机<b class='flag-5'>常见</b>的数据<b class='flag-5'>接口类型</b>分析

    如何在Unified IDE中创建视觉库HLS组件

    最近我们分享了开发者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vitis 传统 IDE)和开发者分享|AMD Vitis HLS 系列 2:AMD
    的头像 发表于 07-02 10:55 1136次阅读
    如何在Unified IDE中创建视觉库<b class='flag-5'>HLS</b>组件

    使用AMD Vitis Unified IDE创建HLS组件

    这篇文章在开发者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vitis 传统 IDE) 的基础上撰写,但使用的是 AMD Vitis Unified IDE,而不是之前传统版本的 Vitis HLS
    的头像 发表于 06-20 10:06 1931次阅读
    使用AMD Vitis Unified IDE创建<b class='flag-5'>HLS</b>组件

    如何使用AMD Vitis HLS创建HLS IP

    本文逐步演示了如何使用 AMD Vitis HLS 来创建一个 HLS IP,通过 AXI4 接口从存储器读取数据、执行简单的数学运算,然后将数据写回存储器。接着会在 AMD Vivado
    的头像 发表于 06-13 09:50 1289次阅读
    如何使用AMD Vitis <b class='flag-5'>HLS</b>创建<b class='flag-5'>HLS</b> IP

    同惠TH2832精密LCR数字电桥传输接口类型

    详细解析TH2832的传输接口类型及其应用场景,为使用者提供技术参考。   一、核心传输接口类型与功能 TH2832精密LCR数字电桥的接口设计兼顾灵活性和专业性,主要包含以下几类核心传输接口
    的头像 发表于 05-16 17:35 610次阅读
    同惠TH2832精密LCR数字电桥传输<b class='flag-5'>接口类型</b>

    Vivado HLS设计流程

    为了尽快把新产品推向市场,数字系统的设计者需要考虑如何加速设计开发的周期。设计加速主要可以从“设计的重用”和“抽象层级的提升”这两个方面来考虑。Xilinx 推出的 Vivado HLS 工具可以
    的头像 发表于 04-16 10:43 1356次阅读
    <b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>设计流程

    全面解析德索 M12 航空插座型号:从接口类型到应用场景

    不同型号的德索M12航空插座在接口类型、电气参数、外壳材质与防护等级等方面各有特点,适配于不同的应用场景。在实际选型过程中,用户需要综合考虑多方面因素,充分发挥德索M12航空插座的性能优势,为设备的可靠运行提供坚实保障。
    的头像 发表于 04-08 10:10 675次阅读
    全面解析德索 M12 航空插座型号:从<b class='flag-5'>接口类型</b>到应用场景

    LCR测试仪数据传输接口类型选型指南

    将深入探讨LCR测试仪的主流数据传输接口类型,并提供详细的选型指南和实际应用案例。 一、数据传输接口的核心作用 LCR测试仪通过测量元件的电感(L)、电容(C)、电阻(R)及衍生参数(如Q值、D值、ESR等),为元件选型、质量控制
    的头像 发表于 04-01 15:16 650次阅读
    LCR测试仪数据传输<b class='flag-5'>接口类型</b>选型指南

    监控摄像头的接口类型

    监控摄像头的接口类型多样,主要可以分为以下几类: 1 Power接口 Power接口为电源输入接口,外部电源给摄像机供电的接口,一般为12V
    的头像 发表于 02-14 18:10 9433次阅读
    监控摄像头的<b class='flag-5'>接口类型</b>

    射频电路中常见的元器件封装类型有哪些

    射频电路中常见的元器件封装类型有以下几种: 表面贴装技术(SMT)封装 方型扁平式封装(QFP/PFP):引脚间距小、管脚细,适用于大规模或超大型集成电路,可降低寄生参数,适合高频应用,外形尺寸
    的头像 发表于 02-04 15:22 1216次阅读

    常见MPU接口类型及特点

    微处理器单元(MPU)是计算机系统中的核心组件,负责执行程序指令和处理数据。MPU接口是连接MPU与其他系统组件(如内存、输入/输出设备等)的桥梁。以下是一些常见的MPU接口类型及其特点: 1.
    的头像 发表于 01-08 09:43 1524次阅读

    光纤通信接口类型都有哪些

    光纤通信接口类型众多,每种接口都有其特定的应用场景和优缺点。以下是一些常见的光纤通信接口类型: 一、主要接口类型 SC
    的头像 发表于 12-24 10:53 2937次阅读