0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AMBA總線中APB interconnect的介紹

jf_GctfwYN7 ? 來源:芯時代青年 ? 2024-01-13 10:09 ? 次閱讀

之前的兩篇文章給大家介紹了APB協議相關的知識點,并結合實際的代碼給大家講解了一下APB slave的設計。并說明了一下APB slave mux這個模塊。

上一篇文章提到:通常而言,APB的interconnect模塊只能連接一個master,多個Slave。因此繼續(xù)管它叫interconnect感覺差了點意思。所以一般就叫它slave mux了。巧的是前幾天有個同事碰到了需要多個APB master的情況。本人便幫忙調研APB是否真的只能是一主多從的結構。沒想到還真搜到了一些公司的設計,是支持多主多從的APB Interconnect,這種情況下確實是名副其實的Interconnect了。

首先解釋一下什么是Interconnect,顧名思義,互聯。起作用是把不同的組件連接在一起,包括但不限于:

處理器和處理器

處理器和Memory

處理器和Cache

Cache和Cache

IO設備等

對于SoC工程師,把互聯理解成一個開關即可。它用來管理并指揮所連接的設備之間的通信。

1、一主多從的APB Interconnect

這種情況下Interconnect和mux沒有本質區(qū)別,所以很多情況下直接叫它APB mux或者APB slave mux。具體到實際的SoC設計中大概長下面這樣子,可以看到它只有一個Master,AHB2APB的轉接橋。同時有多個Slave模塊。這也是我們在SoC中最常遇到的情況。

7693a46a-b136-11ee-8b88-92fbcf53809c.jpg

我們看一下這個Interconnect的內部具體長什么樣子,如下圖所示,可以看到主要邏輯就是譯碼器+MUX。 對于Master-->Slave的信號而言,PENABLE、PWRITE、PWDATA、PADDR信號直接由Master給所有的Slave。而PSELx信號有SLave數量這么多組,其邏輯應該是PSELx = PSEL & dec[ x] & en[ x];譯碼器根據PADDR選擇拉高某個SLAVE的dec信號,也就是最多選中其中的某一個Slave。此外下面這個圖中有一個默認slave,當沒有任何slave被選擇的話,則會選中默認的slave,用來應對地址越界的錯誤情況。該Slave默認的PRDATA默認為0,PSLVERR默認為1。 對于Slave-->Master的信號而言,PREADY、PRDATA、PSLVERR由MUX進行選擇,從指定的Slave傳給Master。

76a7c620-b136-11ee-8b88-92fbcf53809c.jpg

1.1、Decoder

譯碼器模塊對每一筆傳輸進行地址譯碼,給每一個Slave相應的PSEL信號。Decode邏輯非常簡單,就是根據當前的PADDR選中某一個Slave,如下圖所示。這個模塊功能更加豐富,地址映射可以靜態(tài)的配置(工作的時候不能配置),實際上大部分的SoC設計中,地址映射應該是完全固定死的,無法更改的。這個是FPGA提供的IP,所以相對更靈活一點。

76c40dda-b136-11ee-8b88-92fbcf53809c.jpg

1.2、Multiplexor

該模塊基于MUX提供的PSELX信號,從多個Slave中選擇合適的PRDATA、PREADY、PSLVERR信號,設計很簡單,就不多講解了,直接看圖:

76e05c7e-b136-11ee-8b88-92fbcf53809c.jpg

2、多主多從的APB Interconnect

上面這套東西和我上一篇文檔的APB slave mux其實沒有本質區(qū)別,也非常的好理解。但是如果實際的需求真的需要多個Master怎么辦呢?雖然APB官方沒有提供這種設計示例,但實際上當然是可以實現的。我們只需要在一主多從的Interconnect的基礎上增加一個Arbiter mux即可:

76f824d0-b136-11ee-8b88-92fbcf53809c.jpg

當然這種情況下,只支持一對一的訪問,所以實際上效率還是比較低的。仲裁方式可以使用固定優(yōu)先級仲裁,也可以使用Round Robin仲裁。

2.1、Arbiter Mux

顧名思義,Arbiter+MUX。Master to Slave Multiplexor對多個PSEL進行仲裁,然后選擇其中的一個PSELX,基于這個PSELX,選擇合適的PADDR、PWRITE、PSELX、PENABLE給Single Master Interconnect模塊。 相應的,Slave to Master Multiplexor將PRDATA、PREADY、PSLVERR路由到相對應的Master。從而完成整個傳輸流程。下圖這些向右的箭頭實際上是雙向的。Master和Slave互相交互,完成傳輸過程。

770b9a10-b136-11ee-8b88-92fbcf53809c.jpg

770b9a10-b136-11ee-8b88-92fbcf53809c.jpg

這篇文章給大家講解了APB Interconnect這個模塊。除了官方說的一主多從,實際上我們也可以實現多主多從的Interconnect。當然這個模塊實際用的很少很少,大家可以根據實際需求決定是否要使用該模塊。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    18924

    瀏覽量

    227212
  • 通信
    +關注

    關注

    18

    文章

    5878

    瀏覽量

    135310
  • AMBA總線
    +關注

    關注

    0

    文章

    35

    瀏覽量

    9510

原文標題:深入理解AMBA總線 — APB interconnect的補充

文章出處:【微信號:IC修真院,微信公眾號:IC修真院】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是APB協議/總線APB總線入門

    上一篇文章簡單講解了什么是AMBA總線,簡單來說,AMBA總線是一系列協議。定義了適用于不同場景的總線家族。今天我們就來將
    的頭像 發(fā)表于 01-02 11:37 ?2891次閱讀
    什么是<b class='flag-5'>APB</b>協議/<b class='flag-5'>總線</b>?<b class='flag-5'>APB</b><b class='flag-5'>總線</b>入門

    ARM總線協議AMBAAHB、APB的區(qū)別與聯系

    , ASB, APB);Qchannel文章目錄1 AMBA總線2 AHB2.1 一個典型的基于AHB的微控制器2.2 AHB總線互聯結構:中心選擇器連接master與slave2.3
    發(fā)表于 02-09 07:46

    AMBA、APB、AHB簡介

    STM32菜鳥學習手冊——1、AMBA、APB、AHB簡介芯片上總線標準種類繁多,而由ARM公司推出的AMBA片上總線受到了廣大IP開發(fā)商和
    發(fā)表于 02-17 07:18

    AMBA AHB總線APB總線資料合集

    使用的是 SystemVerilog 描述。2、AMBA APB總線信號接口介紹前面分析了AHB總線協議。接下來分析
    發(fā)表于 04-07 10:03

    AMBAAPB總線協議詳解

    1、漫談AMBA總線-APB首先考慮一下以下的場景:概念1: 主機(Master)訂單的發(fā)起只能由水果店發(fā)起,所以水果店在這條水果運輸總線里面運輸水果占有主動地位。類比:在
    發(fā)表于 06-07 16:14

    基于AMBA APB總線NandFlash控制器的設計

    介紹了基于AMBA APB總線NandFlash控制器的設計,首先簡單介紹了NandFlash的一些特點,然后詳細
    發(fā)表于 11-03 15:22 ?54次下載

    APB總線的應用框圖及接口信號

    APB(AdvancedPeripheralBus)是AMBA(AdvancedMicrocontrollerBusArcheticture)總線體系的一部分。相較于AMBA
    發(fā)表于 11-17 11:54 ?1.3w次閱讀
    <b class='flag-5'>APB</b><b class='flag-5'>總線</b>的應用框圖及接口信號

    基于AMBA總線介紹?

    3.0:增加了AXI協議(了解);AMBA4.0:ACE協議(了解) 本文主要介紹AMBA2.0 (Advanced Microcontroller Bus Architecture,先進微控制
    的頭像 發(fā)表于 05-19 14:22 ?2009次閱讀
    基于<b class='flag-5'>AMBA</b><b class='flag-5'>總線</b><b class='flag-5'>介紹</b>?

    淺述AMBA-APB總線

    1 APB介紹 高級外設總線APB) 是高級微控制器總線架構 (AMBA) 協議系列的一部分
    的頭像 發(fā)表于 07-23 10:04 ?2128次閱讀
    淺述<b class='flag-5'>AMBA-APB</b><b class='flag-5'>總線</b>

    介紹AMBA2.0總線

    3.0:增加了AXI協議(了解);AMBA4.0:ACE協議(了解) 本文主要介紹AMBA2.0 (Advanced Microcontroller Bus Architecture,先進微控制
    的頭像 發(fā)表于 09-06 09:53 ?2991次閱讀
    <b class='flag-5'>介紹</b><b class='flag-5'>AMBA</b>2.0<b class='flag-5'>總線</b>

    數字IC驗證:ARM總線協議AMBAAHB、APB的簡介、區(qū)別與聯系

    , ASB, APB);Qchannel文章目錄1 AMBA總線2 AHB2.1 一個典型的基于AHB的微控制器2.2 AHB總線互聯結構:中心選擇器連接master與slave2.3
    發(fā)表于 12-05 15:36 ?16次下載
    數字IC驗證:ARM<b class='flag-5'>總線</b>協議<b class='flag-5'>AMBA</b><b class='flag-5'>中</b>AHB、<b class='flag-5'>APB</b>的簡介、區(qū)別與聯系

    AMBA總線那些事之APB

    之前老李問過大家想看哪方面的知識,有不少同學提議老李寫寫總線,特別是AMBA總線,所以老李決定從這期開始開始一個AMBA總線
    的頭像 發(fā)表于 05-04 14:53 ?2230次閱讀
    <b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>那些事之<b class='flag-5'>APB</b>

    AMBA總線apb簡介

    APB(Advanced Peripheral Bus),外圍總線的意思。該總線協議是ARM公司提出的AMBA總線結構之一,幾乎已成為一種標
    發(fā)表于 06-05 15:10 ?1615次閱讀
    <b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>—<b class='flag-5'>apb</b>簡介

    關于AMBA APB總線的知識點介紹

    AMBA APB總線可以用在低帶寬和不需要高性能的外設上(即低速且低頻率的外設);可以將APB視作AHB的二級總線;   ·低功耗(
    發(fā)表于 11-29 15:19 ?930次閱讀
    關于<b class='flag-5'>AMBA</b> <b class='flag-5'>APB</b><b class='flag-5'>總線</b>的知識點<b class='flag-5'>介紹</b>

    AMBA總線APB slave設計介紹

    上篇文章給大家介紹APB協議相關的知識點,本篇文章通過一個實際的APB slave的設計幫助大家鞏固對APB的掌握。 APB slave設
    的頭像 發(fā)表于 01-13 10:15 ?684次閱讀
    <b class='flag-5'>AMBA</b><b class='flag-5'>總線</b><b class='flag-5'>中</b><b class='flag-5'>APB</b> slave設計<b class='flag-5'>介紹</b>