AXI4协议的物理模型
AXI4的物理传输模型
1、AXI4的组成部分
首先说一下文章是学习《基于AXI4的IP核互联的设计与验证》莫锦辉的学习笔记。文中大部分的知识都是来源于这篇论文,这里学习以便理解AXI4协议。
AXI4是由五个通道构成的:写地址、读地址、写数据、读数据和写数据响应。主机和从机的概念具有区分。每个通道的作用的在后面的传输流程中会有具体的介绍。这里的通道应该是一些小型总线。具体的信号在设计中会偶具体的介绍。
2、AXI4的数据传输流程
AXI4的数据传输采用的是猝发机制,所谓猝发,就是一方发出申请,等待另一方回答。回答后就传输数据。类似于打电话,有一个人打,一个人接。打的人要等待接电话的,接电话的要有人打电话。这里比较特殊的就是写数据响应的发出。这个信号是用来确认主机的数据写入是否成功。但是没有从机的写数据响应,因为主机的数据用户可以直接访问来验证。这里也是区分主从机的一个方法:主机为直接操控、从机为黑盒子。
五个通道的概念解释了AXI4传输数据的基本概念,但是每个通道内部的传输方法还是需要补充的。这里就需要考虑AXI4通道的握手协议。
这里做个简单假设,如果每个通道就是一个时钟线和数据线,也就是IIC协议。这样其实在一个从机的时候是可以工作的。每个通道都可以传输数据。显然,对于需要实现多个设备之间的传输的AXI4总线协议是不够的。这里需要一个可以表示当前通道的工作状态的信号。由于传输的对象只有两个:主机和准备连接的从机,所以需要两个信号来标注。主机的信号为VALID,从机的信号为READY。两个信号均采用高电平有效。即高电平时表示一方准备完成。对于数据位INFORMATION的操作也是随着状态变化而变化的。
VALID有效,数据位开始占用。此时数据已经保持在数据线内。READY有效,数据开始传输。
对于有五个通道的AXI4协议来说,每个通道之间的握手信号是有一定的约束的。例如,在写操作中,主机写地址就绪,写地址有效,写数据就绪这三个信号没有时间依存。而对于从设备必须等待确认写地址有效和写地址就绪后握手成功和写数据有效信号和写数据就绪信号建立连接后再确认写回应有效信号和写数据就绪信号是否建立连接。这段话比较绕,简单理解就是要确保握手成功不违背通道传输的规则。不可能写数据传输握手还没有成功写响应握手就成功了,这违背了写响应的规则。同样的道理也在地址握手和数据握手之间体现。
3、AXI4的传输流程
读猝发传输:
一次读猝发传输四个数据的例子
主机发出读地址为A的请求-----读地址通道处于A地址占用------从机响应数据传输。
这个流程就像主机利用读地址构建了一个单一的单向通道,写数据通道的握手成功与否决定了数据传输与否。这样的优势在于可以选择不同的设备构建临时通道。
显然,可以利用通道的临时性实现两个临时通道的交替进行。这说明从机是支持存储两个甚至更多的地址的。这个功能落到具体的设计就需要一个缓存器来解决了。后面应该会有这部分的具体内容。
写猝发传输:
就是将读猝发的对象对调然后加上写响应。在通道上的原理就是这么简单,但是对于主从机的收发结构来说这里还是有一个比较复杂的内容的。后面可能会介绍这个主机和从机所需的结构。
4、AXI4的小结
AXI4传输的模式是标准的,传输的模式也是多种多样的。其相对于IIC的特点是将数据线拆分为两个通道。相对于UART的优点是加入了时钟线而不需要主机通过人工的方式加入传输波特率。相对于SCCB协议的优点是将地址传输和数据传输分立进行以提高效率。这四种传输协议都有其各自的适用范围。
AXI4协议的物理模型的更多相关文章
- AXI协议(一)
最近弄Zynq,不懂AXI协议Zynq很难玩儿的转.这些笔记主要攻克AXI中的一些难题. 所有的AXI4包含了5个不同的通道: (1)读/写地址通道(Read/Write address ch ...
- AXI总线简介
AXI全称Advanced eXtensible Interface,是Xilinx从6系列的FPGA开始引入的一个接口协议,主要描述了主设备和从设备之间的数据传输方式.在ZYNQ中继续使用,版本是A ...
- 【高速接口-RapidIO】5、Xilinx RapidIO核例子工程源码分析
提示:本文的所有图片如果不清晰,请在浏览器的新建标签中打开或保存到本地打开 一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:Vivado2015.4.2 ...
- zynq里面的AXI总线(2017-1-11)
在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用的都是AXI协议.其中三种AXI总线分别为: AXI4:(For high-performance memory-mapped requir ...
- 5.Xilinx RapidIO核例子工程源码分析
https://www.cnblogs.com/liujinggang/p/10091216.html 一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:V ...
- 【转】AXI_Lite 总线详解
目录: · 1.前言 · 2.AXI总线与ZYNQ的关系 · 3 AXI 总线和 AXI 接口以及 AXI 协议 · 3.1 AXI 总线概述 · 3.2 AXI 接口介绍 ·3.3 AXI 协议概述 ...
- S02_CH12_ AXI_Lite 总线详解
S02_CH12_ AXI_Lite 总线详解 12.1前言 ZYNQ拥有ARM+FPGA这个神奇的架构,那么ARM和FPGA究竟是如何进行通信的呢?本章通过剖析AXI总线源码,来一探其中的秘密. 1 ...
- AXI总线简介、ID分析、DMA、Vivado烧录、系统集成
转载:https://blog.csdn.net/CrazyUncle/article/details/89918030?depth_1-utm_source=distribute.pc_releva ...
- PowerDesigner创建物理模型
原文:PowerDesigner创建物理模型 Using PowerDesigner Create PDM 1.打开PowerDesigner 按Ctrl+N 创建物理模型 2.创建后修改名称,并在工 ...
- 接口与协议学习笔记-AMBA片上通信协议_APB_AHB_AXI_AXI4不同版本(二)
随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大.数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用.在基于IP复用的SoC设计中,片上总线设计是最 ...
随机推荐
- Laravel入坑指南(3)——模板
各位小伙伴有缘聚到这里,说明对于Laravel的路由和控制器已经有点了解了. 会写业务逻辑之后,如何把结果漂亮地展示出来,就是我们要解决的问题.(前后端分离的同学,请自动忽略)在MVC的世界里,漂亮的 ...
- python课本学习第六章
一.字典的概念 #示例代码 student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2} print(student) #output: ...
- 代码+案例,实战解析BeautifulSoup4
本文分享自华为云社区<从HTML到实战:深入解析BeautifulSoup4的爬虫奇妙世界>,作者:柠檬味拥抱. 网络上的信息浩如烟海,而爬虫技术正是帮助我们从中获取有用信息的重要工具.在 ...
- Google C++ 风格指南记录
最近在看谷歌的 C++ 风格指南发现了一些有意思的知识点,遂记录下 1. 第六章第二小节介绍了右值引用 只在定义移动构造函数与移动赋值操作时使用右值引用. 不要使用 std::forward. 定义: ...
- 【Android逆向】滚动的天空中插入smali日志
1. 编写一个MyLog.java 放到一个android工程下,编译打包,然后反编译拿到MyLog的smali代码 package com.example.logapplication; impor ...
- 解决Spring boot 单元测试,无法读取配置文件问题。
1.启动类上加上@EnableConfigurationProperties 2.springboot版本springboot 2.X版本在单元测试中读取不到yml配置文件的值这是个大坑,在项目中写单 ...
- 解读平台工程,DevOps真的死了吗?不,它只是换了个马甲而已,弥补了DevOps空心理论,让DevOps继续发展壮大
最**台工程这个概念越来越火爆,Gartner 的预测,到 2026 年,80% 的软件工程组织将拥有*台工程团队,来提供内部服务.组件和应用程序交付工具,作为可重复使用的资源.本篇文章将带你走进*台 ...
- 【Azure 应用服务】Azure Function HTTP Trigger 遇见奇妙的500 Internal Server Error: Failed to forward request to http://169.254.130.x
问题描述 使用 Azure Funciton App,在本地运行完全成功的Python代码,发布到Azure Function就出现了500 Internal Server Error. 而且错误消 ...
- 2FA双因素认证 - 原理和应用
主页 个人微信公众号:密码应用技术实战 个人博客园首页:https://www.cnblogs.com/informatics/ 引言 我们在登陆网站.或者通过VPN访问公司内网时,除了输入用户口令外 ...
- Nginx 打不开 80端口占用 netstat -aon|findstr "80" 看有没有80占用 有的话 net stop http
Nginx 打不开 80端口占用 netstat -aon|findstr "80" 看有没有80占用 有的话 net stop http