当前位置:网站首页>【數字IC驗證快速入門】26、SystemVerilog項目實踐之AHB-SRAMC(6)(APB協議基本要點)

【數字IC驗證快速入門】26、SystemVerilog項目實踐之AHB-SRAMC(6)(APB協議基本要點)

2022-07-07 15:19:00 luoganttcc

導讀:作者有幸在中國電子信息領域的排頭兵院校“電子科技大學”攻讀研究生期間,接觸到前沿的數字IC驗證知識,旁聽到諸如華為海思清華紫光聯發科技等業界頂尖集成電路相關企業面授課程,對數字IC驗證有了一些知識積累和學習心得。為幫助想入門前端IC驗證的朋友,思忱一二後,特開此專欄,以期花最短的時間,走最少的彎路,學最多的IC驗證技術知識。

一、內容概述

  • APB信號介紹
  • APB傳輸時序
  • AHB與APB的區別與時序轉換
  • 不同IP之間的互聯

二、APB 總線概述

2.1、APB與AHB對比

AHB主要用在高速高性能的外設中,而APB則主要用來掛載低速外設。

在APB上掛載的外設大都是Slave,沒有Master,即被動接收數據的外設。

理解好了AHB總線之後,學習APB自然不在話下。好了,廢話不多說,速速進入正文。

2.2、APB信號介紹

信號名稱信號描述
PCLKAPB總線時鐘
PRESETnAPB複比特
PADDR[31:0]APB地址總線
PSELxAPB Slave選擇信號
PENABLEAPB 使能信號
PWRITEAPB總線傳輸方向
PRDATAAPB讀數據總線
PWDATAAPB寫數據總線

注:APB信號可結合AHB信號理解記憶。

2.3、APB信號釋義

  • PADDR[31:0]
    • 地址總線,由設備總線的bridge單元驅動
  • PSELx
    • 從譯碼器來的信號,到某一個總線從設備x
  • PENABLE
    • 用於在設備總線上把所有訪問按時間階段進行
  • PWRITE
    • 高電平:寫
    • 低電平:讀
  • PRDATA和PWDATA
    • 最多32比特寬

2.4、APB Slave 地址譯碼

在這裏插入圖片描述

  • AHB-APB Bridge 我們可以將其理解成AHB Slave
  • 上圖中黑色部分是Default Slave
  • 地址譯碼是一級一級的

2.5、APB 互聯示意圖

在這裏插入圖片描述

  • Bridge 作用是 AHB 到 APB 的時序轉換

2.6、APB 時序(重要)

2.6.1、寫傳輸

在這裏插入圖片描述

  • APB 相對 AHB 來講沒有流水,每個命令固定至少 2 個時鐘周期完成!

    • APB分為兩個階段,第一個階段SETUP 階段,只有一個時鐘周期此時 PSEL 信號為高, PENABLE 信號為低。可類比 AHB 中的地址傳輸階段!
    • 第二個階段是 ENBALE 階段。此時 PSEL 信號為高,PENABLE 信號為高。讀/寫數據信號有效,可類比 AHB 中的數據傳輸階段!
  • 上述時序僅僅是AMBA 1.0/2.0的時序,固定只有兩拍。昇級到AMBA 3.0後可以利用HREADY擴展 ENABLE 階段,而SETUP 還是一個時鐘周期。

2.6.2、讀傳輸

在這裏插入圖片描述

  • 讀跟寫的最大差异在於 PWRITE 信號,此時該信號為低。
  • 上述時序僅僅是AMBA 1.0/2.0的時序,固定只有兩拍。昇級到AMBA 3.0後可以利用HREADY擴展 ENABLE 階段,而SETUP 還是一個時鐘周期。

2.7、APB Bridge

在這裏插入圖片描述

  • AHB 是流水的,對於Bridge來講,主要作用是將流水打斷,即把AHB的時序轉成APB,如果AHB是流水的話,就會通過這個Bridge來打斷!
    • 主要通過HREADY信號來將流水打成兩拍。
  • APB Bridge 還有個功能是用來做一個二級譯碼

2.8、APB Bridge FSM(狀態機)

在這裏插入圖片描述

2.9、APB Slave 框圖(接口信號,需要會畫)

在這裏插入圖片描述

  • Control 信號較AHB要少很多哦!
  • ABMA 3.0 支持 PReady 信號哦~!

2.10、APB 到 AHB 的時序轉換 - 讀

在這裏插入圖片描述

  • 上圖是 AHB 讀取 APB Slave 的時序操作,可以看到通過HReady信號將流水操作進行了打斷
    • T1-T2之間HREADY為高,通過HADDR傳送地址信號,通過HWRITE為低,傳送讀控制信號。
    • T2-T3之間HREADY為低,打斷AHB流水的讀操作。同時,APB的PSEL為高,PENABLE為低,APB進入 SETUP 階段,讀取地址和讀控制信號。
    • T3-T4之間,APB的PSEL為高,PENABLE為高,APB進入 ENABLE 階段,通過PRDATA讀取APB Slave的數據。同時HREADY為高,將讀取到的APB Slave數據,返回到HRDATA
    • 至此一個讀操作完成。
  • PRDATA 是可以直接送給 HRDATA (在同一拍),如果想要HRDATA打一拍的話,可以在APBENABLE階段也將HREADY拉低,這樣HRDATA就會晚於PRADTA一拍了。

三、不同 IP 之間的互聯

3.1、通信方式

  • CPU (Master) < – > IP (Slave)
  • IP(Master) < – > IP (Slave)

3.2、Memory Mapped IO

  • 每一個從設備都占用系統中的一段地址空間
  • 所有的從設備都是可尋址的
  • 寄存器/存儲器都是內存映射方式訪問
  • CPU/IP 讀寫其他IP的數據類似於讀寫存儲器

3.3、IP 間的通信互聯

  • 主設備被 arbiter grant 之後,可以訪問總線上的所有從設備

在這裏插入圖片描述

3.4、 一個IP可以可以同時擁有主設備接口和從設備接口

在這裏插入圖片描述

  • Master 去外讀寫數據
  • Slave 作為寄存器配置

3.5、CPU 與 IP 之間的通信

在這裏插入圖片描述

  • CPU總是作為主設備
  • IP總是作為從設備
  • IP可以發出一個中斷請求
    • 只有 Slave 接口的IP,要想主動通知CPU就可以通過中斷的方式
    • 中斷裏面的信息不能太多
  • CPU進入中斷模式,由interrupt service routine(ISR)來處理中斷

四、AMBA Review

  • AMBA 簡介
    • AMBA2.0:AHB、ASB、APB

4.1、AHB

  • AHB的組成部分

    • AHB Master、AHB Slave、AHB Aribiter、AHB Decoder
  • AHB 信號

    • HCLK、HRESETn、HADDR、HTRANS、HWRITE、HSIZE、HBURST、HWDATA、HSELx、HRDATA、HREADY、HRESP
  • AHB 傳輸的兩個階段

    • 地址周期、數據周期
  • 當前傳輸的狀態 HTRANS

    • IDLE、BUST、NOSEQ、SEQ
  • 猝發傳輸類型HBURST(了解)

    • SINGLE、INCR(如何開始一次新的INCR傳輸?)
    • Burst 傳輸不可跨越1K邊界
  • HSEL:由AHB Decoder通過地址映射給出

  • AHB Slave 響應信號

    • HREADY 傳輸完成、HRESP傳輸響應(OK、ERROR、RETRY)
    • AHB Slave短時間無法響應(HREADY)?長時間無法響應(HRESP)【實際使用無法界定什麼叫短時間,什麼叫長時間,故用的不多!】
  • 32比特大小端數據總線的有效字節

  • AHB仲裁信號(了解)

    • HBUSREQ、HGRANT、HMASTER
    • 主設備x可控制總線的條件
  • AHB Master、AHB Slave、AHB Arbiter、AHB Decoder的接口信號

  • AHB-Lite

4.2、APB

  • APB的組成部分

    • AHB2APB Bridge、APB Slave
  • APB 信號

    • PCLK、PRESETn、PADDR、PSEL、PENABLE、PWRITE、PRDATA、PWDATA
  • APB Slave 的地址映射

  • APB 傳輸(AMBA 1.0/2.0)

    • Always two cycle transfer:Setup cycle、Enable Cycle
    • No wait cycle and response signal(AMBA 3.0是有的)
  • APB Bridge 和 APB Slave的接口信號

五、總結

至此 AMBA 協議中的APB總線理論知識便介紹完了,APB較AHB最大特點就是沒有流水操作,且APB在AMBA 2.0中,命令的執行固定兩個時鐘周期。通過本文的介紹我們也不難發現,APB和AHB之間很多信號都類似,且APB較AHB少了許多控制信號,所以只要理解了AHB,APB自然不在話下。後面我們將通過AHB-SRAMC實戰項目,繼續深入理解AHB和APB。

後記:因本人水平有限,不足之處在所難免,敬請各比特讀者朋友批評指正。關於博主的《數字IC驗證快速入門》系列文章,目前在CSDN連載更新中,歡迎訂閱!

原网站

版权声明
本文为[luoganttcc]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207071321524018.html