AXI Interconnect IP核的连接模式简介

AXI Interconnect IP核内部包含一个 Crossbar IP核,用于在 Slave Interfaces(SI)和 Master Interfaces(MI)之间路由传输。在连接 SI 或 MI 到 Crossbar 的每条路径上,可以选择性地添加一系列 AXI Infrastructure cores(耦合器),以执行各种转换和缓冲功能。这些耦合器包括 Register Slice、Data FIFO、Clock Converter、Data Width Converter 和 Protocol Converter。

这些耦合器的功能如下:

  • Register Slice:通常用于在数据路径中插入一个或多个寄存器级延迟,以便满足时序要求或进行数据缓冲。
  • Data FIFO:用于在数据传输过程中提供缓冲,以确保数据流的连续性和稳定性。当主设备和从设备之间的数据传输速率不匹配时,Data FIFO 可以起到平衡作用。
  • Clock Converter:当主设备和从设备在不同的时钟域中运行时,Clock Converter 负责将数据从一个时钟域转换到另一个时钟域,以确保数据的正确同步和传输。
  • Data Width Converter:当主设备和从设备的数据宽度不同时,Data Width Converter 负责将数据从一个数据宽度转换到另一个数据宽度,以便在它们之间进行数据传输。
  • Protocol Converter:当主设备和从设备使用不同的 AXI 子协议(如 AXI4、AXI3 或 AXI4-Lite)时,Protocol Converter 负责在它们之间进行协议转换,以确保数据的正确传输。

AXI Interconnect IP核可以根据需要进行配置,以支持最多16个Slave Interfaces (SI) 和最多16个Master Interfaces (MI)。每个SI连接到一个AXI主设备,用于接收写和读事务请求。每个MI则连接到一个AXI从设备,并向从设备发出事务。

在AXI Interconnect IP核的中心是交叉开关(crossbar)IP核,它负责在SI和MI之间的所有AXI通道上路由传输。在SI和交叉开关之间或交叉开关和MI之间的每条路径上,可以有一个或多个基础核(infrastructure cores),它们执行各种转换和存储功能。

交叉开关有效地将AXI Interconnect IP核在SI相关功能单元(SI半球)和MI相关单元(MI半球)之间进行了分隔。

AXI Interconnect IP核的使用模型非常灵活,它可以将一个或多个AXI内存映射主设备连接到一个或多个内存映射从设备。每个连接的主设备可能是发起AXI事务的IP核(端点主设备),或者是上游AXI Interconnect IP核的级联主接口。每个连接的从设备可能是AXI事务的最终目标(端点从设备),或者是下游AXI Interconnect IP核的级联从接口。此外,连接的主设备或从设备也可以是AXI基础转换/存储 IP核之一,尽管这些功能通常在AXI Interconnect IP核内部执行,以避免顶层设计的混乱。

每个AXI Interconnect IP核都可以配置为执行以下一般连接模式之一:

  • N-to-1 互联
  • 1-to-N 互联
  • N-to-M 互联(交叉开关模式)
  • N-to-M 互联(共享访问模式)

互联也可以配置为连接一个主设备到一个从设备,在这种情况下,IP集成器将自动实例化并配置路径上所需的任何耦合器。

1 N-to-1 互联

当多个主设备需要访问单个从设备(如内存控制器)时,应使用N-to-1配置的AXI Interconnect IP核。

在这种配置中,还可以执行任何可选的转换功能,如数据宽度和时钟速率转换,如图2-2所示。通过AXI Interconnect IP核,多个主设备可以按照预定的优先级或仲裁机制访问共享的从设备,同时保持数据传输的效率和正确性。

2 1-to-N 互联

当单个主设备(通常是处理器)需要访问多个内存映射的从设备(外设)时,应使用1-to-N配置的AXI Interconnect IP核。在这种情况下,不需要进行仲裁(在地址和写数据路径上),因为只有一个主设备在发送请求。

在1-to-N配置中,AXI Interconnect IP核将单个主设备的AXI事务路由到多个从设备。每个从设备通常代表一个不同的内存映射外设,如GPIO、UART、SPI等。由于没有多个主设备竞争访问,因此不需要进行仲裁。

图2-3展示了这种配置的简化示例,其中单个主设备通过AXI Interconnect IP核连接到多个从设备。AXI Interconnect IP核确保主设备的事务被正确地路由到目标从设备,同时可能还执行一些转换或缓冲功能(如果需要)。

这种配置适用于需要处理器访问多个外设的嵌入式系统,其中处理器作为主设备,而各个外设作为从设备。通过使用AXI Interconnect核心,可以简化系统设计,提高性能和可靠性。

N-to-M互联

N-to-M互联(交叉开关模式)是AXI Interconnect IP核的一种应用场景,它采用共享地址多数据(SAMD)拓扑结构,通过稀疏数据交叉开关连接,使用单一的共享写和读地址仲裁。

在这种模式下,AXI Interconnect IP核可以同时处理来自多个主设备(N个)的事务请求,并将它们路由到多个从设备(M个)。交叉开关的设计使得任何主设备都可以与任何从设备进行通信,从而实现了高度灵活的连接性。

图2-4和图2-5可能展示了这种配置的示意图,其中可以看到主设备和从设备通过交叉开关进行连接,共享地址仲裁模块负责处理所有设备的地址请求,确保数据能够正确、高效地传输。

这些图并非直接提供,但可以根据描述自行绘制或查找相关资料以获取更详细的信息。

在AXI Interconnect IP核的N-to-M互联(交叉开关模式)中,根据配置的稀疏连接映射,每个SI(Slave Interface)槽位通过并行的写和读数据路径连接到它可以访问的所有MI(Master Interface)槽位。当多个源需要向不同的目标发送数据时,只要满足AXI顺序规则,数据传输就可以独立且并发地进行。

通过禁用未使用的路径,可以减少数据路径复用逻辑和地址解码逻辑,从而降低FPGA资源的利用率并加快时序路径。

所有SI槽位的写地址通道都输入到中央地址仲裁器中,该仲裁器一次只允许一个SI槽位访问。读地址通道也采用相同的处理方式。每个仲裁周期的获胜者将其地址信息传输到目标MI槽位,并将条目推入适当的命令队列中,这些命令队列使各种数据路径能够将数据路由到正确的目的地,同时强制执行AXI顺序规则。

交叉开关模式仅在AXI Crossbar被配置为AXI4或AXI3协议时可用。这种模式允许在复杂的系统中实现高效且灵活的数据传输。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年安全员C证报名条件

安全员c证,又称建筑施工企业三类人员c证,持证者一般是建筑施工企业专职安全生产管理的专业人员。安全员c证报名条件是: 1、职业道德良好,身体健康,年龄不超过60周岁(法定代表人除外); 2、具有中专及以上文化程度或初级及以上技术…

WMS系统批次管理概述

为了提高仓库运作效率,降低库存成本,越来越多的企业开始引入WMS仓库管理系统,WMS系统批次管理作为其核心功能之一,对于实现精细化、智能化的仓储管理具有重要意义。 二、WMS系统批次管理概述 WMS系统批次管理是指通过对仓库中的货…

rust调用SQLite实例

rusqlite库介绍 Rusqlite是一个用Rust编写的SQLite库,它提供了对SQLite数据库的操作功能。Rusqlite的设计目标是提供一个简洁易用的API,以便于Rust程序员能够方便地访问和操作SQLite数据库。 Rusqlite的主要特点包括: 遵循Rust的类型系统和…

SQL_hive的连续开窗函数

SQL三种排序(开窗)第几名/前几名/topN 1三种排序(开窗)第几名/前几名/topN思路 4种排序开窗函数 1三种排序(开窗)第几名/前几名/topN 求每个学生成绩第二高的科目-排序思路 t2表:对每个学生 的…

基于Python的web漏洞挖掘扫描技术的实现与研究【附源码,文档】

博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…

Vue3 项目

创建 Vue3 项目的步骤如下: 安装 Node.js Vue3 需要依赖 Node.js 环境,因此需要先安装 Node.js。可以从官网下载 Node.js 的安装包并安装,也可以使用包管理器安装,例如在 Ubuntu 上可以使用以下命令安装: sudo apt-get…

C语言笔记13

字符数组与字符串常量区别 #include <stdio.h> int main() {char str1[] "hello bit.";char str2[] "hello bit.";char *str3 "hello bit.";char *str4 "hello bit.";if(str1 str2)printf("str1 and str2 are same\n…

【生信技能树】拿到表达矩阵之后,如何使用ggplot2绘图系统绘制箱线图?

拿到表达矩阵之后&#xff0c;如何使用ggplot2绘图系统绘制箱线图&#xff1f; 目录 预备知识 绘制箱线图示例 预备知识 1.pivot_longer函数 pivot_longer 是tidyr包中的一个函数&#xff0c;用于将数据框&#xff08;data frame&#xff09;从宽格式转换为长格式。在宽格…

一文掌握gRPC

文章目录 1. gRPC简介2. Http2.0协议3. 序列化-Protobuf4. gRPC开发实战环境搭建5. gRPC的四种通信方式&#xff08;重点&#xff09;6. gRPC的代理方式7. SprintBoot整合gRPC 1. gRPC简介 gRPC是由google开源的高性能的RPC框架。它是由google的Stubby这样一个内部的RPC框架演…

reactJs动态执行js代码

参考了这篇文章 js——new Function 一个可以随时动态执行字符串js代码的神器 因为一些原因&#xff0c;想要js代码块配置在数据库中返回&#xff0c;例如时间&#xff0c;我需要用到第三方库 moment。然后动态的得到startDate 和 endDate 配置在数据库中的startDate值是$mom…

Java日志总结

开发中&#xff0c;日志记录是不可或缺的一部分&#xff0c;应用日志的记录主要用于&#xff1a;记录操作轨迹数据、监控系统运行情况、系统故障定位问题&#xff0c;日志的重要性不言而喻&#xff0c;想要快速定位问题&#xff0c;日志分析是个重要的手段&#xff0c;Java也提…

JAVA 集合(单列集合)

集合框架 1.集合的特点 a.只能存储引用数据类型的数据 b.长度可变 c.集合中有大量的方法,方便我们操作 2.分类: a.单列集合:一个元素就一个组成部分: list.add(“张三”) b.双列集合:一个元素有两部分构成: key 和 value map.put(“涛哥”,“金莲”) -> key,value叫做键值…

Docker各版本的新特性

Docker 作为流行的容器化平台&#xff0c;会定期发布新版本以引入新特性、改进和修复。根据提供的搜索结果&#xff0c;以下是一些 Docker 版本及其新特性的概览&#xff1a; Docker Desktop v4.12 Containerd 的集成&#xff1a;更深入集成 containerd 以管理容器生命周期&a…

锁和MVCC如何实现mysql的隔离级别

概述 MVCC解决读的隔离性&#xff0c;加锁解决写的隔离性。 读未提交 读未提交&#xff0c;更新数据大概率使用的是独享锁吧。 读已提交 在 Read Committed&#xff08;读已提交&#xff09;隔离级别下&#xff0c;每次执行读操作时都会生成一个新的 read view。这是因为在读…

英译汉早操练-(二十)

hello大家好&#xff0c;这篇跟随十九&#xff0c;继续真题学习。如果想看全部请返回到第十九篇。 英译汉早操练-&#xff08;十九&#xff09;-CSDN博客 The political upheaval in Libya and elsewhere in North Africa has opened the way for thousands of new migrants to…

【C++学习第15天】STL

一、种类 vector&#xff1a;变长数组&#xff0c;倍增的思想。给数组申请空间所耗费的时间取决于申请次数&#xff0c;而不是申请空间的大小&#xff0c;即a[1]和a[10000]两个数组的申请时间是基本一致的。pair<int, string>&#xff1a;存储一个二元组&#xff0c;前后…

AI 图像生成-环境配置

一、python环境安装 Windows安装Python&#xff08;图解&#xff09; 二、CUDA安装 CUDA安装教程&#xff08;超详细&#xff09;-CSDN博客 三、Git安装 git安装教程&#xff08;详细版本&#xff09;-CSDN博客 四、启动器安装 这里安装的是秋叶aaaki的安装包 【AI绘画…

【GlobalMapper精品教程】081:WGS84/CGCS2000转Lambert投影

参考阅读:ArcGIS实验教程——实验十:矢量数据投影变换 文章目录 一、加载实验数据二、设置输出坐标系三、数据导出一、加载实验数据 打开配套案例数据包中的data081.rar中的矢量数据,如下所示: 查看源坐标系:双击图层的,图层投影选项卡,数据的已有坐标系为WGS84地理坐标…

MySQL创建存储过程函数

DDL CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 学号,createDate datetime DEFAULT NULL,userName varchar(20) DEFAULT NULL,pwd varchar(36) DEFAULT NULL,phone varchar(11) DEFAULT NULL,age tinyint(3) unsigned DEFAULT NULL,sex char(2) DEFAU…

[初学rust] 05_ rust struct

rust struct 其实这也算复合类型&#xff0c;但是其他语言都有&#xff0c;所以抽取出来单独看的时候会很简单&#xff0c;更容易学 1. 定义结构体 结构体的定义和其他语言没啥区别。 struct User {name: String,age: i32, }2. 创建实例 创建实例的过程就跟js类似 let us…