当前位置:网站首页>【數字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連載更新中,歡迎訂閱!
边栏推荐
- Pat grade a 1103 integer factorizatio
- Qu'est - ce qu'une violation de données
- Lidar knowledge drops
- 全日制研究生和非全日制研究生的区别!
- Stm32cubemx, 68 sets of components, following 10 open source protocols
- CTFshow,信息搜集:web5
- CTFshow,信息搜集:web13
- 【跟着江科大学Stm32】STM32F103C8T6_PWM控制直流电机_代码
- 使用Scrapy框架爬取网页并保存到Mysql的实现
- Ctfshow, information collection: web5
猜你喜欢
Niuke real problem programming - Day17
2022年5月互联网医疗领域月度观察
CTFshow,信息搜集:web8
Wechat applet 01
Write a ten thousand word long article "CAS spin lock" to send Jay's new album to the top of the hot list
CTFshow,信息搜集:web12
Promoted to P8 successfully in the first half of the year, and bought a villa!
Cocoscreator operates spine for animation fusion
CTFshow,信息搜集:web14
JSON parsing instance (QT including source code)
随机推荐
What are the safest securities trading apps
MySQL bit type resolution
Ctfshow, information collection: web8
Cocoscreator operates spine for animation fusion
Comparable and comparator of sorting
How does the database perform dynamic custom sorting?
CTFshow,信息搜集:web8
Jetson AGX Orin CANFD 使用
一个需求温习到的所有知识,h5的表单被键盘遮挡,事件代理,事件委托
Oracle控制文件丢失恢复归档模式方法
Ctfshow, information collection: web9
微信小程序 01
Compile advanced notes
[server data recovery] data recovery case of raid failure of a Dell server
暑期安全很重要!应急安全教育走进幼儿园
众昂矿业:萤石继续引领新能源市场增长
Unity's ASE realizes cartoon flame
【深度学习】图像超分实验:SRCNN/FSRCNN
Mathematical modeling -- what is mathematical modeling
Lidar knowledge drops