AXI4-Stream协议总结与分析
一、协议介绍
1、AXI4_Stream:适用于高速数据流,去掉了地址项,允许无限制的数据突发传输。除了总线时钟和总线复位,其他的接口信号都是以字母T开头。
2、信号接口描述:
(1)、ACLK---------时钟源-----全局时钟信号,所有信号在主时钟信号的上升沿采样。
(2)、ARESETN------复位------低电平有效。
(3)、Tvalid-------主机数据有效信号,(区别AXI4、AXI4-Lite,AXI4_Stream去掉了地址项),由主机发出,高速从机发出的数据有效。源为master。
(4)、Tdata[31:0]--主机发出的数据,数据宽度可选,32/64/1278/256 bit。源位master。
(5)、Tkeep[3:0]---字节修饰符,用于表明Tdata相关字节的内容是否为有效数据,未被Tkeep位确认的字节为孔子杰,视为无关字节,可以从字节流中去除。源为master。
(6)、Tlast--------主机通知从机这时最后一个数据,即为数据包的边界。源为master。
(7)、Tid---------由主机发出,Identity标识符,在存在多个stream数据传输时起作用,用于识别不同的数据流。源为master。
(8)、Tready------从机发出的接收准备好信号。
二、通信机制
最重要的就是牢记只有 Tvalid & Tready == 1 时才能开始数据传输,Valid信号由数据传输源产生,Ready信号由目的源产生(来自米联客book,这句话总结的太经典了,因为在其他的AXI4总线进行数据读取时,主机也会产生Rready信号)。
因为AXI4-stream去掉了地址线(依靠Tid进行数据流识别),不涉及数据的读写通信,仅涉及简单的发送与接收,减少了传输延时。
三、举例说明
reg [:]S_AXIS_tdata;//发送数据
reg S_AXIS_tlast; //突发传输的结尾
reg S_AXIS_tvalid; //本次传输有效
wire FCLK_CLK0; //传输时钟
wire s_axis_aclk;
wire s_axis_aresetn;
wire [:]S_AXIS_tkeep;//4个byte皆有效
wire S_AXIS_tready; //接收来自从机的ready信号
wire [:]gpio_rtl_tri_o;
wire [:]peripheral_aresetn;
reg [:] state;//状态机 assign S_AXIS_tkeep = 'b1111;
assign s_axis_aclk = FCLK_CLK0;
assign s_axis_aresetn = peripheral_aresetn; always@(posedge FCLK_CLK0)
begin
if(!peripheral_aresetn) begin
S_AXIS_tvalid <= 'b0;
S_AXIS_tdata <= 'd0;
S_AXIS_tlast <= 'b0;
state <=;
end
else begin
case(state)
: begin //等待允许发送且接收到来自从机的ready信号
if(gpio_rtl_tri_o&& S_AXIS_tready) begin
S_AXIS_tvalid <= 'b1; //主机PL将valid位置一
state <= ;
end
else begin
S_AXIS_tvalid <= 'b0;
state <= ;
end
end
:begin //如果从机准备好,开始数据发送
if(S_AXIS_tready) begin
S_AXIS_tdata <= S_AXIS_tdata + 'b1;
if(S_AXIS_tdata == 'd510) begin //发送完第511个数据之后置位last信号
S_AXIS_tlast <= 'b1;
state <= ;
end
else begin
S_AXIS_tlast <= 'b0;
state <= ;
end
end
else begin
S_AXIS_tdata <= S_AXIS_tdata;
state <= ;
end
end
:begin //等待从机接收完毕,准备下一次船传输
if(!S_AXIS_tready) begin
S_AXIS_tvalid <= 'b1;
S_AXIS_tlast <= 'b1;
S_AXIS_tdata <= S_AXIS_tdata;
state <= ;
end
else begin
S_AXIS_tvalid <= 'b0;
S_AXIS_tlast <= 'b0;
S_AXIS_tdata <= 'd0;
state <= ;
end
end
default: state <=;
endcase
end
end
AXI4-Stream协议总结与分析的更多相关文章
- 学习笔记20151211——AXI4 STREAM DATA FIFO
AXI4 STREAM DATA FIFO是输入输出接口均为AXIS接口的数据缓存器,和其他fifo一样是先进先出形式.可以在跨时钟域的应用中用于数据缓冲,避免亚稳态出现.支持数据的分割和数据拼接.在 ...
- 网络协议图形化分析工具EtherApe
网络协议图形化分析工具EtherApe 在对网络数据分析的时候,渗透测试人员往往只关心数据流向以及协议类型,而不关心具体数据包的内容.因为这样可以快速找到网络的关键节点或者重要的协议类型. Kal ...
- 协议解析Bug分析
协议解析Bug分析 源自邮件协议RPC(远程过程调用)处理的Request请求数据包的bug. 一.Bug描写叙述 腾讯收购的Foxmailclient能够作为outlookclient ...
- http协议请求流程分析
http协议请求流程分析 用户输入URL(地址链接)(http://www.baidu.com:80/tools.html)客户端获取到端口及主机名后,客户端利用DNS解析域名,首先客户端的浏览器会先 ...
- Ripple 20:Treck TCP/IP协议漏洞技术分析
本文由“合天智汇”公众号首发,作者:b1ngo Ripple 20:Treck TCP/IP协议漏洞技术分析 Ripple20是一系列影响数亿台设备的0day(19个),是JSOF研究实验室在Trec ...
- 物联网应用层协议选择和分析--MQTT、CoAP 、HTTP、XMPP、SoAP
MQTT协议 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)最早是IBM开发的一个即时通讯协议,MQTT协议是为大量计算能力有限且工作在低带宽.不 ...
- 六:分布式事务一致性协议paxos的分析
最近研究paxos算法,看了许多相关的文章,概念还是很模糊,觉得还是没有掌握paxos算法的精髓,所以花了3天时间分析了libpaxos3的所有代码,此代码可以从https://bitbucket.o ...
- PPTP协议握手流程分析
一 PPTP概述 PPTP(Point to Point Tunneling Protocol),即点对点隧道协议.该协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网,可 ...
- ARP 协议抓包分析
ARP(Address Resolution Protocol)- 地址解析分析 ARP 协议是根据IP地址获取物理地址的一个TCP/IP协议. 当PC1 想与 PC2 进行通信时,需要同时知道PC2 ...
随机推荐
- 开发电商平台用PHP语言和JAVA语言有什么区别?哪种语言更好?
现在很多行业都通过电子商务拓展业务,所以商城系统开发成为很多企业的刚性需求.一般有一点技术基础的客户应该知道目前商城系统开发主流语言有两个,PHP和Java.那么很多客户朋友会纠结是选择哪个语言开发好 ...
- aircrack-ng wifi密码破解
wifi密码破解 步骤1:查看网卡信息 ifconfig 找到你要用到的网卡 步骤2:启动网卡监听模式 airmon-ng start wlan0 我的是wlp2s0 步骤三:查看网卡变化 wlan0 ...
- [docker swarm] 从单容器走向负载均衡部署
背景 之前写过<<docker-compose真香>> 和<docker-compose.docker stack前世今生>两篇博客, 回顾一下思路: ① dock ...
- Linux-rhel-server-7.4-Mysql-5.7安装记录
解压下载的tar包: tar -xf mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar 安装一下rpm包: sudo rpm -ivh mysql-community- ...
- linux netlink通信机制简介
一.什么是Netlink通信机制 Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口. Netlink 是一种特殊的 s ...
- PowerBI系列之什么是PowerBI
大家好,我是小黎子!一个专注于数据分析整体数据仓库解决方案的程序猿!今天小黎子就给大家介绍一个数据分析工具由Microsoft出品的全新数据可视化工具Power BI.微软Excel很早就支持了数据透 ...
- LeetCode初级算法--链表02:合并两个有序链表
LeetCode初级算法--链表02:合并两个有序链表 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn. ...
- Python爬取猫眼电影100榜并保存到excel表格
首先我们前期要导入的第三方类库有; 通过猫眼电影100榜的源码可以看到很有规律 如: 亦或者是: 根据规律我们可以得到非贪婪的正则表达式 """<div class ...
- 数据挖掘:关联规则的apriori算法在weka的源码分析
相对于机器学习,关联规则的apriori算法更偏向于数据挖掘. 1) 测试文档中调用weka的关联规则apriori算法,如下 try { File file = new File("F:\ ...
- PHP reset
1.函数的作用:重置数组内部指针,并返回第一个元素 2.函数的参数: @param array $array 3. 例子一: <?php $arr1 = []; $arr2 = [false, ...