首页 > 其他分享 >AXI-Stream

AXI-Stream

时间:2022-11-09 14:00:53浏览次数:60  
标签:PS Stream 总线 接口 AXI PL

一般来说都接口都只支持AXI或AXI-lite,AXI-stream需要去做转接

AXI4-Stream协议是一种用来连接需要交换数据的两个部件的标准接口,它可以用于连接一个产生数据的主机和一个接受数据的从机。当然它也可以用于连接多个主机和从机。该协议支持多种数据流使用相同共享总线集合,允许构建类似于路由、宽窄总线、窄宽总线等更为普遍的互联。AXI4-Stream接口的信号线定义如图1所示[1]。比较重要的信号线有:
ACLK为时钟线,所有信号都在ACLK上升沿被采样;
ARESETn为复位线,低电平有效;
TVALID为主机数据同步线,为高表示主机准备好发送数据;
TREADY为从机数据同步线,为高表示从机准备好接收数据;这两根线完成了主机与从机的握手信号,一旦二者都变高有效,数据传输开始。
TDATA为数据线,主机发送,从机接收。
TKEEP为主机数据有效指示,为高代表对应的字节为有效字节,否则表示发送的为空字节。
TLAST为主机最后一个字指示,下一clk数据将无效,TVALID将变低。
TID,TDEST,TUSER均为多机通信时的信号,这里不涉及,不予考虑。

Xilinx提供的流式IP核有很多用途,可以实现音频流、视频流、数据流到内存或者相反方向的传输。有人问了,内存是PS控制的,怎么才能把PS里DDR2的内容以Stream形式发出去呢(例如以固定速度送往DA,完成信号发生器的设计)?答案就是利用AXI总线做转换。ZYNQ的PS部分是ARM Cortex A9系列,支持AXI4,AXI-Lite总线。PL部分也有相应AXI总线接口,这样就能完成PS到PL的互联。仅仅这样还不够,需要PL部分实现流式转换,即AXI-Stream接口实现。Xilinx提供的从AXI到AXI-Stream转换的IP核有:AXI-DMA,AXI-Datamover,AXI-FIFO-MM2S以及AXI-VDMA等。这些IP核可以在XPS的IP
 Catalog窗口中看到。
AXI-DMA:实现从PS内存到PL高速传输高速通道AXI-HP到AXI-Stream的转换;
AXI-FIFO-MM2S:实现从PS内存到PL通用传输通道AXI-GP到AXI-Stream的转换;
AXI-Datamover:实现从PS内存到PL高速传输高速通道AXI-HP到AXI-Stream的转换,只不过这次是完全由PL控制的,PS是完全被动的;
AXI-VDMA:实现从PS内存到PL高速传输高速通道AXI-HP到AXI-Stream的转换,只不过是专门针对视频、图像等二维数据的。
除了上面的还有一个AXI-CDMAIP核,这个是由PL完成的将数据从内存的一个位置搬移到另一个位置,无需CPU来插手。这个和我们这里用的Stream没有关系,所以不表。
这里要和大家说明白一点,就是AXI总线和接口的区别。总线是一种标准化接口,由数据线、地址线、控制线等构成,具有一定的强制性。接口是其物理实现,即在硬件上的分配。在ZYNQ中,支持AXI-Lite,AXI4和AXI-Stream三种总线,但PS与PL之间的接口却只支持前两种,AXI-Stream只能在PL中实现,不能直接和PS相连,必须通过AXI-Lite或AXI4转接。PS与PL之间的物理接口有9个,包括4个AXI-GP接口和4个AXI-HP接口、1个AXI-ACP接口,均为内存映射型AXI接口。
上面的IP是完成总线协议转换,如果需要做某些处理(如变换、迭代、训练……),则需要生成一个自定义Stream类型IP,与上面的Stream接口连接起来,实现数据输入输出。用户的功能在自定义Stream类型IP中实现。

 

 


--------------------- 
作者:卜居 
来源:CSDN 
原文:https://blog.csdn.net/kkk584520/article/details/9290019 
版权声明:本文为博主原创文章,转载请附上博文链接!

标签:PS,Stream,总线,接口,AXI,PL
From: https://www.cnblogs.com/amxiang/p/16873390.html

相关文章

  • 流库stream
    流Stream用来以“做什么而非怎么做”的方式来处理集合流并不存储元素,,这些元素可能存储在底层的集合中,或者是按需生成的。存储的是规则流的操作不会修改其数据源,会生成......
  • AXI总线介绍
    一、AXI总线概述在Xilinx系列FPGA及其有关IP核中,经常见到AXI总线接口,AXI总线又分为三种:AXI-Lite,AXI-Full以及AXI-Stream,其中AXI-Lite和AXI-Full都是基于memorymap的形式......
  • AXI
    注:本文转自赛灵思中文社区论坛,源文链接在此。本文原作者为XILINX工程师。以下为个人译文,仅供参考,如有疏漏之处,还请不吝赐教。AXI是赛灵思器件设计中广泛使用的处理器接......
  • axios 二次封装
    importaxiosfrom"axios";importNProgressfrom"nprogress";import'nprogress/nprogress.css'constserver=axios.create({baseURL:'/api',//此处/api......
  • 使用axios请求,前端数字long类型精度问题解决方法
    今天开发遇到个问题,服务器后端的Long类型数据,传到前端会出现精度丢失,如:164379764419858435,前端会变成164379764419858430。在浏览器中做测试可知,这就是一个精度丢失的问题。......
  • parallelStream并发流线程安全问题
    parallelStream并发流线程安全问题起因公司项目中用到定时任务进行数据获取任务,由于返回数据的类型是字符串,需要进行转换,变为我们定义的类型id,在准备我们定义的类型Ma......
  • [LeetCode] 1323. Maximum 69 Number
    Youaregivenapositiveinteger num consistingonlyofdigits 6 and 9.Return themaximumnumberyoucangetbychanging atmost onedigit(6 becomes......
  • vue中使用axios获取到的Promise {<pending>}数据,无法使用的问题
    使用axios拿到后端数据后返回的是Promise {}我们可以看到数据是在[[PromiseResult]]这个Object对象中此时我们是无法获取对象的解决方法:使用async和await可以获取......
  • 【luffy】后台配置、数据库配置、User表配置、前台配置、安装axios
    目录1.关于环境变量的问题2.路飞后台配置之封装logger3.路飞后台配置之封装全局异常4.路飞后台配置之二次封装response5.路飞数据库配置1.关于环境变量的问题1.相......
  • Stream流---根据对象中的某个属性值实现去重
    User类packagecom.gao.JDK8.Stream流;importlombok.Data;importjava.util.Date;@DatapublicclassUser{privateStringname;privateStringpas......