SoC系列(4) AMBA 2.0 AHB【上】

498 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天! image.png

AMBA总线概述

系统总线简介

  • 系统芯片中各个模块之间需要有接口来连接
  • 总线作为子系统之间共享的通信链路
  • 优点
    • 低成本
    • 方便医用
  • 缺点
    • 会造成性能瓶颈

AMBA 2.0

  • Advanced Microcontroller Bus Architecture
    • 片上总线的标准(SoC片上的总线结构)
  • 定义了三种总线
    • AHB(Advanced High-Performance Bus):高级高性能总线
    • ASB(Advanced System Bus)【很少用】
    • APB(Advanced Peripheral Bus):高级外设总线,低功耗,低速外挂Slave接口

AMBA发展史

  • AMBA1.0
    • ASB和APB
  • AMBA2.0
    • AHB,ASB和APB
  • AMBA 3.0
    • AMBA Advanced eXtensible Interface (AXI)
  • AMBA 4.0 -...

image.png

APB

  • 高速总线,高性能
  • 2级流水线操作
  • 可支持多个总线主设备(最多16个)
  • 支持burst传输(连续传输,eg:连续写操作,如果连续写4个数,就是4beat)
  • 总线带宽: 8,16,32,64,128bits[其中32bit常见,随着高性能处理器的发展,64bits比较常见]
  • 上升沿操作
  • 对于一个新设计建议使用 AHB

ASB(用得较少)

  • 高速总线
  • 流水线操作
  • 支持多个总线设备
  • 支持burst传输
  • 总线带宽:8,16,32bits
  • 三态、双向总线【SPI,I2C,SD接口常见都是双向的】
    • (不适合做DFT)
  • 下降沿或者上升沿触发

APB

  • 低速总线、低功耗
  • 接口简单
  • 在Bridge中锁存地址信号和控制信号
  • 适用于多种外设
  • 上升沿触发

AHB组成部分

  • AHB主设备(Master)
    • 初始化一次读/写操作
    • 某一时刻只允许一个主设备使用总线
    • CPU,DMA,DSP,LCDC...
  • AHB 从设备(slave)
    • 响应一次读写操作
    • 通过地址映射到来选择使用哪一个从设备
    • 外部存储控制器EMI,APB bridge
  • APB 仲裁器(arbiter)
    • 允许某一个主设备控制总线
    • 在AMBA协议中没有定义仲裁算法
  • AHB译码器(decoder)
    • 通过地址译码来决定选择哪一个从设备

APB组成部分

  • AHB2APB Bridge

    • 可以锁存所有的地址、数据和控制信号
    • 进行二级译码来产生APB从设备选择信号
  • APB总线上的所有模块都是APB从设备【APB是状态机控制的,分为两拍:第一拍是psel,第二拍是Penable信号。】
    1656073917545.png

  • 不是流水线方式

  • 接口是零功耗(功耗很低)

AMBA协议其他有关问题

  • 与工艺无关(TSMC台积电;SMIC中芯国际)
  • 没有定义电气特性
  • 仅在时钟周期级定义时序
    • 提取时序参数依赖于所采用的工艺和工作频率

1656074093037.png

image.png

image.png

1656074524103.png

1656142407791.png

DMA: slave;使用slave端口配置DMA的端口行为 master: 直接对Memory的访问