XilinxAllProgrammableZynq-7000SoC设计指南主讲:何宾Email:hebin@mail.buct.edu.cnLOGOXilinx大学计划课程2AMBA协议是ARM公司制定的用于SOC内IP互联的规范AMBA协议规范主要内容AMBA规范概述、AMBAAPB规范、AMBAAHB规范和AMBAAXI4规范。本章除了详细介绍APB和AHB规范外,还详细介绍了AMBAAXI4规范,AXI4规范是ARM和Xilinx共同制定的,最新一代的用于SOC内IP互连的规范。3高级微控制器总线结构(AdvancedMicrocontrollerBusArchitecture,AMBA)AMBA协议规范--AMBA规范导论AMBA规范定义了片上通信的标准,用于设计高性能嵌入式微控制器。它被ARM公司和众多的厂商所支持。AMBA协议规范--AMBA规范导论4应用领域AMBA用于片上系统(System-on-a-chip,SoC)的片上总线。自从AMBA出现后,其应用领域早已超出了微控制器设备,现在被广泛的应用于各种范围的ASIC和SOC器件,包括用于便携设备的应用处理器。功能介绍AMBA协议是一个开放标准的,片上互联规范,用于SoC内功能模块的连接和管理。它便于第一时间开发带有大量控制器和外设的多处理器设计。5高级系统总线(AdvancedSystemBus,ASB)高级外设总线(AdvancedPeripheralBus,APB)AMBA协议规范--AMBAV1.06ARM增加了AMBA高性能总线(AMBAHigh-performanceBus,AHB),它是一个单个时钟沿的协议。高级高性能总线(AdvancedHigh-performanceBus,AHB)。高级系统总线(AdvancedSystemBus,ASB)高级外设总线(AdvancedPeripheralBus,APB)AMBA协议规范---AMBAV2.07在2003年,ARM推出了第三个版本,AMBA3高级可扩展接口(AdvancedeXtensibleInterface,AXI3或AXIv1.0)(用于更高性能的互连)高级高性能总线简化(AdvancedHigh-performanceBusLite,AHB-Litev1.0)。高级外设总线(AdvancedPeripheralBus,APBv1.0)。高级跟踪总线(AdvancedTraceBus,ATBv1.0)(用于CoreSight片上调试和跟踪解决方案)AMBA协议规范---AMBAv3.08AXI4协议2009年,Xilinx同ARM密切合作,共同为基于FPGA的高性能系统和设计定义了AXI4规范。并且在其新一代可编程门阵列芯片上采用了高级可扩展接口。AMBA协议规范---AMBAV4.09AXI一致性扩展(AXICoherencyExtensions,ACE)。AXI一致性扩展简化(AXICoherencyExtensionsLite,ACE-Lite)。高级可扩展接口4(AdvancedeXtensibleInterface4,AXI4)。高级可扩展接口4简化(AdvancedeXtensibleInterface4Lite,AXI4-Lite)。AMBA规范(版本4)定义了的总线/接口AMBA协议规范---AMBAV4.010高级可扩展接口4流(AdvancedeXtensibleInterface4Stream,AXI4-Streamv1.0)。高级跟踪总线(AdvancedTraceBus,ATBv1.1)。高级外设总线(AdvancedPeripheralBus,APBv2.0)。AMBA规范(版本4)定义了的总线/接口AMBA协议规范---AMBAV4.011适合于高带宽和低延迟设计。在不使用复杂的桥接方式下,允许更高频率的操作。满足普遍情况下的元件接口要求。适用于高初始访问延迟的存储器控制器。为互联结构的实现提供了灵活性。与已有的AHB和APB接口向下兼容。最新一代的AMBA4接口的目标AMBA协议规范---AMBAV4.012APB属于AMBA3协议系列,它提供了一个低功耗的接口,并降低了接口的复杂性。APB接口用在低带宽和不需要高性能总线的外围设备上。APB是非流水线结构,所有的信号仅与时钟上升沿相关,这样就可以简化APB外围设备的设计流程,每个传输至少消耗两个周期。APB可以与AMBA高级高性能总线和AMBA高级可扩展接口连接。--AMBAAPB规范13APB写传输包括两种类型:无等待状态写传输有等待状态写传输AMBAAPB协议规范--AMBAAPB写传输14一个基本的无等待状态的写传输地址、写入数据、写入信号和选择信号都在时钟上升沿后改变。AMBAAPB写传输--无等待写传输15T1:写传输开始于地址PADDR,写数据PWDATA,写信号PWRITE和选择信号PSEL,在PSCLK的上升沿寄存。这称为写传输的建立周期。T2:使能信号PENABLE和准备信号PREADY,在PSCLK的上升沿寄存。当确认时,PENABLE表示传输访问周期的开始。当确认时,PREADY表示在PCLK的下一个上升沿从设备可以完成传输。AMBAAPB写传输--无等待写传输16地址PADDR,写数据PWDATA和控制信号保持有限,直到在T3完成传输,结束访问周期。在传输结束后,使能信号PENABLE变成无效。选择信号PSEL也变成无效,除非相同的外设立即开始下一个传输。AMBAAPB写传输--无等待写传输17AMBAAPB写传输--有等待写传输18有等待状态写传输,下面信号保持不变:地址:PADDR写信号:PWRITE选择信号:PSEL使能信号:PENABLE写数据:PWDATA.写选通:PSTRB保护类型:PPROTAMBAAPB写传输--有等待写传输19在访问周期,当PENABLE为高,可以通过拉低PREADY来扩展传输。当PENABLE为低的时候,PREADY可以为任何值。确保外围器件有固定的两个周期来使PREADY为高。注意:推荐地址和写信号在传输结束后不要立即更改,保持当前状态直到下一个传输,这样可以降低功耗。AMBAAPB写传输--有等待写传输20读传输包括以下两种类型无等待状态读传输有等待状态读传输AMBAAPB协议规范---AMBAAPB读传输21在读传输结束以前,从设备必须提供数据。AMBAAPB读传输--无等待读传输22在有等待读传输中,使用PREADY信号来添加两个周期。也可以添加多个周期。在传输过程中也可以添加多个周期。如果在访问周期内拉低PREADY信号,则扩展读传输。AMBAAPB读传输--有等待读传输23协议保证在额外的扩展周期时,下面的信号保持不变地址:PADDR。写信号:PWRITE。选择信号:PSEL。使能信号:PENABLE。保护类型:PPROT。AMBAAPB读传输--有等待读传输24PSLVERR可以用来指示APB传输错误条件。在读和写交易中,可以发生错误条件。在一个APB传输中,在最后一个周期内,PSEL、PENABLE和PREADY都是高时,PSLVERR才认为是有效的。AMBAAPB协议规范---AMBAAPB错误响应25接收到一个错误的交易,可能改变外设的状态(这是由外设指定的)。当一个写交易接收到一个错误时,并不意味着外设内的寄存器没有更新。读交易接收到一个错误时,能返回无效的数据。对于一个读错误,并不要求外设将数据总线驱动为0。AMBAAPB协议规范--AMBAAPB错误响应26AMBAAPB错误响应--写传输失败的例子27AMBAAPB错误响应--读传输失败的例子28从AXI到APB一个APB错误被映射回RRRSP/BRESP=SLVERR,这可以通过将PSLVERR映射到RRESP[1]信号(用于读)和BRESP[1](用于写)信号来实现。从AHB到APB对于读和写,PSLVERR被映射回HRESP=SLVERR,这可以通过将PSLVERR映射到AHB信号HRESP[0]信号来实现。AMBAAPB错误响应--PSLVERR映射(桥接时)29APB总线操作状态图AMBAAPB协议规范---操作状态30IDLE这是默认的APB状态。SETUP当传输被请求时,总线进入SETUP状态,选择信号PSELx,被置位。总线仅在SETUP状态停留一个时钟周期,并在下一个时钟周期进入ACCESS状态AMBAAPB协议规范---操作状态31ACCESS使能信号PENABLE,在ACCESS状态中置位。在传输从SETUP状态到ACCESS状态转变的过程中address,write,select和writedata信号必须保持不变。从ACCESS状态退出,由从器件的PREADY信号控制:如果PREADY为低,保持ACCESS状态。如果PREADY为高,则退出ACCESS状态,如果此时没有其它传输请求,总线返回IDLE状态,否则进入SETUP状态AMBAAPB协议规范---操作状态32信号来源描述PCLK时钟源时钟PRESETn系统总线复位。APB复位信号低有效。该信号一般直接与系统总线复位信号相连。PADDRAPB桥地址总线。最大可达32位,由外设总线桥单元驱动。PPROTAPB桥保护类型。这个信号表示交易普通的、剥夺的或者安全保护级别,以及这个交易是数据访问或者指令访问。PSELxAPB桥选择信号。APB桥单元产生到每个外设从设备的信号。该信号表示从设备被选中,要求一个数据传输。每个从设备都有一个PSELx信号。AMBAAPB协议规范---AMBA3APB信号及描述33信号来源描述PENABLEAPB桥使能信号。这个信号表示APB传输的第二个和随后的周期。PWRITEAPB桥方向。该信号为高时,表示APB写访问;当该信号为低时,表示APB读访问。PWDATAAPB桥写数据。当PWRITE为高时,在写周期内,外设总线桥单元驱动写数据总线。PSTRBAPB桥写选通,这个信号表示在写传输时,更新哪个字节通道。每8个比特位有一个写选通信号。因此,PSTRB[n]对应于PWDATA[(8n+7):(8n)]。在读传输时,写选通不是活动的。PREADY从接口准备好。从设备使用该信号来扩展APB传输。PRDATA从接口读取的数据。当PWRITE位低,在读周期,所选择的从设备驱动这个总线。这个总线最多个32位宽度。PSLVERR从接口这个信号表示传输失败。APB外设不要求PSLVERR引脚。对已经存在和新APB外设设计。当外设不包含这个引脚时,到APB桥的合适的数据拉低。AMBA协议规范---AMBA3APB信号及描述34AHB是新一代的AMBA总线,目的用于解决高性能可同步的设计要求。AHB是一个新级别的总线,高于APB,用于实现高性能、高时钟频率系统的特征要求.AMBA协议规范---AMBAAHB规范AMBA协议规范---AMBAAHB规范这些要求包括:猝发传输.分裂交易.单周期总线主设备交接.单时钟沿操作.无三态实现.更宽的数据总线配置(64/128比特).3536高性能ARM处理器高性能片上RAM高带宽存储器接口DMA总线主设备AHB到APB桥桥一个典型的AHB系统AMBAAHB规范--AMBAAHB结构37典型的,一个基于AMBA的微控制器包括:高性能系统背板总线,能够支持外部存储器的带宽,在这个总线上存在CPU和其它DMA设备。加上一个较窄的APB总线,在上面有较低带宽的外设。一个典型AMBA系统中包括AHB和APB总线结构AMBAAHB规范--AMBAAHB结构38AMBA高级高性能总线AHBAMBA高级外设总线APB高性能流水线操作猝发传输多个总线主设备分裂交易低功耗锁存的地址和控制简单的接口适合很多外设AHB和APB总线的特性比较AMBAAHB规范--AMBAAHB结构39基于中心多路复用互联机制,设