伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

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

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

3天內不再提示

APB、AHB-Lite、AXI-Lite總線協議的對比分析

FPGA技術江湖 ? 來源:AdriftCoreFPGA芯研社 ? 2026-01-07 15:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

以下文章來源于AdriftCoreFPGA芯研社,作者CNL中子

前言

在 SoC、FPGA IP、外設控制器等系統中,配置通路(Configuration Bus) 幾乎無處不在——寄存器讀寫、狀態回讀、DMA 觸發、控制接口、模塊初始化這些都離不開一條穩定可靠的配置總線。

在實際設計中,工程師往往需要在 APB、AHB、AXI-Lite 之間做權衡與選擇。

然而,這三種協議各有優點,也各自帶著不容忽視的工程痛點。

雖然配置通路本身屬于低速域,看起來不復雜,但真正落地到幾十個外設、跨時鐘域、壓 timing、做slice、處理讀寫語義一致性時,往往會暴露出各種棘手問題。

本文將基于實際工程經驗,討論 APB / AHB / AXI-Lite 在真實項目中的常見痛點和使用場景。如果你有不同的觀點、踩過更深刻的坑,或有更好的架構方法,歡迎在評論區一起交流。

APB

APB 可以說是最簡單的一類總線協議,在眾多 IC 設計和 FPGA 項目中都被大量使用。它無流水、無突發,控制信號少、時序關系簡單,在所有常見總線中資源占用理論上最小。其優點是簡單、穩定、易集成;缺點同樣明顯:帶寬與性能有限。

在大多數配置場景中,只是寫寄存器、回讀狀態,對性能需求并不高,因此 APB 能在各類 SoC 中存活超過 20 年也就不足為奇。

然而,APB 的簡單只在系統規劃良好的前提下成立。當初期沒有做好 APB slave地址空間的規劃,例如一個 master 需要連接幾十路 slave 時,復雜度就會急劇上升。

3e7b23ae-e9cf-11f0-8c8f-92fbcf53809c.png

3ed77082-e9cf-11f0-8c8f-92fbcf53809c.png

時序收斂難度陡增

APB 信號數量雖然不多,但組合邏輯比例很大。當你把幾十路 PSEL、讀寫分配、多路選擇器等全部堆在一個大型crossbar中,綜合之后會出現典型問題:

? 長組合路徑鏈條過多

? 分布式邏輯跨區域布局

? 極高的 Fanout

? 全局走線拉得非常長

最終結果很容易是:時序全面崩壞。

APB 極不適合做slice/pipeline

在 SoC 中通過切關鍵路徑插一拍,是傳統且有效的時序優化手段。但 APB 具有一些獨特缺陷,使得 pipeline 十分困難:

? APB 沒有完整的握手機

? 時序依賴固定的兩拍協議 + 半同步行為

? 讀寫共享通路,不像 AXI 那樣天然分離

? 寫路徑可能只有一條,而 pready / prdata 卻可能來自幾十路,從而難以統一處理

在這種情況下,隨意插入一拍非常容易破壞協議timing diagram,例如:

? PSEL / PENABLE 的時序關系被打亂

? PREADY 反饋延遲不一致

? PRDATA 返回周期無法與手冊周期要求匹配

即便你強行做成了slice,它也不會像 AXI-Stream 那樣形成一致、標準的pipeline結構。由于讀寫通路不分離、通道數不對稱、反饋路徑復雜,實現最終往往會變成一坨難以維護的“屎山”。

更糟糕的是,當系統已經發展到幾十路slave,這時候想再做分區規劃、把 slave 進一步級聯或分層,往往已經為時已晚。此階段想要重構 APB 配置通路意味著:

需要重新推導、重新規劃整個路徑,工作量巨大。

AXI-Lite

AXI-Lite 是 AXI 協議的精簡版本,主要用于配置類訪問。其請求、數據與響應完全分離,包含五個獨立通道:AR、AW、W、R、B。

與完整 AXI 不同,AXI-Lite 不支持 burst,也沒有 ID,因此僅支持單次訪問。然而,它允許:

? AR 通道連續握手(連續發起讀請求)

? AW/W 通道連續握手(連續發起寫請求)

? 讀寫并行執行(讀寫通道完全獨立)

因此在 Xilinx IP、Intel IP 等主流平臺中,AXI-Lite 是默認的配置通路方案。

3f36008e-e9cf-11f0-8c8f-92fbcf53809c.png

3f9b2c70-e9cf-11f0-8c8f-92fbcf53809c.png

多子系統下的順序不可控問題

在 多個 Slave 并存的系統中,AXI-Lite 的并行讀寫機制可能會讓順序處理變得異常棘手。

例如,你依次發起了兩次讀訪問:

1. Read SLAVE_A
2. Read SLAVE_B

AXI-Lite 不保證返回順序與發出順序一致。

由于讀通道是完全獨立且可并發的,SLAVE_B 的響應可能比 SLAVE_A 更早返回。

在多 SLAVE 情況下,讀寫之間不存在全局順序,你以為“先發起的 READ 會先回來”,但協議并不這么保證。

因此,如果系統邏輯需要順序語義(例如狀態機嚴格依賴先后順序),就需要額外的順序控制手段,例如:

? Ordering FIFO(請求順序緩存)

? tag(人為添加事務 ID)

? 狀態同步機制

? 或者直接給每個子系統分配獨立的控制端口

這些都是額外的工程成本。

在特殊場景中,如果連續訪問的是同一個 slave,內部順序通常不會被打亂,但跨 slave 就必須顯式處理。

硬件資源與結構復雜度更高

由于 AXI-Lite 的五通道是分離的,并且允許連續發起請求,因此需要一定的 outstanding 能力(哪怕只有 1 層),也導致:

? 接線較 APB 明顯復雜

? 資源成本更高

? crossbar、仲裁、通道同步邏輯更重

換句話說,AXI-Lite 在靈活性和并行性上優于 APB,解決了APB難以做slice/pipeline的痛點,但其工程成本和硬件復雜度也隨之提高。

AHB-Lite

AHB-Lite 是 AMBA AHB 協議的精簡版本,主要用于中等帶寬的外設訪問與配置類場景。

相比完整AHB,AHB-Lite 去掉了多主機仲裁(single master) ,但保留了 AHB 的關鍵特性:

流水化、單周期地址階段 + 數據階段解耦、支持 burst、支持 back-pressure。

在 AHB-Lite 中,每一次訪問由兩部分組成:

? 地址階段(Address Phase) :由 HADDR、HTRANS、HWRITE 等信號描述

? 數據階段(Data Phase) :由 HRDATA、HWDATA、HREADY、HRESP 等信號描述

兩個階段是 嚴格對齊但可流水化 的,也就是說:

? 當前周期發送地址

? 下一個周期就可以發送下一次地址

? 數據返回與否由 slave 的 HREADY 控制

這種結構比 APB 靈活,也比 AXI 簡單。

3ff7c75a-e9cf-11f0-8c8f-92fbcf53809c.png

404c9e4c-e9cf-11f0-8c8f-92fbcf53809c.png

但是,AHB-Lite 也存在一些現實痛點。

HREADY 同時影響控制與數據階段

AHB 最讓工程師頭疼的地方在于 HREADY 信號承擔了兩重語義:

? 表示“本拍的數據是否有效”

? 表示“下一拍的地址/控制階段是否可以推進”

這會帶來典型的工程不優雅行為:上一個數據階段的 ready 會影響當前地址/控制階段。

例如,在寫 SLAVE_A 的數據的下一拍,如果要訪問 SLAVE_B,HREADY 已經切換到 SLAVE_B 上,而 SLAVE_A 的數據階段可能還未完成。

因此在設計 slave 時,通常需要處理兩個 ready 信號:

? 總線側的 HREADY(輸入 ready),用于控制數據傳輸

? Slave 輸出的 HREADY,用于表明數據已經被接收

主流 FPGA 支持不足

在 FPGA 工程中,AHB 還存在另一個痛點:生態與工具支持有限。

? 主流 FPGA 的生態幾乎都是 AXI 為主

? AHB 不像 APB 那樣簡單,也缺少官方 interconnect IP

? Vivado/Quartus 等工具對 AHB 的參考設計和自動生成支持非常有限

? 很少有工程師愿意在 FPGA 中自己實現一套 AHB 互聯

因此,盡管 AHB 有其優勢,實際使用時需要付出更多工程成本。

AHB 的工程實用性

盡管存在這些痛點,但在 特定規模的配置總線場景 下,AHB-Lite 仍然非常實用:

? 它解決了 APB 難以做 pipeline 的問題

? 它避免了 AXI-Lite 需要手動管理順序語義的麻煩

? 同時,AHB-Lite 的復雜度介于 APB 和 AXI-Lite 之間,既不太弱,也不過于臃腫

因此,對于中等規模的配置通路,AHB-Lite 往往是工程上最折中的選擇。

寫在最后

在實際 SoC、FPGA IP 與外設控制器設計中,配置總線的選擇往往是權衡穩定性、性能與工程成本的折中。

總線類型 優點 缺點 工程適用場景
APB 簡單、易集成、資源占用低 讀寫共享通路、不易 pipeline、時序閉合難 小規模配置總線、低速寄存器訪問
AXI-Lite 讀寫通道獨立、支持并行、可連續請求 順序不可控、通道多、硬件成本高 高并發配置需求、需要多 master/多 slave 支持
AHB-Lite 地址/數據階段解耦、可流水化、支持 back-pressure HREADY 雙重語義復雜、FPGA 工具生態弱 中等規模配置總線、需要 pipeline 且順序重要

從工程實踐來看:

APB 適合簡單、低速配置場景,資源占用最小,但在系統規模擴大、跨時鐘域或多 slave 情況下容易遇到時序收斂和 slice/pipeline 難題。

AXI-Lite 靈活性高,讀寫通道獨立且可并行,但需要手動管理順序語義,硬件復雜度和接線成本高。

AHB-Lite 在中等規模配置總線中最為折中:它既解決了 APB 難以 pipeline 的痛點,也規避了 AXI-Lite 的順序管理麻煩,同時硬件復雜度適中,但需要處理 HREADY 雙重語義,并且在 FPGA 中缺乏工具支持。

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

    關注

    1662

    文章

    22469

    瀏覽量

    638105
  • 寄存器
    +關注

    關注

    31

    文章

    5612

    瀏覽量

    130274
  • 總線協議
    +關注

    關注

    0

    文章

    172

    瀏覽量

    15648

原文標題:FPGA雜談:APB、AHB-Lite、AXI-Lite的選型與痛點

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Zynq中AXI4-LiteAXI-Stream功能介紹

    Zynq中AXI4-Lite功能 AXI4-Lite接口是AXI4的子集,專用于和元器件內的控制寄存器進行通信。AXI-Lite允許構建簡單的元件接口。這個接口規模較小,對設計和驗證方
    的頭像 發表于 09-27 11:33 ?1w次閱讀
    Zynq中<b class='flag-5'>AXI4-Lite</b>和<b class='flag-5'>AXI</b>-Stream功能介紹

    一文詳解AHB-Lite協議

    主要用于高性能模塊(如CPU、DMA和DSP等)之間的連接,一個master可以有多個slave,AHBAPB之間通過一個AHB2APB橋轉接。這里是實現一個AHB_Lite
    的頭像 發表于 08-27 09:23 ?3169次閱讀
    一文詳解<b class='flag-5'>AHB-Lite</b><b class='flag-5'>協議</b>

    RDMA簡介8之AXI 總線協議分析1

    點對點連接總線,其去掉了地址總線,主要用于點對點間的高速數據流傳輸。三種接口的對比如表 1 所示:表1 AXI4、AXI4-Lite
    發表于 06-24 18:00

    有沒有一種標準的方式到達PL AXI-Lite總線

    嗨,我將通過測試驗證這一點,但我對AXI-Lite外設“寄存器寫入”如何出現在AXI-Lite總線上有疑問。AXI標準表明數據和地址可以非常相互獨立地出現,從靈活性的角度來看這是很好的
    發表于 04-12 13:45

    請問S_AXI端口是否遵循AXI_Lite協議

    ,portis僅顯示為S_AXI。接口引腳與AXI lite兼容。我需要知道S_AXI端口是否遵循AXI_Lite
    發表于 05-14 09:09

    AXIAHBAPB的性能有什么不同?

    什么是AMBA?AMBA分為哪幾種?AXIAHBAPB的性能有什么不同?AHB總線是如何組成的?AP
    發表于 06-18 06:55

    AMBA AHB總線APB總線資料合集

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

    AHB-lite總線如何處理獨占訪問

    我正在使用混淆的RTL for Cortex-M3。我有一個可行的設計,可以將3個AHB-lite總線復用為2個AXI3總線。該設計類似于具有代碼
    發表于 08-18 11:11

    在Arm AMBA協議集中AHB-lite可否使用

    Arm AMBA協議集中,LPI 在AMBA4 出現,協議和鏈路層 與 AXI/AHB 無關 獨立的嗎? AHB-lite 可否使用?
    發表于 09-08 11:35

    ARM CoreLink AXI4至AHB Lite XHB-400橋接技術參考手冊

    XHB將AXI4協議轉換為AHB-Lite協議,并具有AXI4從接口和AHB-Lite主接口。有
    發表于 08-02 06:51

    PrimeCell基礎設施AMBA 2 AHB至AMBA 3 AXI橋(BP136)技術概述

    AMBA?2 AHB?至AMBA 3 AXI?橋使AHB主機能夠與AXI從機或互連進行通信(如果時鐘和重置信號是公共的)。 該網橋有三種變種,可支持以下接口: ·ARM11
    發表于 08-21 06:43

    PrimeCell高性能矩陣(PL301)技術概述

    (PL301)技術參考手冊。 IP的這種組合提供了對其他AMBA接口協議的支持,包括AHB-LiteAPB。 使用基于AMBA Designer圖形用戶界面(GUI)的配置工具來設計您的母線矩陣。 然后,您可以在以下位置生成、
    發表于 08-22 06:22

    AMBA總線AHBAPBAXI性能對比分析AHB詳解

    高性能總線 ASB (Advanced System Bus) 高級系統總線 APB (Advanced Peripheral Bus) 高級外圍總線
    發表于 11-15 12:26 ?3.4w次閱讀

    AXI總線協議AHBAPBAXI對比分析

    V1.0 ASB、APB是第一代AMBA協議的一部分。主要應用在低帶寬的外設上,如UART、 I2C,它的架構不像AHB總線是多主設備的架構,APB
    發表于 04-14 10:54 ?4970次閱讀

    自定義AXI-Lite接口的IP及源碼分析

    在 Vivado 中自定義 AXI4-Lite 接口的 IP,實現一個簡單的 LED 控制功能,并將其掛載到 AXI Interconnect 總線互聯結構上,通過 ZYNQ 主機控制,后面對 Xilinx 提供的整個
    發表于 06-25 16:31 ?5114次閱讀
    自定義<b class='flag-5'>AXI-Lite</b>接口的IP及源碼<b class='flag-5'>分析</b>