当前位置:网站首页>【數字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信號介紹
信號名稱 | 信號描述 |
---|---|
PCLK | APB總線時鐘 |
PRESETn | APB複比特 |
PADDR[31:0] | APB地址總線 |
PSELx | APB Slave選擇信號 |
PENABLE | APB 使能信號 |
PWRITE | APB總線傳輸方向 |
PRDATA | APB讀數據總線 |
PWDATA | APB寫數據總線 |
注: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 中的數據傳輸階段!
- APB分為兩個階段,第一個階段是
上述時序僅僅是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連載更新中,歡迎訂閱!
边栏推荐
猜你喜欢
With 8 modules and 40 thinking models, you can break the shackles of thinking and meet the thinking needs of different stages and scenes of your work. Collect it quickly and learn it slowly
微信小程序 01
Jetson AGX Orin CANFD 使用
MySQL installation configuration 2021 in Windows Environment
Used by Jetson AgX Orin canfd
Niuke real problem programming - day18
[机缘参悟-40]:方向、规则、选择、努力、公平、认知、能力、行动,读3GPP 6G白皮书的五层感悟
What is data leakage
Xiaomi's path of chip self-development
Summer safety is very important! Emergency safety education enters kindergarten
随机推荐
Novel Slot Detection: A Benchmark for Discovering Unknown Slot Types in the Dialogue System
写一篇万字长文《CAS自旋锁》送杰伦的新专辑登顶热榜
暑期安全很重要!应急安全教育走进幼儿园
知否|两大风控最重要指标与客群好坏的关系分析
Niuke real problem programming - Day10
15、文本编辑工具VIM使用
CTFshow,信息搜集:web5
什麼是數據泄露
CTFshow,信息搜集:web13
大表delete删数据导致数据库异常解决
【搞船日记】【Shapr3D的STL格式转Gcode】
"Baidu Cup" CTF competition 2017 February, web:include
STM32F103C8T6 PWM驱动舵机(SG90)
[Data Mining] Visual Pattern Mining: Hog Feature + cosinus Similarity / K - means Clustering
What is the process of ⼀ objects from loading into JVM to being cleared by GC?
【服务器数据恢复】某品牌StorageWorks服务器raid数据恢复案例
Pat grade a 1103 integer factorizatio
如何在opensea批量发布NFT(Rinkeby测试网)
【深度学习】图像超分实验:SRCNN/FSRCNN
Ctfshow, information collection: web10