【SystemVerilog项目实践】3.AHB-SRAMC(APB总线)

1、APB总线概述

APB:Advanced Peripheral Bus。APB是高级微控制器总线体系中层次的一部分,为了降低功耗消耗和接口复杂性做了优化,APB应该被用来连接任何一种低宽带且不需要任何高性能通道的总线接口的外设。APB总线可以看是APB bridge和APB从设备两部分组成的,APB Bridge可以锁存总线所有地址、数据和控制信号,并进行二级译码来产生APB从设备选择信号

2、APB slave 接口框图

3、APB信号释义

PCLK总线时钟总线时钟,同步所有传输,时钟上升沿触发信号
PRESETn复位信号复位信号低有效
PSELx从选择通过地址译码选择出哪个slave被传输信号
PENABLE选通信号指示APB操作的第二个周期
PADDR地址总线32位地址总线
PWRITE数据传输方向0是读数据,1是写数据
PWDATA写数据总线写操作,master传输给slave的数据总线
PRDATA读数据总线读操作,slave返回给master的数据总线

4、状态机

 IDLE:当前总线的默认状态

SETUP:当有数据传输的时候,总线转移到SETUP状态,这时对应的选择信号,产生使能信号PSELx。总线仅在SETUP状态保持一个时钟周期并将总是在下一个时钟的上升沿移动到 ENABLE状态。

ENABLE:这个状态下PENABLE信号会被拉高,SETUP转换到ENABLE状态的时候,地址数据、控制信号和选择信号都会一直保持稳态,维持一个周期如果没有数据是传输的要求就返回IDLE,如果有就返回SETUP。

5、APB写传输

 T1时刻:状态机进入IDLE状态

T2时刻:PADDR、PWRITE、PWDATA数据发生变化,开始为写操作做准备,PWRITE拉高,表明是写操作。这时候处于SETUP 阶段,译码器会根据地址选择出要写入数据的slave,PSEL拉高。

T3时刻:PENABLE拉高,有限状态机进入ENABLE状态。

T4时刻:PENABLE和PSEL信号拉低,PADDR和PWDATA暂时不做改变,为了低功耗。

T5时刻:回到IDLE阶段。

6、APB读传输

读跟写的最大差别就是PWRITE信号,PWRITE为低表示为读信号,要特别注意的是,在 T3 后,也就是在进入 ENABLE 周期后,APB 从必须要将 M 所要读取的数据准备好,以便 M 可以在 ENABLE 周期末被 T4 正时钟沿触发时正确的将数据读取

7、APB bridge

APB桥的作用是将系统总线传输转换为APB传输,并实现以下功能:

  • 锁存地址

  • 译码地址,产生一个选择信号PSELx

  • 写数据:把数据传输到APB总线上,读数据:驱动APB数据驱动到总线上

  • 产生一个时序选通信号

接口框图

APB桥为AHB的一个从设备,但它在APB中是唯一的主设备,而APB中其它低速和低功率消耗的外围皆为APB桥的从设备

 APB bridge是通过利用HREADY信号,打断AHB的流水传输,从而达到时序转换的效果。把AHB的时序转换为APB。

8、APB到AHB的时序转换

读数据(突发读传输)

每一组数据都只需要一个等待周期:

 T1时刻:HADDR、HRDATA产生数据。

T1-T2时刻:HREADY拉高,HADDR传送地址数据,地址信号被 APB 总线采样。如果该传送是针对外设的话,这个地址就会被译码成选择信号发往外                       设,HWRITE置0,表示是读操作。

T2-T3时刻:HREADY拉低,打断了AHB的流水线传输操作;PSEL拉高,PENABLE为低,APB进入SETUP阶段,读取地址和控制信号

T3-T4时刻:PENABLE拉高,PSEL为1,APB进入ENABLE阶段,通过PRDATA读取APB slave的数据;HREADY拉高,将读取APB slave数据

写数据(突发写传输)

当批量写操作的时候,第一块数据不需要等待周期,之后的每一块数据都需要一个等待周期。 APB桥中需要有 2 个地址寄存器,当处理一个数据块写操作时,可以寄存下一个数据块的地址。APB总线上的单块数据写操作不需要等待周期。APB桥的责任是对地址和数据进行采样,并在写操作的过程中保持它们的值。

 读写交替传输

如果写操作之后跟随着读操作,那么需要 3 个等待周期来完成读操作。通常的情况下,不会有读操作之后紧跟着写操作的发生,因为两者之间 CPU 会进行指令读取。

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值