当前位置:网站首页>【数字IC验证快速入门】26、SystemVerilog项目实践之AHB-SRAMC(6)(APB协议基本要点)
【数字IC验证快速入门】26、SystemVerilog项目实践之AHB-SRAMC(6)(APB协议基本要点)
2022-07-07 13:22: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连载更新中,欢迎订阅!
边栏推荐
- A need to review all the knowledge, H5 form is blocked by the keyboard, event agent, event delegation
- Classification of regression tests
- 广州开发区让地理标志产品助力乡村振兴
- 知否|两大风控最重要指标与客群好坏的关系分析
- MySQL bit type resolution
- asp. Netnba information management system VS development SQLSERVER database web structure c programming computer web page source code project detailed design
- 连接ftp服务器教程
- CTFshow,信息搜集:web10
- 上半年晋升 P8 成功,还买了别墅!
- Niuke real problem programming - Day10
猜你喜欢
#HPDC智能基座人才发展峰会随笔
Win10 or win11 taskbar, automatically hidden and transparent
Niuke real problem programming - Day9
CTFshow,信息搜集:web14
MySQL bit类型解析
Niuke real problem programming - Day17
居然从408改考自命题!211华北电力大学(北京)
“百度杯”CTF比赛 2017 二月场,Web:include
Apache多个组件漏洞公开(CVE-2022-32533/CVE-2022-33980/CVE-2021-37839)
Change win10 Screensaver
随机推荐
Ctfshow, information collection: web14
什麼是數據泄露
Wechat applet 01
Ctfshow, information collection: web10
Integer learning
居然从408改考自命题!211华北电力大学(北京)
[make a boat diary] [shapr3d STL format to gcode]
[Data Mining] Visual Pattern Mining: Hog Feature + cosinus Similarity / K - means Clustering
What is data leakage
【OBS】RTMPSockBuf_ Fill, remote host closed connection.
Stm32f103c8t6 PWM drive steering gear (sg90)
Window环境下配置Mongodb数据库
MySQL bit type resolution
CTFshow,信息搜集:web9
Novel Slot Detection: A Benchmark for Discovering Unknown Slot Types in the Dialogue System
[server data recovery] a case of RAID data recovery of a brand StorageWorks server
Promoted to P8 successfully in the first half of the year, and bought a villa!
Niuke real problem programming - day14
时空可变形卷积用于压缩视频质量增强(STDF)
2022年5月互联网医疗领域月度观察