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,一经查实,立即删除!

相关文章

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技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…

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

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

一文掌握gRPC

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

Java日志总结

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

JAVA 集合(单列集合)

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

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

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

AI 图像生成-环境配置

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

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

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

【3dmax笔记】021:对齐工具(快速对齐、法线对齐、对齐摄影机)

文章目录 一、对齐二、快速对齐三、法线对齐四、对齐摄影机五、注意事项3dmax提供了对齐、快速对齐、法线对齐和对齐摄像机等对齐工具: 对齐工具选项: 下面进行一一讲解。 一、对齐 快捷键为Alt+A,将当前选择对象与目标对象进行对齐。 最大对最大:

【小笔记】neo4j用load csv指令导入数据

【小笔记】neo4j用load csv指令导入数据 背景 很久没有用load CSV的方式导入过数据了因为它每次导入有数量限制(印象中是1K还是1W),在企业中构建的图谱往往都是大规模的,此时通常采用的是Neo4j-admin import方式。最近遇到了一些…

振弦式表面应变计怎么安装

振弦式表面应变计是一种用于测量结构表面应变的高精度传感器,广泛应用于工程和科研领域。正确安装振弦式表面应变计对于确保测量结果的准确性至关重要。以下是安装振弦式表面应变计的步骤和注意事项: 1. 准备工作 在开始安装前,需要准备以下工…

whisper之初步使用记录

文章目录 前言 一、whisper是什么? 二、使用步骤 1.安装 2.python调用 3.识别效果评估 4.一点封装 5.参考链接 总结 前言 随着AI大模型的不断发展,语音识别等周边内容也再次引发关注,通过语音转文字再与大模型交互,从而…

【Gitlab远程访问本地仓库】Gitlab如何安装配置并结合内网穿透实现远程访问本地仓库进行管理

文章目录 前言1. 下载Gitlab2. 安装Gitlab3. 启动Gitlab4. 安装cpolar5. 创建隧道配置访问地址6. 固定GitLab访问地址6.1 保留二级子域名6.2 配置二级子域名 7. 测试访问二级子域名 前言 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具&#xf…

为什么质量工程师必学六西格玛?突破职业发展的瓶颈?

在质量管理领域工作多年,你是否曾感受到事业发展的停滞不前?3年、5年的职业生涯,薪水依旧停留在每月5000-7000,而同行业的其他人却能月入2-3万,这种差距让人不禁陷入深思。 问题究竟出在哪里?为什么我们的…

揭秘图形编程 动静接口如何助力 AGV 集成

在公司软件开发团队的办公室里,阳光透过窗户洒在排列整齐的办公桌上。卧龙坐在办公桌前,面前摊开一份内测报告,他的手指时不时地敲击着桌面,流露出内心的烦躁。他抬起头,眼神中透露出一丝困惑,看向正在文件…

【网络安全】【Frida实践案例】某图xx付费功能逆向分析(一)

文章目录 一、目标应用二、环境三、步骤1、查看布局id2、用到的Log日志类信息3、尝试hook VIP判断方法 四、总结五、相关源码 1、文章仅供学习参考,严禁非法使用!如非法使用,而导致的一切后果,由使用者自负! 2、禁止将…

【C++】string类常用函数用法总结

目录 常用函数一览 默认成员函数 与容量有关的函数 part 1 part 2 part 3 与访问和遍历有关的函数 与修改有关的函数 npos 与string相关的其它常用函数 常用非成员函数 getline和cin的区别 常用函数一览 //默认成员函数 string();string(const char* s);string(si…