当前位置:网站首页>【數字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連載更新中,歡迎訂閱!
边栏推荐
- Classification of regression tests
- Ctfshow, information collection: web4
- 【服务器数据恢复】某品牌StorageWorks服务器raid数据恢复案例
- Compile advanced notes
- Unity's ASE achieves full screen sand blowing effect
- FFmpeg----图片处理
- MySQL installation configuration 2021 in Windows Environment
- Ctfshow, information collection: web12
- Briefly describe the working principle of kept
- MongoD管理数据库的方法介绍
猜你喜欢

全日制研究生和非全日制研究生的区别!

CTFshow,信息搜集:web13

智汀不用Home Assistant让小米智能家居接入HomeKit

Ctfshow, information collection: web6

简述keepalived工作原理
![[make a boat diary] [shapr3d STL format to gcode]](/img/aa/6113c51ca82b00c0adc42fbf3f2b4b.png)
[make a boat diary] [shapr3d STL format to gcode]

TypeScript 发布 4.8 beta 版本

MySQL bit类型解析

Protection strategy of server area based on Firewall

Mathematical modeling -- what is mathematical modeling
随机推荐
Niuke real problem programming - day15
Ctfshow, information collection: web14
Niuke real problem programming - day13
jacoco代码覆盖率
Ctfshow, information collection: web9
Deformable convolutional dense network for enhancing compressed video quality
Oracle控制文件丢失恢复归档模式方法
leetcode 241. Different Ways to Add Parentheses 为运算表达式设计优先级(中等)
Qu'est - ce qu'une violation de données
Several ways of JS jump link
防火墙基础之服务器区的防护策略
Jetson AGX Orin CANFD 使用
什么是pv和uv? pv、uv
TypeScript 发布 4.8 beta 版本
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
A need to review all the knowledge, H5 form is blocked by the keyboard, event agent, event delegation
[follow Jiangke University STM32] stm32f103c8t6_ PWM controlled DC motor_ code
[server data recovery] data recovery case of raid failure of a Dell server
[deep learning] semantic segmentation experiment: UNET network /msrc2 dataset
Apache多个组件漏洞公开(CVE-2022-32533/CVE-2022-33980/CVE-2021-37839)