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核心,可以簡化系統設計,提高性能和可靠性。

3?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.pswp.cn/web/11249.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11249.shtml
英文地址,請注明出處:http://en.pswp.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…