首页 > 其他分享 >Vitis HLS 学习笔记--块级控制协议-ap_ctrl_chain/ap_ctrl_hs/ap_ctrl_none

Vitis HLS 学习笔记--块级控制协议-ap_ctrl_chain/ap_ctrl_hs/ap_ctrl_none

时间:2024-05-28 23:29:07浏览次数:11  
标签:块级 模块 高电平 ctrl ap 信号 ready

目录

1. 简介

2. 详细分析

2.1 使用场景区别

2.2 ap_continue 行为详解

2.3 ap_ctrl_chain 行为详解

3. 总结


1. 简介

块级控制协议允许硬件模块表明:

  • 何时可以开始处理数据。
  • 何时完成了数据处理。
  • 以及何时处于空闲状态,准备接受新的数据输入。

这些信号用于本模块在与其他硬件组件交互时,同步和控制硬件模块的行为。例如,ap_start信号可以触发模块开始执行操作,而ap_done信号则表明操作已经完成,输出数据可以被读取。

区分端口级I/O协议,负责管理数据的实际输入和输出。端口级I/O协议涉及到如何将数据传递给模块的输入端口,以及如何从模块的输出端口获取数据。

块级控制协议是Vitis HLS设计中的一个关键组成部分,它确保了硬件模块能够有效地同步和控制其操作流程。

2. 详细分析

2.1 使用场景区别

ap_ctrl_chain 协议和 ap_ctrl_hs 协议

  • 这两种协议用于控制驱动的TLP
  • 它们可以用于顺序执行和流水线执行。
  • ap_ctrl_chain 协议与 ap_ctrl_hs 类似,但它增加了一个 ap_continue 信号,允许下游模块控制上游模块的运行或终止

ap_ctrl_none 协议

对于数据驱动的TLP,必须使用 ap_ctrl_none 协议。

ap_ctrl_none 没有握手信号 ap_start、ap_idle、ap_ready 和 ap_done。这允许硬件模块完全由数据可用性来驱动,而不是由控制信号来驱动。

注:可以观察到 ap_ctrl_none 有 ap_start、ap_idle、ap_ready 和 ap_done 等信号,但会被设为高电平并且会被优化掉。

2.2 ap_continue 行为详解

使用示例说明,ap_continue 信号的行为:

  • 内核的第 1 项传输事务完成后,第 2 项传输事务立即启动,因为 ap_continue 为高电平状态,且 ap_done 为高电平状态。
  • 内核的第 2 项传输事务结束后将停止,直至 ap_continue 断言为高电平有效为止。

图片引用自《UG1399》

2.3 ap_ctrl_chain 行为详解

时序图会在复位后显示以下行为:

1. ap_start 变高电平,模块激活。

2. ap_idle 立即变为低电平,退出空闲状态。

3. ap_start 信号必须保持处于高电平状态,直至下游模块 ap_ready 信号传递高电平状态。当 ap_ready 达到高电平状态后:

  • 如果 ap_start 保持高电平,设计将启动下一项传输事务。
  • 如果 ap_start 变为低电平,设计将完成当前传输事务,然后停止操作。

4. 本模块可读取输入端口上的数据(来自上游模块)。

5. 本模块可将数据写入输出端口(传递至下游模块)。
注释:输入和输出端口还可指定独立于控制协议的端口级 I/O 协议。

6. 当模块完成操作后,ap_done 输出会变为高电平状态。
注释:如果存在 ap_return 端口,那么当 ap_done 处于高电平状态时,此端口上的数据将变为有效。因此,ap_done 信号还用于指示 ap_return 输出上的数据有效。

7. ap_continue 反压信号解释:

  • 如果 ap_continue 为高电平,且 ap_done 也为高电平,那么内核将继续操作。
  • 如果下游块无法接收新数据输入,则下游模块控制 ap_continue 保持低电平,控制 ap_done 信号保持高电平状,直到下游模块处理完毕,控制 ap_continue 变为高电平状态后继续执行。

8. ap_ready 信号解释:

  • 下游块的 ap_ready 信号可直接驱动 ap_continue 信号。
  • ap_ready 信号处于不活动状态,直至设计开始操作为止。
  • 在非流水打拍设计中,ap_ready 信号与 ap_done 同时断言有效。
  • 在流水打拍设计中,当 ap_start 采样结果为高电平后,ap_ready 信号可能在任意周期变为高电平状态。这取决于设计的流水打拍方式。
  • 如果 ap_start 信号为低电平状态,而 ap_ready 为高电平状态,那么设计将持续执行操作,直至 ap_done 变为高电平状态后停止操作。
  • 如果 ap_start 信号为高电平状态,且 ap_ready 为高电平状态,那么下一项传输事务将立即启动,且设计将继续操作。

9. ap_idle 信号解释:

  • 用于指示设计何时处于空闲且不执行操作状态。
  • 如果 ap_start 信号为低电平状态,而 ap_ready 为高电平状态,那么设计将停止操作,而 ap_idle 信号将在达成 ap_done 后,再经过 1 个周期后变为高电平状态。
  • 如果 ap_start 信号为高电平状态,且 ap_ready 为高电平状态,那么设计将继续操作,且 ap_idle 信号保持处于低电平状态。

3. 总结

当设计硬件模块时,块级控制协议是至关重要的组成部分。这些协议允许模块同步和控制其操作流程,包括何时开始处理数据、何时完成数据处理以及何时处于空闲状态准备接受新的数据输入。其中,ap_ctrl_chain 和 ap_ctrl_hs 协议用于控制驱动的TLP,可以用于顺序执行和流水线执行。而 ap_ctrl_none 协议适用于数据驱动的TLP,它不包含握手信号,完全由数据可用性来驱动模块操作。

标签:块级,模块,高电平,ctrl,ap,信号,ready
From: https://blog.csdn.net/DongDong314/article/details/139252846

相关文章

  • 4 SAP前台操作手册-MM模块-采购管理-采购申请创建、修改、显示-ME51N ME52N ME53N
    0总体说明SAP实施项目中,到了第3个阶段-系统实现,在这个阶段,因为蓝图汇报已经结束,配置也差不多完成了,自开发还在进行中,SAP标准功能下,可以进行基础业务的前台操作了,在实现阶段的尾端,客户指定的关键用户(俗称KU-KeyUser)会进行前台业务操作和练习,提高熟练程度,同时需要在外部SAP顾......
  • 2 SAP前台操作手册-MM模块-采购管理-(标准/委外/寄售)采购信息记录创建、修改、显示、
    0总体说明SAP实施项目中,到了第3个阶段-系统实现,在这个阶段,因为蓝图汇报已经结束,配置也差不多完成了,自开发还在进行中,SAP标准功能下,可以进行基础业务的前台操作了,在实现阶段的尾端,客户指定的关键用户(俗称KU-KeyUser)会进行前台业务操作和练习,提高熟练程度,同时需要在外部SAP顾......
  • Apache Log4j2-RCE-CVE-2021-44228
    ApacheLog4j2-RCE-CVE-2021-44228基本信息CVE编号:CVE-2021-44228CVSS:CVSS2.0/AV:N/AC:M/Au:N/C:C/I:C/A:C漏洞类型:远程命令执行影响产品:Apache影响版本:ApacheLog4j2.x<=2.14.1<=Log4j2.15.0-rc1漏洞描述​log4j支持JNDI协议。​ApacheLog4j通过定义每一条......
  • 【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service
    在使用AppService服务部署业务应用,因为有些第三方的接口需要调用者携带TLS/SSL证书(X509Certificate),在官方文档中介绍了两种方式在代码中使用证书:1)直接使用证书文件路径加载证书2)从系统的证书库中通过指纹加载证书本文中,将分别通过代码来验证以上两种方式. 第一步:使用P......
  • uniapp实现PDA扫码(广播模式)
    1.进入开发者模式查看PDA的广播动作和广播标签2.在uni-app项目里新建一个公共组件就叫pda-scan吧,放到公共组件components中,目录:components/pda-scan/pda-scan.vue<template> <view> </view></template><scriptsetup>import{onShow,onHide,onLoad,onUnload}from......
  • SAP:REUSE_ALV_LIST_DISPLAY 函数实现此类型ALV
    *&Report-1类型程序的主要功能是通过WRITE语句为用户提供方便的报表数据.*&与此功能类似的就是利用FUNCTIONALV创建的报表。利用*&REUSE_ALV_LIST_DISPLAY函数实现此类型ALV。*&---------------------------------------------------------------------**&Report......
  • SAP: REUSE_ALV_GRID_DISPLAY 函数实现此类型ALV
     *&Report-1类型程序的主要功能是通过WRITE语句为用户提供方便的报表数据.*&与此功能类似的就是利用FUNCTIONALV创建的报表。利用*&REUSE_ALV_GRID_DISPLAY函数实现此类型ALV。*----------------------------------------------------------------------**&-----......
  • Caused by: org.apache.catalina.connector.ClientAbortException: java.io.IOExcepti
    错误描述Causedby:org.apache.catalina.connector.ClientAbortException:java.io.IOException:你的主机中的软件中止了一个已建立的连接。发生场景ApiFox发起请求,接口内容是下载Excel文件,数据比较大5w条,在请求完之后发生此错误。但是在线上环境并没有这种情况,后来想了想......
  • hadoop学习之MapReduce案例:输出每个班级中的成绩前三名的学生
    hadoop学习之MapReduce案例:输出每个班级中的成绩前三名的学生所要处理的数据案例:1500100001施笑槐,22,女,文科六班,4061500100002吕金鹏,24,男,文科六班,4401500100003单乐蕊,22,女,理科六班,3591500100004葛德曜,24,男,理科三班,4211500100005宣谷芹,22,女,理科......
  • SAP: ALV GRID 控制之 单元格按钮
    工作区域(或内部表)“GT_SFLIGHT”不是扁平的,或者包含参考或内部表作为组件。Isnotflat,orcontainsReferenceorinternaltablesascomponentsorinternaltablesascomponents.Ascomponents.解决方式:将SELECT*FROMSFLIGHTINTOTABLEgt_sflightUPTO......