您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 综合/其它 > AMBA-总线-介绍2.0
AMBA总线目录•AMBA总线概述•AHB•APB•不同IP之间的互连系统总线简介•系统芯片中各个模块之间需要有接口来连接•总线作为子系统之间共享的通信链路•优点•低成本•方便易用•缺点•会造成性能瓶颈介绍•AdvancedMicrocontrollerBusArchitecture•片上总线的标准•定义了三种总线•AHB(AdvancedHigh-performanceBus)•ASB(AdvancedSystemBus)•APB(AdvancedPeripheralBus)发展历史•AMBA1.0•ASB和APB•AMBA2.0•AHB,ASB和APB•AMBA3.0•AMBAAdvancedeXtensibleInterface(AXI)系统•处理器和其它主设备/从设备都是可以替换的•高速总线,高性能•流水线操作•可支持多个总线主设备(最多16个)•支持burst传输•总线带宽:8、16、32、64、128bits•上升沿触发操作•对于一个新设计建议使用AHB•高速总线•流水线操作•支持多个总线主设备•支持burst传输•总线带宽:8、16、32bits•三态、双向总线•(不适于做DFT)•下降沿或者上升沿触发•低速总线、低功耗•接口简单•在Bridge中锁存地址信号和控制信号•适用于多种外设•上升沿触发组成部分•AHB主设备(master)•初始化一次读/写操作•某一时刻只允许一个主设备使用总线•uP、DMA、DSP、LCDC…•AHB从设备(slave)•响应一次读/写操作•通过地址映射来选择使用哪一个从设备•外部存储器控制器EMI、APBbridge、UART、…•AHB仲裁器(arbiter)•允许某一个主设备控制总线•在AMBA协议中没有定义仲裁算法•AHB译码器(decoder)•通过地址译码来决定选择哪一个从设备组成部分•AHB2APBBridge•可以锁存所有的地址、数据和控制信号•进行二级译码来产生APB从设备选择信号•APB总线上的所有其他模块都是APB从设备•不是流水线方式•接口是零功耗协议其他有关问题•与工艺无关•没有定义电气特性•仅在时钟周期级定义时序•提取时序参数依赖于所采用的工艺和工作频率目录•AMBA总线概述•AHB•APB•不同IP之间的互连驱动地址和控制信号允许某个主设备控制总线仅选中的从设备响应地址/控制信号拉高HREADY信号,总线传输完成Dummy/DefaultMasterDummyMaster•GrantedwhenallmastersSPLIT•GeneratesIDLEcyclesonly•TypicallyMaster#0•GrantedwhenLockedmastergetsSPLITresponse•ImplementaspartofAddress/ControlMuxDefaultMaster•Grantedwhennomasterrequiresbus•Generallymastermostlikelytorequirebus•GeneratesIDLEcycleswhennotrequestingbus•Avoidsminimum2cycleArbitrationperiod•Immediateaccesstobus(APB)DefaultSlave0x0000_00000xFFFF_FFFFcaseHADDRiswhen….=HSELebi=‘1’;when….=HSELsram=‘1’;when….=HSELapb=‘1’;whenothers=HSELdefault=‘1’;endcase;DecoderlogicSlave2(InternalMemory)Default_SlavelogiccaseHTRANSiswhenIDLE|BUSY=HRESP=OKAY;whenothers=HRESP=ERROR;endcase;Slave1(External)0xCFFF_FFFF0xC000_00000x5000_FFFF0x5000_00000x3FFF_FFFF0x0000_0000AHB信号信号•HRESETn•低电平有效•HADDR[31:0]•32位系统地址总线•HWDATA[31:0]•写数据总线,从主设备写到从设备•HRDATA[31:0]•读数据总线,从从设备读到主设备信号(续)•HTRANS•指出当前传输的状态•NONSEQ、SEQ、IDLE、BUSY•HSIZE•指出当前传输的大小•HBURST•指出传输的burst类型•HRESP•从设备发给主设备的总线传输状态•OKAY、ERROR、RETRY、SPLIT•HREADY•高:从设备指出传输结束•低电平:从设备需延长传输周期传输•两个阶段•地址周期,只有一个cycle•数据周期,由HREADY信号决定需要几个cycle•流水线传送•先是地址周期,然后是数据周期’treadytoreceivedata,howtodo?基本AHB传输(续)一次无需等待状态的简单传输基本AHB传输(续):slaveshouldn’tinsertmorethan16waitcycles!!!需要两个等待周期的简单传输Pipeline基本AHB传输(续)BurstTransfer:SingleTransferIncrementingtransferwithunspecifiedlength(INCR)4-beat8-beat16-beatSlavehasknowthatmasterneed4data,A/A+4/A+8/A+12Duringbursttransfer,ifslavenotready,thenhready=0;butifmasterisnotready,howtodo?基本AHB传输(续)传输类型•HTRANS[1:0]:当前传输的状态•IDLE、BUSY、NONSEQ、SEQ•00:IDLE•主设备占用总线,但没进行传输•两次burst传输中间主设备发IDLE•01:BUSY•主设备占用总线,但是在burst传输过程中还没有准备好进行下一次传输•一次burst传输中间主设备发BUSY传输类型(续)•10:NOSEQ•表明一次单个数据的传输•或者一次burst传输的第一个数据•地址和控制信号与上一次传输无关•11:SEQ•表明burst传输接下来的数据•地址和上一次传输的地址是相关的控制信号•HWRITE•高电平:写•低电平:读•HSIZE[2:0]•000:8bits100:128bits•001:16bits101:256bits•010:32bits110:512bits•011:64bits111:1024bits•最大值受总线的配置所限制•通常使用32bits(010)控制信号(续)•HPROT[3:0]•HPROT[0]:OPCODE/DATA•HPROT[1]:USER/PRIVILGED•HPROT[2]:Bufferable/Non-Bufferable•HPROT[3]:Cacheable/Non-Cacheable[1:0]IDLEBUSYNONSEQSEQHBURST[2:0]SINGLEINCRWRAP[4|8|16]INCR[4|8|16]HSIZE[2:0]ByteHalfwordWordDoubleword...HPROT[3:0]0-data/opcode1-privileged/user2-bufferable3-cacheableHADDRmustbealignedtoamultipleofdatasizeasgivenbyHSIZEBURST传输•AHBBurst操作•4beat、8beat、16beat、单个字节传输、未定义长度的传输•支持incrementing和wrapping两种burst传输•Incrementingburst•地址是上一次的传输地址加1•Wrappingburst•例:4beat的wrappingburst字传输(4byte):•0x34-0x38-0x3c-0x30•应用场合:Cache填充地址计算举例•根据HSIZE和HBURST来计算地址•例:起始地址是0x48,HSIZE=010(32bits)例:未定义长度的Burst传输•SI=SINGLE
本文标题:AMBA-总线-介绍2.0
链接地址:https://www.777doc.com/doc-8021589 .html