SOC设计——(2)AMBA总线之AHB

一、总线概述

  • ARM占的市场大,IP都会兼容AMBA的interface
  • 缺点:数据传输速率有瓶颈。
  •  

  • 2级流水线:地址周期、数据周期

  • 功耗大部分来自clk的翻转

  • AHB由四部分组成:master、slave、arbiter、decoder
  • 每个设备都有一个地址的map

 

  • DMA帮助CPU搬移数据,发完从INT给CPU发送中断
  • 记录状态到States状态里,CPU读和控制。右边的地址是DMA的地址存放


第0步:读DMA的状态

  • 如果是ready就进行下一步,如果是busy就不断read status

第1步:CPU设置搬移数据的相关值

第2步:启动DMA

  • 将source address和destination adress、size赋值,用write写值。
  • 初始化完毕启动DMA

第3步:DMA从memory1读数据,将读到的数据写到memory2中

第4步:DMA向CPU发送中断请求

第5步:CPU检查DMA的status状态

写驱动的本质就是配寄存器。

二、AHB总线

典型AHB系统与AHB总线互联

slave中hsel被激活,这个slave就被选中了。

  • 1)发起一个请求给仲裁器,仲裁器同意后就可以驱动地址和控制信号
  • 2 )abiter允许某个主设备控制总线
  • 3)选中一个slave从设备,拉高HREADY信号,完成总线传输。

  • 32位的地址是4G,我们只用一点点。
  • 选中default地址后,返回ok,不停写不停丢掉。

AHB传输有两个阶段:地址周期和数据周期,但一共有几个cycle由slave发出的HREADY信号决定。

  • master发送地址A和控制信号(读或写)
  • HREADY为高,master可以采样sample到数据。

  • slave的HREADY信号为低,等待两个周期

  • 流水线传输,先是地址后是数据
  • 除了第一次传数据时间长,此外约等于一拍传一个数。

提高效率,降低等待的可能性,采用Burst传输

前面是发一个地址,再发一个数据。DMA搬运数据,采用burst,一次发送128bit数。

Burst类型 8种:single线性、incr、incr增量猝发4/8/16k、打包猝发4/8/16k

  • single transfer   前面提到的一个地址一个数
  • INCR 线性增加 +4/8/12
  • 或者定死,4拍、8拍、16拍

slave发了burst传输,master提前知道要准备多少数据,降低等待的时间。

第一拍:永远是NONSEQ

Flash写周期很慢,用软硬件结合方式,软件与硬件握手,查询是否写完。

 

AHB仲裁信号

第0位:操作数,操作码  CPU发

 

 

面试题:画出AHB设备接口图。ahb master的信号列表

  •  同步:clk、reset
  • 申请总线:HBUSREQx、HLOCKx
  • grant总线:HGRANTx
  • 发送控制信号:HTRANS、HADDR、HWRITE、HSIZE、HBURST、HPROT;如果是写,就发送写操作HWDATA
  • 根据slave反馈的信号:HREADY、HRESP,来判断控制信号给出,持续给、等待、接受数据。
  • HRDATA 从bus接受到的数值

AHB从设备接口

  • clk、reset
  • select:如果被选中,HSELx
  • address和control:处理address、write、htrans、size、burst这些信号
  • 如果控制信号是写数据:HWDATA;如果是发出数据:HRDATA 赋值
  • 最后,给出相应的HREADY和HRESP的信号

https://blog.csdn.net/ivy_reny/article/details/78144785

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值