1 / 61

AMBA 版本 2.0 ( AHB/ASB 和 APB)

AMBA 版本 2.0 ( AHB/ASB 和 APB). AMBA 系统的例子. High Performance ARM processor. APB. UART. High Bandwidth External Memory Interface. Timer. APB Bridge. AHB. Keypad. High-bandwidth on-chip RAM. DMA Bus Master. PIO. Low Power Non-pipelined Simple Interface. High Performance

palila
Download Presentation

AMBA 版本 2.0 ( AHB/ASB 和 APB)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AMBA 版本 2.0(AHB/ASB 和 APB)

  2. AMBA系统的例子 High Performance ARM processor APB UART High Bandwidth External Memory Interface Timer APB Bridge AHB Keypad High-bandwidth on-chip RAM DMA Bus Master PIO Low Power Non-pipelined Simple Interface High Performance Pipelined Burst Support Multiple Bus Masters

  3. 内容 • AHB 主控,仲裁,译码,从控 ASB 基本周期,译码周期 APB 主控,从控 测试 结构,进入,地址,读,写,退出 将来多层 AHB, AHB 简化版

  4. AHB 互连 Arbiter HADDR Slave #1 HADDR HWDATA Master #1 HWDATA HRDATA HRDATA Address/Control Slave #2 Master #2 Write Data Slave #3 Read Data Master #3 Slave #4 Decoder

  5. AHB 基本信号 • HCLK所有AHB动作的参考 • HADDR 32 位地址总线 • HWRITE读/写周期 • HREADY传输完成响应 • HWDATA写数据总线 • HRDATA读数据总线

  6. AHB 基本信号时序 Address Phase Data Phase HCLK HADDR A HWRITE A HRDATA A HWDATA A

  7. AHB 基本信号时序 Address Phase Data Phase HCLK HADDR A HWRITE A HWDATA A HREADY A A HRDATA A

  8. AHB 总线主控 Bus Master } HCLK HBUSREQx HGRANTx HLOCKx HBURST[2:0] HRESETn Arbiter HADDR[31:0] HWRITE HREADY HWDATA HRDATA } HBURST[2:0] HTRANS[1:0] HSIZE[2:0] HPROT[3:0] Control } HRESP[1:0] Transfer Responses

  9. AHB 仲裁 Bus Arbiter HCLK HRESETn HBUSREQa HGRANTa HLOCKa HGRANTb HGRANTc HBUSREQb HGRANTd HLOCKb HBUSREQc HMASTER[3:0] HLOCKc HMASTLOCK HBUSREQd HLOCKd HREADY HBURST[2:0] HADDR[31:0] HTRANS[1:0] HRESP[1:0] HSPLIT[15:0] Split support

  10. AHB 仲裁信号 • HBUSREQx来自总线的请求 • HGRANTx对总线主控的响应 • HLOCKx主控锁定传送 • HMASTER[3:0]地址/控制多路复用器开关 • HMASTLOCK当前主控正在执行锁定的访问 • HBURST[2:0]猝发长度指示 (延缓仲裁) • HTRANS[1:0] 要执行的下一个周期类型 • HRESP[1:0]从控响应 • HSPLIT[15:0]从控可以完成Split处理

  11. AHB 仲裁器时序 HCLK HBUSREQx HGRANTx HMASTER #A HADDR A A+4 HWDATA A

  12. HTRANS HTRANS Type Description 00 IDLE总线主控占用总线,但不想执行传送。 01 BUSY占用总线的主控处于猝发中, 不能立即继续下一个传送。 10 NON-SEQ猝发的第一个传送或一个单独的传送 11 SEQ接下来的猝发传送地址与前面的传送是等步长连续

  13. HBURST HBURST Type Example 000 SINGLE0x48 001 INCR0x48, 0x4C, 0x50 010 WRAP40x48, 0x4C, 0x40, 0x44 011 INCR4 0x40, 0x44, 0x48, 0x4C 100 WRAP80x48, 0x4C, .., 0x5C, 0x40, 0x44 101 INCR8 0x40, 0x44, 0x48, ……., 0x5C 110 WRAP160x48, 0x4C, ……, 0x7C, 0x40, 0x44 111 INCR16 0x40, 0x44, 0x48, …………, 0x7C

  14. AHB 译码器 Bus Decoder HSELa HSELb HSELc HSELd HADDR[31:10] • HSELx : Combinatorial address decode slave select lines HCLK HADDR[31:10] ADDRb ADDRa HSELa HSELb

  15. AHB 从控 HCLK HRESETn HSELx HADDR Bus Slave HWRITE HTRANS HSIZE HBURST HRDATA HWDATA HRESP HREADY HREADYout Split-capable slave HMASTER HSPLITx HMASTLOCK

  16. AHB 从控时序 HCLK HADDR A HSELa HREADY HRESP OKAY OKAY OKAY

  17. HREADY 输入/输出 • HREADY - input - previous access completing? • HREADYout - output - waits states required? Response Mux HREADYout Slave#1 HREADYout Slave#2 HREADY to all masters HREADYout Slave#3 HREADYout Slave#4 back to all slaves Decoder Selects

  18. 默认从控 0xFFFF_FFFF Default Slave Decoder logic case HADDR is when …. => HSELebi <= ‘1’; when …. => HSELsram <= ‘1’; when …. => HSELapb <= ‘1’; when others => HSELdefault <= ‘1’; end case; Slave 3 (APB) 0xCFFF_FFFF 0xC000_0000 0x5000_FFFF 0x5000_0000 0x3FFF_FFFF 0x0000_0000 Slave 2 (APB) Default_Slave logic case HTRANS is when IDLE|BUSY => HRESP <= OKAY; when others => HRESP <= ERROR; end case; Slave 1 (APB) 0x0000_0000

  19. 其它的从控响应 HRESP 00 OKAY 01 ERROR 10 RETRY 11 SPLIT 需要两个周期的响应时间,允许主控从地址流水线时序恢复

  20. 2 周期响应 HRESP 事件 总线主控操作 ERROR发生退出修正退出并重试失败的访问 RETRY从控不能立即执行操作重试访问 SPLIT从控可以离线处理操作重试访问

  21. RETRY 响应 HCLK HTRANS SEQ IDLE NONSEQ NONSEQ HADDR undef A A+4 A HREADY RETRY OKAY RETRY HRESP

  22. SPLIT 传送 • AHB 从控 • 储存来自总线主控的请求 • 离线处理请求 • 可以优化SPLIT请求 • 传送是SPLIT时的信号仲裁 • AHB 仲裁器 • 除去SPLIT总线主控的优先级 • 当SPLIT访问可以完成的时候恢复优先级 • HSPLIT[15:0] : SPLIT总线主控的映射 • 当访问可以完成的时候,从控通知仲裁器

  23. 空转主控 当所有的总线主控都处于SPLIT状态时,成为主控。 只产生IDLE总线周期 当锁定的主控得到SPLIT响应时,成为主控 典型地,#0 主控 作为地址/控制多路复用器的一部分实现。 默认主控 当没有主控要求总线的时候成为主控。 一般地,主控最适合要求总线 当没有总线申请的时候产生 IDLE 周期 避免最少两个周期的仲裁时间 立即访问总线 空转/默认主控

  24. 锁定的传送 HCLK HGRANTb HBUSREQb HADDR 1st Locked addr 2nd Locked addr A IDLE address B HLOCKa HMASTLOCK HMASTER Master A Master B

  25. 猝发提前结束 • 两个可选的情况: • - 仲裁器得到严格的优先级请求 • - 主控收到OKAY 回应 • 仲裁器 - 在猝发中,可以忽略HBURST信息,同意较高优先级的主控占用总线 • 主控 - 必须在猝发的每一个周期检查HGRANT - 当重新同意占用总线来完成剩余的猝发周期时,必须改变 HBURST (最简单的是使用 INCR 类型) • 主控- 可以选择立即处理 ERROR,还是在猝发结束的时候处理。 - 当有SPLIT或RETRY时,必须重试访问。 - 当重新获得总线的时候,必须改变HBURST来完成余下的猝发操作。(最简单的是使用INCR类型) • 仲裁器- 必须监视HTRANS来检测猝发结束 (NSEQ 或 IDLE) • 猝发从控- 必须监视HTRANS来检测猝发的结束。

  26. 内容 AHB 主控,仲裁器,译码器,从控 • ASB 基本周期,译码周期 APB 主控,从控 测试结构,进入,地址,读,写,退出 将来 多层 AHB,AHB简化版

  27. BCLK BTRAN[1:0] BA[31:0] BD[31:0] BWRITE BSIZE[1:0] BPROT[1:0] BLOK BnRES BWAIT BERROR BLAST DSELx AREQx AGNTx ASB 信号一览

  28. 基本的总线周期 BCLK Transfer Type BTRAN[1:0] Slave Address BA[31:0] DSELx BD[31:0] Data

  29. 扩展的传送 BCLK Transfer Type BTRAN[1:0] Slave Address BA[31:0] BWAIT DSELx BD[31:0] Data

  30. 译码周期 BCLK BTRAN[1:0] N_SEQ BA[31:0] Slave Address DSELx BWAIT BD[31:0] Data

  31. 总线转变 • ASB共享一条三态总线,所以,在改变总线驱动需要时间。 • 在改变期间,总线保持者要防止在总线信号上出现无效数据。 • 提供完整的转变相位。 • 从控处理响应信号 (BWAIT, BLAST 和 BERROR) 只在BCLK为低的相位驱动,以便总线在BCLK为高的相位的阶段转变。 • 在非连续传送的BCLK低相位阶段,数据是不驱动的。

  32. AHB 与 ASB 比较 • AHB 在以下方面超过 ASB • 单时钟沿操作。 • 非三态实现 • 单周期总线主控移交 • 猝发传送 • Split 处理 • 比较宽的数据总线配置

  33. 内容 AHB 主控,仲裁器,译码器,从控 ASB 基本周期,译码周期 • APB 主控,从控 测试结构,进入,地址,读,写,推出 将来 多层 AHB, AHB简化版

  34. APB 信号列表 • PCLK - 设备时钟 • PADDR[..] - 设备地址总线 • PWRITE - 设备读/写信号 • PSELx - 单独的从选择信号 • PWDATA[..] - 设备写数据总线 • PRDATA[..] - 设备读数据总线 • PENABLE - 设备数据使能

  35. 地址译码阶段 AHB memory map APB memory map Timers memory map APB Bridge Timers AHB Decoder 0xCFFF_FFFF 0xC000_0000 0x5000_FFFF 0x5000_0000 0x3FFF_FFFF 0x0000_0000 Slave 3 (APB) 0xC3FF_FFFF 0xC300_0000 0xC2FF_FFFF 0xC100_0000 0xC000_FFFF 0xC000_0000 Peripheral 3 (UART) Timer 2 0xC2FF_FFFF 0xC200_0000 0xC1FF_FFFF 0xC100_0000 HSELapb Timer 1 Peripheral 2 (Timers) PSELtim Slave 2 (SRAM) Peripheral 1 (Int Cont) Slave 1 (EBI)

  36. APB 互连 PCLK AHB2APB Bridge HCLK PADDR HADDR PWRITE HWRITE Peripheral #1 PENABLE APB Master PWDATA HWDATA APB AHB Peripheral #2 PRDATA HRDATA Peripheral #3 PSEL#1 PSEL#2 HSEL PSEL#3

  37. APB 写周期 PCLK PADDR Addr1 PWRITE PSEL PENABLE PWDATA Data1

  38. APB 读周期 PCLK PADDR Addr PWRITE PSEL PENABLE PRDATA Data

  39. 慢速 APB 设备设计 Slow APB Peripheral Designs • APB 访问必须花费两个 PCLK 周期 • 在APB上没有 WAIT 信号 • 什么样的设备需要长的访问时间 ? • UART ? • 仅须在中断发生的时候,或在轮询UART状态寄存器之后。 • 慢速的存储器 ? • 全功能的存储器接口要求在APB上不支持的传送大小信息。 • 标准的解决方案是将慢速设备当作一个AHB部件来实现 (或者通过一个AHB/AHB桥放在一个单独的AHB上)

  40. APB 到 AHB HCLK/PCLK HADDR Addr HWRITE HRDATA Data HREADY PADDR Addr PWRITE PSEL PRDATA Data

  41. 内容 AHB 主控,仲裁器,译码器,从控 ASB 基本周期,译码周期 APB 主控,从控 • 测试 结构,进入,地址,读,写,退出 将来 多层 AHB, AHB简化版

  42. AMBA 测试配线 Application Peripheral Dedicated Peripheral Inputs Dedicated Peripheral Outputs Test Stimulus Test Results Bus Interface AHB/ASB/APB

  43. AMBA 测试接口 Test Interface Controller (TIC) TCLK Control TREQA HADDR TREQB HWDATA TACK External Bus Interface (EBI) TBUS[31:0] HRDATA ASIC

  44. 测试开始序列 TCLK TREQA TREQB TACK TBUS Address HBUSREQtic HGRANTtic

  45. TREQA/TREQB • 在正常工作期间 TREQA TREQB TACK 描述 0 0 0 正常工作 1 0 0 进入测试模式请求 - - 1 测试模式已进入 • 在测试模式期间 TREQA TREQB TACK 描述 - - 0 当前访问没有完成 1 1 1 地址,控制或转变向量 1 0 1 写向量 0 1 1 读向量 0 0 1 退出测试模式

  46. 地址向量 1 2 3 4 5 HCLK TREQA TREQB TACK TBUS HTRANS HADDR HWRITE Control HWDATA Address Control Write1 Write2 IDLE IDLE Non-Seq Seq Address Address + 4 Write1

  47. 控制向量 位 位置 默认描述 0 0 控制向量有效 1 0 保留 2 0 HSIZE(0) 3 1 HSIZE(1) 4 0 HLOCK 5 1 HPROT(0) 6 1 HPROT(1) 7 0 地址增加使能 8 0 保留 9 0 HPROT(2) 10 0 HPROT(3) 11 0 HSIZE(2)

  48. 写向量 1 2 3 4 5 HCLK TREQA TREQB TACK TBUS HTRANS HADDR HWRITE HREADY HWDATA Address Write#1 Write#2 IDLE Non-Seq Seq Address Address+4 Write#1 Write#2

  49. 读向量 1 2 3 4 5 HCLK TREQA TREQB TBUS HTRANS HADDR HWRITE HRDATA Address Read #1 Read #2 IDLE Non-Seq Seq IDLE Address Address+4 Read #2 Read #1

  50. 测试结束 1 2 3 4 5 HCLK TREQA TREQB TACK TBUS HTRANS HBUSREQ HGRANT Address IDLE

More Related