AXI协议之AXILite开发设计(一)

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等
本设计主要介绍AXILite的设计开发,通过一个主机Master读写控制两个从机Slaver(通过基地址进行寄存器地址偏移),从而实现外设寄存器的控制。包括:IP的生成、各通道的信号讲解,以及基地址的使用。
包括两种设计方案,一种是基于XILINX的AXI IP的工程;另一种是基于开源代码AXI的工程。本系列讲解完成后,在最后一篇会在微信公众号开放源码,可供学习参考。
设计框图如下:
在这里插入图片描述
通过宏定义实现自定义工程的切换,后面会展开描述此种开发技巧
基于XILINX的AXI IP的工程
在这里插入图片描述
基于开源代码AXI的工程
在这里插入图片描述
一、AXI协议
AXI(Advanced eXtensible Interface)是一种总线协议,ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。地址、控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易进行时序收敛。
AXI是AMBA中一个新的高性能协议,满足超高性能和复杂的片上系统SOC设计的需求。其特点:①单向通道体系结构,信息流只以单方向传输,简化时钟域间的桥接,减少门数量。当信号经过复杂的SOC系统时,减少延时。 ②支持多项数据交换,通过并行执行猝发操作,极大地提高了数据吞吐能力,可在短时间内完成任务,满足高性能要求的同时,又减少了功耗。③独立的地址和数据通道,地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提高到最高,并将延时降低到最低。
AXI协议支持三种类型的接口:
AXI4:高性能存储映射接口,主要面向高性能地址映射通信的需求,面向地址映射的接口,允许最大256轮的数据突发传输;
AXI4-Lite:简化版的AXI4接口,用于较少数据量的存储映射通信,是一个轻量级的地址映射单次传输接口;
AXI4-Stream:用于高速数据量传输,非存储映射接口,去掉地址项,允许无限制的数据突发传输规模。
存储映射:如果一个协议是存储映射的,那么主机所发出的会话(读或者写)都会标明一个地址。这个地址对应于系统存储空间中的一个地址,表明是针对该存储空间的读写操作。
AXI4协议支持突发传输,主要用于处理器访问存储器等需要指定地址的高速数据传输场景。AXI-Lite为外设提供单个数据传输,主要用于访问一些低速外设中的寄存器。AXI-Stream接口像FIFO一样,数据传输时不需要地址,在主从设备之间直接连续读写数据,主要用于视频、高速AD、PCIe、DMA接口等需要高速数据传输的场合
二、AXILite通道和代码描述
AXILite共有 5 个通道分别是 read address channel(读地址通道)、 write address channel (写地址通道)、 read data channel (读数据通道)、 write data channel(写数据通道)、 write response channel(写响应通道)。每一个 AXI 传输通道都是单方向的。
2.1 写地址通道
AXIlite是基于AXI协议的简化版AXI接口,只使用部分接口信号。
在这里插入图片描述
代码开发中实例如下:
在这里插入图片描述
2.2 写数据通道
在这里插入图片描述
代码开发中实例如下:
在这里插入图片描述
2.3 写响应通道
在这里插入图片描述
代码开发中实例如下:
在这里插入图片描述
2.4 读地址通道
在这里插入图片描述
代码开发中实例如下:
在这里插入图片描述
2.5 读数据通道
在这里插入图片描述
代码开发中实例如下:
在这里插入图片描述
2.5 握手信号
三种握手时序图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
具体以工程中的仿真来理解各个通道的握手信号时序
①读数据操作时候,读地址和读数据通道的握手信号时序图
在这里插入图片描述
②写数据操作时候,写地址、写数据、写响应通道的握手信号时序图
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/45502.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python实战之数据挖掘详解

一、Python数据挖掘 1.1 数据挖掘是什么? 数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过算法,找出其中的规律、知识、信息的过程。Python作为一门广泛应用的编程语言,拥有丰富的数据挖掘库&#…

secureCRT软件菜单不见了的解决方法

1、打开securecrt软件 2、在方框处,选择右键,点击勾选 3、菜单即可正常显示了

servlet银行储蓄管理系统java存取转账交易 jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 servlet银行储蓄管理系统 系统有1权限:管…

【全面的数据科学教程——《Python数据科学项目实战》】

数据科学项目有很多灵活的部分,需要练习和技巧才能让所有代码、算法、数据集、格式和可视化协调工作。本书将引导你完成5个真实项目,包括根据新闻标题跟踪疾病暴发、分析社交网络以及在广告点击数据中寻找相关模式。 《Python数据科学项目实战》并不止于…

List的各种排序

目录 Collections.sort对list进行排序 对象中某个属性进行排序 通过比较器进行比较 JAVA8特性Stream流进行排序 Stream升降序组合使用 Collections.sort对list进行排序 public static void main(String[] args) {List<Integer> list new ArrayList<>();list…

【深度学习】日常笔记15

训练集和测试集并不来⾃同⼀个分布。这就是所谓的分布偏移。 真实⻛险是从真实分布中抽取的所有数据的总体损失的预期&#xff0c;然⽽&#xff0c;这个数据总体通常是⽆法获得的。计算真实风险公式如下&#xff1a; 为概率密度函数 经验⻛险是训练数据的平均损失&#xff0c;⽤…

数据可视化(1)

使用python带的matplotlib库进行简单的绘图。使用之前先进行安装&#xff0c;pip install matplotlib。如果安装了Anaconda,则无需安装matplotlib。 1.简单折线图 #绘制简单图表 import matplotlib.pyplot as plt plt.plot([1,2,3,4,5]) plt.show() import matplotlib.pyp…

docker数据管理和网络通信

文章目录 一、Docker 的数据管理1.1 数据卷 二、端口映射三、容器互联&#xff08;使用centos镜像&#xff09;四、Docker 镜像的创建4.1 基于现有镜像创建4.2 基于本地模板创建4.3 基于Dockerfile 创建镜像加载原理为什么Docker里的centos的大小才200M&#xff1f;DockerfileD…

【iPadOS 开发】打开 iPad 的开发者模式的方法

文章目录 1. 前提条件2. 具体方法 1. 前提条件 iPad 通过 Type-C 线连接到 Mac Mac上已经安装 Xcode 2. 具体方法 在 Xcode 顶栏中的 Window 中打开 Devices and Simulators &#xff0c;可以看到自己的设备&#xff1a; 接着在 iPad 上进入 设置 > 隐私与安全性 > 开…

【数据挖掘】如何修复时序分析缺少的日期

一、说明 我撰写本文的目的是通过引导您完成一个示例来帮助您了解 TVF 以及如何使用它们&#xff0c;该示例解决了时间序列分析中常见的缺失日期问题。 我们将介绍&#xff1a; 如何生成日期以填补数据中缺失的空白如何创建 TVF 和参数的使用如何呼叫 TVF我们将考虑扩展我们的日…

Stable Diffusion生成艺术二维码

Stable Diffusion生成艺术二维码 文章会有浏览问题&#xff0c;点击此处查看原文 首先需要一个Stable Diffusion服务环境&#xff0c;《Stable Diffusion服务环境搭建&#xff08;远程服务版&#xff09;》如果你已经有了那就忽略 一、准备一个比较好的二维码底图 首先解析二…

Dubbo Triple 协议重磅升级:支持通过 HTTP 连通 Web 与后端微服务

作者&#xff1a;刘军 全新升级的 Triple 协议 在微服务协议选型方面我们看到越来越多的应用从 Dubbo2 TCP 二进制协议迁移到 Dubbo3 Triple 协议 (兼容 gRPC)&#xff0c;以充分利用 Triple 的高效、全双工、Streaming 流式通信模型等能力&#xff1b;TripleHTTP/2 的组合很…

Matlab----下载和安装教程

Matlab----下载 文件中有以下文件 Matlab----安装 步骤1&#xff1a;打开安装软件 步骤2&#xff1a;运行安装软件 在matlab 2018的文件夹下找到setup&#xff0c;选中右键以管理员身份运行。 步骤3 选择使用文件安装密钥&#xff0c;然后点击下一步。 步骤4 是否接收…

怎么把图片压缩小一点?三招教会你压缩图片

在现如今的互联网时代&#xff0c;图片是我们日常生活中不可或缺的一部分&#xff0c;无论是在社交媒体上分享照片&#xff0c;还是在网站上发布图片&#xff0c;我们都希望图片能够加载得更快&#xff0c;占用更少的存储空间。因此&#xff0c;将图片压缩变得尤为重要&#xf…

python实现逻辑回归-清风数学建模-二分类水果数据

所用数据 &#x1f449;&#x1f449;&#x1f449;二分类水果数据 1.数据预处理 可以看到有4个特征&#xff0c;2种分类结果&#xff0c;最后4个没有分类结果的数据是拿来预测的 # 1. 数据预处理 import pandas as pd df pd.read_excel(oridata/二分类水果数据.xlsx,use…

【独家解答】面试题曝光:Spring容器中的Bean会不会被GC?

大家好&#xff0c;我是你们的小米&#xff01;今天&#xff0c;我们来聊一个有关Spring容器中的Bean的话题&#xff0c;也是面试中经常被问到的问题&#xff1a;“Spring 容器中的Bean是否会被GC呢&#xff1f;为什么&#xff1f;”让我们一起揭开这个神秘的面纱&#xff0c;解…

PP-YOLOE 论文学习

1. 解决了什么问题&#xff1f; 单阶段目标检测器能很好地平衡速度和精度&#xff0c;YOLO 系列是其中的代表。YOLOX 采用了 anchor-free 范式&#xff0c;加入了动态标签分配以提升检测表现&#xff0c;在 Tesla V100 上取得了 50.1 mAP&#xff0c;速度是 68.9 FPS。本文提出…

热门洗地机评测|追觅VS希亦VS米博洗地机,哪款更值得入手?

智能科技的发展越来越方便人们的生活&#xff0c;特别是现今人们生活水平不断提高&#xff0c;房子越住越大&#xff0c;需要顾及的房屋卫生打扫面积也越来越广。而单是通过人工去拖扫不仅很累还很浪费时间。于是洗地机的出现让很多深陷家务劳动的朋友得以解脱。因为很多洗地机…

Git简介与工作原理:了解Git的基本概念、版本控制系统和分布式版本控制的工作原理

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

如何构建适合自己的DevOps软件测试改进方案

​目录 DevOps成熟度模型分析 构建适合企业自身性能的测试过程改进框架 资料获取方法 根据2022年的DevOps全球调查报告显示&#xff0c;主流软件企业采用或部分采用DevOps且已获得良好成效的占比已达70%&#xff0c;DevOps俨然成为当下软件开发研究的重要方向。 测试作为软…