加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

FPGA学员笔记分享丨AMBA总线:从APB到AHB

04/26 09:40
4974
阅读需 6 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1. 握手与反压

一般我们会将模块分为发起操作的Master和接受执行操作的Slave。Master和Slave之间需要用握手的方式去确保数据或指令的正常执行。而反压是Slave告知Master自己能正常接收数据和指令的手段;

握手机制需要注意的三件事:

1. valid与ready不可以过度依赖,表现在vaild不可以等待ready拉高后再拉高,为了防止死锁;

2. Valid拉高时与有效数据同步,时钟对齐;

3. Valid可以先拉高后等待ready拉高,每次成功握手后,如果没有新的有效数据,valid要拉底;

面对反压一般是指Slave还没准备好,这是Master需要保持数据不懂,等待ready信号握手成功后再更新数据;

一般情况下,sender和receiver直接相连反压很好设局,但是如果sender和receiver通过总线相连,总线恰好是流水线的形式,那么receiver要对sender进行反压的话,就不可以跨级反压,原因在于当receiver反压sender时,仍然有n(流水线数)的数据仍未传输;

解决方法:

1. 带存储器的跨级反压:通过将未被传输的数据通过fifo保存,防止数据被冲毁。需要注意到是当fifo内存空间只剩n(流水线数)应反压sender停止传输;

2. 不带存储器的反压;

3. 带存储器的逐级反压;‍

2. APB

我理解是一种协议,使得主机能通过寻址的方法对从机进行数据的写入和读出操作;

APB特点:支持多从设备,一次读写占两个周期,不支持突发传输;

APB2信号:

PCLK:时钟信号;

PRESETn:复位信号

PSEL:拉高表示要进行传输;

PENABLE:在PSEL的第二个周期拉高,传递数据;

PWRITE:1为写入操作,0为读出操作;

PRDATA:读数据总线;

PWDATA:写数据总线;

波形图如下图所示:(写入时序):

penable存在是由于历史问题,可以理解为当时设备问题,需要第一个周期读取地址,第二个周期才能传输数据;

如果使用时序逻辑可以不用penable信号,如果使用组合逻辑需要使用penable信号延迟一拍再传输数据,该通过状态机来实现;

APB3在增加了PREADY和PSLVERR信号:

PREADY:表示slave是否以及准备好接受主机传过来的信息;

PSLVERR:表示主机的这次传输是否有错误,比如时候访问了非法地址等;

波形图如下所示:

当pready信号拉低时,penable需要保持拉高,并且DATA1和ADDR1需要保持不变知道pready再次拉高;

3. AHB

AHB和APB的区别在于AHB将地址和数据的传输采用了流水线设计,使得数据不在需要通过两个周期才可以传输成功,比APB更加高效,同时支持了多主多从,突发传输等操作;

AHB组成由Decoder来选择和哪一个Slave进行通讯,后从Multiplexer选出和主机通讯的Slave信号进行输出;

主要信号组成有:

//全局信号:

HCLK :时钟信号;

HRESETn: 复位信号,第有效;

//Master信号:

HADDR:地址信号;

HBURST: 突发传输类型,只传输的数据是连续地址的,突发传输类型分为:

SINGLE:不突发传输;

INCR:非定长突发传输,不可以跨越1KBye的边界;

INCRx:定长的突发传输;

WRAPx:回环传输主要用于(cacheline)作用是当超过分组时, 数据循环传输

HMASTERLOCK:用来实现原子操作,用来绑定操作,比如读入和写出有顺序,则可将他们绑定,再他们完成后才可以进行别的操作;

HPROT:保护控制信号

HSIZE:数据的长度;

HTRANS:传输的类型分为:

IDLE:表示没有数据传输

BUSY:也表示没有数据传输,但此代表主机在忙,传输其实仍然在继续,一般用于突发传输中;

NONSEQ:需要传输数据,可能是只传输一次数据,或者是突发传输的第一组数据;

SEQ:需要传输数据;用于突发传输中代表连续的数据,地址需要增加;

HWDATA:写数据;

HWRITE:高代表写数据,低代表读数据;

//Slave信号:

HRDATA:读数据;

HREADYOUT:高时为数据一传输完,是Slave对主机的反压;

HRESP:表示数据是否有传输错误‍

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
XCR3384XL-10TQ144I 1 AMD Xilinx EE PLD, 10ns, 384-Cell, CMOS, PQFP144, TQFP-144
$107.46 查看
M4A5-64/32-10VNC48 1 Lattice Semiconductor Corporation EE PLD, 10ns, 64-Cell, CMOS, PQFP48, 1.40 MM HEIGHT, LEAD FREE, TQFP-48

ECAD模型

下载ECAD模型
$6.09 查看
LFE3-17EA-6FN484I 1 Lattice Semiconductor Corporation Field Programmable Gate Array, 375MHz, 17000-Cell, PBGA484, 23 X 23 MM, LEAD FREE, FPBGA-484

ECAD模型

下载ECAD模型
$35.32 查看

相关推荐

电子产业图谱