资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Xilinx,All Programmable,Zynq-7000 SoC,设计指南,主 讲:何宾,Email:,hebin,LOGO,Xilinx,大学计划课程,2,AMBA协议是ARM公司制定的用于SOC内IP互联的规范,AMBA协议规范,主要内容,AMBA规范概述、AMBA APB规范、AMBA AHB规范和AMBA AXI4规范。本章除了详细介绍APB和AHB规范外,还详细介绍了AMBA AXI4规范,AXI4规范是ARM和Xilinx共同制定的,最新一代的用于SOC内IP互连的规范。,3,高级微控制器总线结构,(,Advanced Microcontroller Bus Architecture,AMBA,),AMBA协议规范,-,AMBA规范导论,AMBA规范定义了片上通信的标准,用于设计高性能,嵌入式微控制器。它被ARM公司和众多的厂商所支持。,AMBA协议规范,-,AMBA规范导论,4,应用领域,AMBA用于片上系统(System-on-a-chip,SoC)的,片上总线,。自从AMBA出现后,其应用领域早已超出了微控制器设备,现在被广泛的应用于各种范围的ASIC和SOC器件,包括用于便携设备的应用处理器。,功能介绍,AMBA协议是一个开放标准的,片上互联规范,用于SoC内功能模块的连接和管理。它便于第一时间开发带有大量控制器和外设的多处理器设计。,5,高级系统总线(Advanced System Bus,ASB),高级外设总线(Advanced Peripheral Bus,APB),AMBA协议规范,-AMBA,V1.0,6,ARM增加了AMBA高性能总线(AMBA High-performance Bus,AHB),它是一个单个时钟沿的协议。,高级高性能总线(Advanced High-performance Bus,AHB)。,高级系统总线(Advanced System Bus,ASB),高级外设总线(Advanced Peripheral Bus,APB),AMBA协议规范,-,AMBA,V2.0,7,在2003年,ARM推出了第三个版本,AMBA3,高级可扩展接口,(Advanced eXtensible Interface,AXI3或AXI v1.0),(用于更高性能的互连),高级高性能总线简化(Advanced High-performance Bus Lite,AHB-Lite v1.0)。,高级外设总线(Advanced Peripheral Bus,APB v1.0)。,高级跟踪总线,(Advanced Trace Bus,ATB v1.0),(用于CoreSight片上调试和跟踪解决方案),AMBA协议规范-AMBA,v3.0,8,AXI4协议,2009年,Xilinx 同 ARM 密切合作,共同为基于 FPGA 的高性能系统和设计定义了 AXI4 规范。并且在其新一代可编程门阵列芯片上采用了高级可扩展接口。,AMBA协议规范-AMBA,V4.0,9,AXI一致性扩展(AXI Coherency Extensions,ACE)。,AXI一致性扩展简化(AXI Coherency Extensions Lite,ACE-Lite)。,高级可扩展接口4(Advanced eXtensible Interface 4,AXI4)。,高级可扩展接口4简化(Advanced eXtensible Interface 4 Lite,AXI4-Lite)。,AMBA规范(版本4)定义了的总线/接口,AMBA协议规范-AMBA,V4.0,10,高级可扩展接口4流(Advanced eXtensible Interface 4 Stream,AXI4-Stream v1.0)。,高级跟踪总线(Advanced Trace Bus,ATB v1.1)。,高级外设总线(Advanced Peripheral Bus,APB v2.0)。,AMBA规范(版本4)定义了的总线/接口,AMBA协议规范-AMBA,V4.0,11,适合于高带宽和低延迟设计。,在不使用复杂的桥接方式下,允许更高频率的操作。,满足普遍情况下的元件接口要求。,适用于高初始访问延迟的存储器控制器。,为互联结构的实现提供了灵活性。,与已有的AHB和APB接口向下兼容。,最新一代的AMBA4接口的目标,AMBA协议规范-AMBA,V4.0,12,APB属于AMBA 3协议系列,它提供了一个低功耗的接口,并降低了接口的复杂性。,APB接口用在低带宽和不需要高性能总线的外围设备上。,APB是非流水线结构,所有的信号仅与时钟上升沿相关,这样就可以简化APB 外围设备的设计流程,每个传输至少消耗两个周期。,APB可以与AMBA高级高性能总线和AMBA 高级可扩展接口连接。,-,AMBA APB规范,13,APB写传输包括两种类型:,无等待状态写传输,有等待状态写传输,AMBA,APB,协议规范,-,AMBA APB写传输,14,一个基本的无等待状态的写传输,地址、写入数据、写入信号和选择信号都在时钟上升沿后改变。,AMBA APB写传输,-,无等待写传输,15,T1:写传输开始于地址PADDR,写数据PWDATA,写信号PWRITE和选择信号PSEL,在PSCLK的上升沿寄存。这称为写传输的建立周期。,T2:使能信号PENABLE和准备信号PREADY,在PSCLK的上升沿寄存。,当确认时,,PENABLE,表示传输访问周期的开始。,当确认时,,PREADY,表示在,PCLK,的下一个上升沿从设备可以完成传输。,AMBA APB写传输,-,无等待写传输,16,地址,PADDR,,写数据,PWDATA,和控制信号保持有限,直到在,T3,完成传输,结束访问周期。,在传输结束后,使能信号,PENABLE,变成无效。选择信号,PSEL,也变成无效,除非相同的外设立即开始下一个传输。,AMBA APB写传输,-,无等待写传输,17,AMBA APB写传输,-,有等待写传输,18,有等待状态写传输,下面信号保持不变:,地址:,PADDR,写信号:,PWRITE,选择信号:,PSEL,使能信号:,PENABLE,写数据:,PWDATA.,写选通:,PSTRB,保护类型:,PPROT,AMBA APB写传输,-,有等待写传输,19,在访问周期,当,PENABLE,为高,可以通过拉低,PREADY,来扩展传输。,当,PENABLE,为低的时候,,PREADY,可以为任何值。确保外围器件有固定的两个周期来使,PREADY,为高。,注意:推荐地址和写信号在传输结束后不要立即更改,保持当前状态直到下一个传输,这样可以降低功耗。,AMBA APB写传输,-,有等待写传输,20,读传输包括以下两种类型,无等待状态读传输,有等待状态读传输,AMBA,APB,协议规范,-,AMBA APB读传输,21,在读传输结束以前,从设备必须提供数据。,AMBA APB读传输,-,无等待读传输,22,在有等待读传输中,使用PREADY信号来添加两个周期。也可以添加多个周期。在传输过程中也可以添加多个周期。如果在访问周期内拉低PREADY信号,则扩展读传输。,AMBA APB读传输,-,有等待读传输,23,协议保证在额外的扩展周期时,下面的信号保持不变,地址:,PADDR,。,写信号:,PWRITE,。,选择信号:,PSEL,。,使能信号:,PENABLE,。,保护类型:,PPROT,。,AMBA APB读传输,-,有等待读传输,24,PSLVERR,可以用来指示APB传输错误条件。在读和写交易中,可以发生错误条件。,在一个APB传输中,在最后一个周期内,PSEL、PENABLE和PREADY都是高时,PSLVERR才认为是有效的。,AMBA,APB,协议规范,-,AMBA APB错误响应,25,接收到一个错误的交易,可能改变外设的状态(这是由,外设指定的)。,当一个写交易接收到一个错误时,并不意味着外设内的寄存器没有更新。,读交易接收到一个错误时,能返回无效的数据。,对于一个读错误,并不要求外设将数据总线驱动为0。,AMBA,APB,协议规范,-,AMBA APB错误响应,26,AMBA APB错误响应,-,写传输失败的例子,27,AMBA APB错误响应,-,读传输失败的例子,28,从AXI到APB,一个APB错误被映射回RRRSP/BRESP=SLVERR,这可以通过将PSLVERR映射到RRESP1信号(用于读)和BRESP1(用于写)信号来实现。,从AHB到APB,对于读和写,PSLVERR被映射回HRESP=SLVERR,这可以通过将PSLVERR映射到AHB信号HRESP0信号来实现。,AMBA APB错误响应,-,PSLVERR映射(桥接时),29,APB,总线操作状态图,AMBA,APB,协议规范,-,操作状态,30,IDLE,这是默认的APB状态。,SETUP,当传输被请求时,总线进入SETUP状态,选择信号PSELx,被置位。总线仅在SETUP 状态停留一个时钟周期,并在下一个时钟周期进入ACCESS状态,AMBA,APB,协议规范,-,操作状态,31,ACCESS,使能信号PENABLE,在ACCESS状态中置位。在传输从SETUP状态到ACCESS状态转变的过程中address,write,select和write data信号必须保持不变。从ACCESS状态退出,由从器件的PREADY信号控制:,如果,PREADY,为低,保持,ACCESS,状态。,如果,PREADY,为高,则退出,ACCESS,状态,如果此时没有其它传输请求,总线返回,IDLE,状态,否则进入,SETUP,状态,AMBA,APB,协议规范,-,操作状态,32,信号,来源,描述,PCLK,时钟源,时钟,PRESETn,系统总线,复位。,APB,复位信号低有效。该信号一般直接与系统总线复位信号相连。,PADDR,APB,桥,地址总线。最大可达,32,位,由外设总线桥单元驱动。,PPROT,APB,桥,保护类型。这个信号表示交易普通的、剥夺的或者安全保护级别,以及这个交易是数据访问或者指令访问。,PSELx,APB,桥,选择信号。,APB,桥单元产生到每个外设从设备的信号。该信号表示从设备被选中,要求一个数据传输。每个从设备都有一个,PSELx,信号。,AMBA,APB,协议规范,-,AMBA3 APB信号及描述,33,信号,来源,描述,PENABLE,APB,桥,使能信号。这个信号表示,APB,传输的第二个和随后的周期。,PWRITE,APB,桥,方向。该信号为高时,表示,APB,写访问;当该信号为低时,表示,APB,读访问。,PWDATA,APB,桥,写数据。当,PWRITE,为高时,在写周期内,外设总线桥单元驱动写数据总线。,PSTRB,APB,桥,写选通,这个信号表示在写传输时,更新哪个字节通道。每,8,个比特位有一个写选通信号。因此,,PSTRBn,对应于,PWDATA(8n+7):(8n),。在读传输时,写选通不是活动的。,PREADY,从接口,准备好,。,从,设备使用,该信号来扩展,APB,传输。,PRDATA,从接口,读取的数据。,当,PWRITE,位低,在读周期,所选择的从设备驱动这个总线。这个总线最多个,32,位宽度。,PSLVERR,从接口,这个信号表示传输失败。,APB,外设不要求,PSLVERR,引脚。对已经存在和新,APB,外设设计。当外设不包含这个引脚时,到,APB,桥的合适的数据拉低。,AMBA协议规范,-,AMBA3 APB信号及描述,34,AHB是新一代的AMBA总线,目的用于解决高性能可同步的设计要求。AHB是一个新级别的总线,高于APB,用于实现高性能、高时钟频率系统的特征要求,.,AMBA协议规范,-,AMBA AHB规范,AMBA协议规范,-,AMBA AHB规范,这些要求包括:,猝发传输,.,分裂交易,.,单周期总线主设备交接,.,单时钟沿操作,.,无三态实现,.,更宽的数据总线配置(64/128比特),.,35,36,高性能,ARM,处理器,高性能,片上,RAM,高带宽,存储器接口,DMA,总线,主设备,AHB,到,APB,桥,桥,一个典型的,AHB,系统,AMBA AHB规范,-,AMBA AHB结构,37,典型的,一个基于AMBA的微控制器包括,:,高性能系统背板总线,能够支持外部存储器的带宽,在这个总线上存在CPU和其它DMA设备。,加上一个较窄的APB总线,在上面有较低带宽的外设。,一,个典型AMBA系统中包括AHB和APB总线结构,AMBA AHB规范,-,AMBA AHB结构,38,AMBA,高级高性能总线,AHB,AMBA,高级外设总线,APB,高性能,流水线操作,猝发传输,多个总线主设备,分裂交易,低功耗,锁存的地址和控制,简单的接口,适合很多外设,AHB,和,APB,总线的特性比较,AMBA AHB规范,-,AMBA AHB结构,39,基于中心多路复用互联机制,设计,AMBA AHB,总线协议,使用这个机制,所有总线主设备驱动地址和控制信号,用于指示它们所希望执行的传输和仲裁器,用于决定哪个主设备将其地址和控制信号布线到所有的从设备。,一个中心译码器要求控制读数据和响应信号的切换,用于从从设备中选择合适的到传输的信号,。,AMBA AHB结构,-,AMBA AHB总线互连,40,在一个AMBA AHB传输开始前,必须授权总线主设备访问总线。,通过主设备对到仲裁器请求信号的确认,启动这个过程。,然后,指示授权主设备将要使用总线。,AMBA AHB规范,-,AMBA AHB操作,41,通过驱动地址和控制信号,一个授权的总线主设备启动,AMBA AHB,传输。,这个信号提供了地址、方向和传输宽度的信息,以及指示传输是否构成猝发的一部分。允许两种不同的猝发传输:,增量猝发,在地址边界不回卷。,回卷猝发,在一个特殊的地址边界回卷,。,AMBA AHB规范,-,AMBA AHB操作,42,写数据总线用于将数据从主设备移动到从设备。,读数据总线用于将数据从从设备移动到主设备。,每个传输由下面构成:,一个地址和控制周期,一个或多个数据周期,AMBA AHB规范,-,AMBA AHB操作,43,不能扩展地址,因此在这个期间,所有的从设备必须采样地址。,然而,可以使用,HREADY,信号,以允许扩展数据。当为低时,允许插入等待状态到传输中,允许额外的时间用于从设备提供或者采样数据。,AMBA AHB规范,-,AMBA AHB操作,44,在传输中,从设备使用响应信号HRESP1:0显示状态:,OKAY,用于指示传输正在正常的处理,当HREADY信号变高时,表示传输成功地结束。,ERROR,指示发生传输错误,传输不是成功的。,RATRY和SPLIT,指示传输不能被立即完成,但是总线主设备应该继续尝试传输。,AMBA AHB协议规范-AMBA AHB操作,45,一个,AHB,传输有两个不同的部分组成,:,地址周期,持续一个单周期。,数据周期,可能要求几个周期。通过使用,READY,信号实现。,AMBA AHB协议规范,-AMBA AHB操作,46,地址周期,数据周期,简单传输(无等待状态,),AMBA AHB协议规范,-AMBA AHB操作,47,在HCLK的上升沿,主设备驱动总线上地址和控制信号。,在下一个时钟上升沿,从设备采样地址和控制信息。,当从设备采样地址和控制后,它开始驱动合理的响应,在第三个时钟上升沿,总线主设备采样这个响应。,AMBA AHB协议规范,-AMBA AHB操作,在一个没有等待状态的简单传输中:,这个简单的例子,说明了在不同的时钟周期,如何产生地址和数据周期。,48,实际上,任何传输的地址周期可以发生在前一个传输的数据周期。,这个重叠的地址和数据是基本的总线流水线的属性,允许更高性能的操作,同时为一个从设备提供了充足的时间,用于对一个传输的响应。,AMBA AHB协议规范,-AMBA AHB操作,49,地址周期,数据周期,带有等待状态的传输,对于写操作,在扩展周期内,总线主设备应该保持总线稳定。,对于读传输,从设备不必提供有效数据,直到传输将要完成。,AMBA AHB协议规范,-AMBA AHB操作,50,当传输以这种方式扩展时,在随后传输的地址周期中有副作用。下图说明了传输了三个无关的地址A,B&C。,多个传输,AMBA协议规范-AMBA AHB操作,51,传输地址,A,和,C,,都是零等待状态。,传输地址,B,是一个等待周期。,扩展传输的数据周期到地址,B,,影响传输的扩展地址周期到地址,C,。,在图中:,AMBA AHB协议规范-AMBA AHB操作,52,HTRANS1:0,类型,描述,00,IDLE,表示没有数据传输的要求。空闲传输类型在总线主机被授,权,总线,但并不希望执行一个数据传输时使用,空闲传输,。从机必须总是提供一个零等待状态,OKAY,来响应空闲传输并且该传输应该被,从设备,忽略。,01,BUSY,忙传输类型 允许总线主 机在,猝发,传 输中插入 空闲 周 期。这种传输类型表示总线主,设备,正在连续执行一个,猝,发传输,但是下一次传输不能立即发生。当一个主,设备,使用忙传输类型时地址和控制信号必须反映,猝,发中的下一次,传,输。,这种传输应该被从,设备,忽略。,与,从,设备,响应空闲传输一样,,,从,设备,总是提供一个零等待状态,OKAY,响应。,每个传输,由HTRANS,1:0信号表示。,AMBA AHB协议规范,-,AMBA AHB传输类型,53,HTRANS1:0,类型,描述,10,NONSEQ,表示一次,猝,发的第一个传输或者一个单一传输。地址,与,控制信号和前一次传输无关。,总线上的单一传输被,看作,一个,猝发。,因此,,,传输类型是,不,连续的。,11,SEQ,在一个猝,发中剩下的传输是连续传输并且地址是和前一次传输有关的。控制信息和前一次传输,时一样的,。地址等于前一次传输的地址加上传输大小(字节)。在,回卷猝,发的情况下,,,传输地址在地址边界处回,卷,,回,卷,值等于传输大小乘以传输的次数(,4,、,8,或者,16,其中之一)。,AMBA,AHB,协议规范-AMBA AHB传输类型,54,不同传输类型例子,AMBA,AHB,协议规范-AMBA AHB传输类型,55,第一个传输是一次猝发的开始所以传输类型为非连续传输;,主设备不能立刻执行猝发的第二次传输,所以主设备使用了忙传输来延时下一次传输的开始。在这个例子中主设备在它准备开始下一次猝发传输之前,仅要求一个忙周期,下一次传输完成不带有等待状态;,主设备立刻执行猝发的第三次传输,但是此时从设备不能完成传输,并用HREADY来插入一个等待状态;,猝发的最后一个传输以无等待状态完成。,AMBA,AHB,协议规范-AMBA AHB传输类型,56,AMBA AHB协议定义了4、8和16拍猝发,也有未定长度的猝发和信号传输。协议支持递增和回卷。,AMBA,AHB,协议规范,-,AMBA AHB猝发操作,57,递增猝发,访问连续地址,并且猝发中每次传输地址仅是前一次地址的一个递增;,回卷猝发,如果传输的起始地址并未和猝发(,x,拍)中字节总数对齐,那么猝发传输地址将在达到边界处回卷。例如,一个四拍回卷猝发的字(,4,字节)访问将在,16,字节边界回卷。,因此,如果传输的起始地址是,0 x34,,那么它将包含四个到地址,0 x34,、,0 x38,、,0 x3C,和,0 x30,。,AMBA AHB猝发操作,-,猝发操作类型,58,HBURST2,:,0,类型,描述,000,SINGLE,单一传输,001,INCR,未指定长度的,递增猝,发,010,WRAP4,4,拍回卷猝,发,011,INCR4,4,拍递增猝,发,100,WRAP8,8,拍回卷猝,发,101,INCR8,8,拍递增猝,发,110,WRAP16,16,拍回卷猝,发,111,INCR16,16,拍递,增,猝,发,通过,使用 HBURST2:0,,提供猝发信息,AMBA AHB猝发操作,-,猝发操作类型,8种可能的类型,59,1KB,的地址边界,猝发不能超过该边界。因此重要的是主设备不要尝试发起一个将要超过这个边界的定长递增猝发。,可以接受:,使用只有一个猝发长度的,未指定长度的递增猝发,来执行单个传输。,递增猝发可以是任何长度,,但是其上限由地址不能超过 1KB 边界这个事实所限制。,AMBA AHB猝发操作,-,猝发操作大小,60,注:,猝发大小表示猝发的节拍数量,并不是一次猝发传输的实际字节个数。一次猝发传输的数据总量可以用节拍数乘以每拍数据的字节数来计算,每拍字节数由 HSIZE2:0指示。,所有猝发传输必须将地址边界和传输大小对齐。,字传输必须对齐到字地址边界(也 就是 A1:0=00),半字传输必须对齐到半字地址边界(也就是 A0=0)。,AMBA AHB猝发操作,-,猝发操作大小,61,从设备能够通过监控 HTRANS信号决定一个猝发何时提前终止,并且确保在猝发开始之后每次传输有连续或者忙的标记。,如果产生一个非连续或者空闲传输,那么这表明已经开始一个新的猝发。因此,一定已经终止了前一次猝发。,当不允许完成一个猝发的特定情况下,对任一从设备设计而言,如果猝发提前停止,那么利用猝发信息能够采取正确的动作显得很重要。,AMBA AHB猝发操作,-,猝发早期停止,62,如果总线主设备因为失去对总线的占有而不能完成一次突发,那么它必须在下一次获取访问总线时正确地重建猝发。,例如:,如果一个主设备仅完成了一个四拍猝发中的一拍,那么,它必须用一个未定长度猝发来执行剩下的三拍猝发,。,AMBA AHB猝发操作,-,猝发早期停止,63,4,拍回卷猝发,AMBA,AHB,协议规范,-,AMBA AHB猝发操作,64,作为一次四拍字猝发传输,地址将会在,16,字节边界回卷。因此,传输到地址,0 x3C,之后接 下来传输的地址是,0 x30,。,AMBA,AHB,协议规范,-AMBA AHB猝发操作,65,四拍递增猝发,AMBA,AHB,协议规范,-AMBA AHB猝发操作,66,上图表示了(回卷猝发)和递增量猝发的唯一不同,地址连续通过16个字节边界。,AMBA,AHB,协议规范,-AMBA AHB猝发操作,67,8,拍回卷猝发,AMBA,AHB,协议规范,-AMBA AHB猝发操作,68,上图给出了8拍字猝发传输的图。地址将在 32 字节边界处回卷。因此,地址0 x3C之后的地址是 0 x20。,AMBA,AHB,协议规范,-AMBA AHB猝发操作,69,8,拍递增猝发,AMBA,AHB,协议规范,-AMBA AHB猝发操作,70,上图中的猝发使用半字传输,所以地址每次增加 2 个字节,并且猝发在递增。因此,地址连续增加,通过了16字节边界。,AMBA协议规范-AMBA AHB猝发操作,71,未定义长度猝发,AMBA,AHB,协议规范-AMBA AHB猝发操作,72,上图表示未定义长度的增量突发。表示两个猝发:,在地址,0 x20,处,开始传输两个半字。半字传输地址增加为,2,。,在地址,0 x5C,处开始三个字传输。字传输地址增加为,4,。,AMBA,AHB,协议规范,-AMBA AHB猝发操作,73,控制信号和地址总线有严格一致的时序,传输类型和猝发类型一样,每次传输都会有一组控制信号,用于提供传输的附加信息。这些。然而,在一次猝发传输过程中它们必须保持不变。,AMBA,AHB,协议规范,-AMBA AHB传输控制信号,74,传输方向,当 HWRITE为高时,该信号表示一个写传输。并且,主设备将数据广播到写数据总线HWDATA31:0上。当该信号为低时,将会执行一个读传输。并且,从设备必须产生数据到读数据总线HRDATA31:0。,传输大小,HSIZE2:0用于表示传输的大小。传输大小被用来和 HBURST2:0信号一起,决定回卷突发的地址边界。,AMBA协议规范,-AMBA AHB传输控制信号,75,传输大小编码,HSIZE2,HSIZE1,HSIZE0,大小,描述,0,0,0,8,位,字节,0,0,1,16,位,半字,0,1,0,32,位,字,0,1,1,64,位,-,1,0,0,128,位,4,字线,1,0,1,256,位,8,字线,1,1,0,512,位,-,1,1,1,1024,位,-,AMBA,AHB,协议规范,-AMBA AHB传输控制信号,76,保护控制,保护控制信号,HPROT3,:,0,,提供总线访问的附加信息,并且最初是给那些希望执行某种保护级别的模块使用的。,一次预取指或者数据访问;,特权模式访问或者用户模式访问;,AMBA,AHB,协议规范,-AMBA AHB传输控制信号,77,对于带有存储器管理单元的总线主设备来说这些信号也表示当前访问是带高速缓存的还是带缓冲的。并不是所有总线主设备都能产生正确的保护信息。因此,,建议从设备在没有严格必要的情况下不要使用HPROT信号。,AMBA,AHB,协议规范,-AMBA AHB传输控制信号,78,保护信号编码,HPROT3,高速缓存,HPROT2,带缓冲的,HPROT1,特权模式,HPROT0,数据,/,预取指,描述,-,-,-,0,预取指,-,-,-,1,数据访问,-,-,0,-,用户模式访问,-,-,1,-,特权模式访问,-,0,-,-,无缓冲,-,1,-,-,带缓冲,0,-,-,-,无高速缓存,1,-,-,-,带高速缓存,AMBA,AHB,协议规范-AMBA AHB传输控制信号,79,一个典型地址译码系统和从设备选择信号,:,AMBA,AHB,协议规范,-AMBA AHB地址译码,80,对于每个总线上的从设备来说,使用一个中央地址译码器提供选择信号,HSELx,。,选择信号是高位地址信号的组合译码,并且建议使用简单的译码方案以避免复杂译码逻辑和确保高速操作。,从设备只能在,HREADY,信号为高时采样地址和控制信号以及,HSELx,。,HSELx,为高时,表示当前传输已经完成。在特定的情况下,有可能在,HREADY,为低时采样,HSELx,,但是将会在当前传输完成后,变更被选中的从设备。,AMBA,AHB,协议规范,-AMBA AHB地址译码,81,能够分配给单个从设备的最小地址空间是,1KB,。,所有总线主设备必须被设计为不能执行超过,1KB,地址边界的递增传输,因此确保了一个猝发绝不会超过地址译码的边界。,AMBA,AHB,协议规范,-AMBA AHB地址译码,82,在系统设计中,如果有包含一个存储器映射并未完全填满存储空间的情况时,应该设置一个额外的默认从设备,以在访问任何不存在的地址空间时提供响应。,如果一个非连续或者连续传输试图访问一个不存在的地址空间时,这个默认从设备应该提供一个,ERROR,响应。空闲或者忙传输访问不存在的空间(默认从设备)时,应该给出一个零等待状态的,OKAY,响应。典型的,默认从设备的功能将以作为中央地址译码器的一部分来实现。,AMBA,AHB,协议规范,-AMBA AHB地址译码,83,只要从设备被访问,那它必须提供一个表示传输状态的响应。,HREADY,信号被用来扩展传输并且和响应信号,HRESP1:0,相结合,以提供传输状态。,注:,在主设备发起传输后,由从设备决定如何进行传输。AMBA AHB规范中没有做出总线主设备在传输已经开始后取消传输的规定。,AMBA,AHB,协议规范,-AMBA AHB从设备传输响应,84,从设备能够用许多种方式来完成传输。它能:,立刻完成传输。,插入一个或者多个等待状态以允许有时间来完成传。,发出一个错误信号来表示传输失败。,延时传输的完成,但是允许主设备和从设备放弃总线,把总线留给其他传输使用。,AMBA,AHB,协议规范,-AMBA AHB从设备传输响应,85,HREADY,信号用来扩展一次,AHB,传输的数据周期。当,HREADY,信号为低时,表示传输 将被扩展;而当其为高时,表示传输完成。,注意,:,每个从设备必须有一个预先确定的在从设备放弃总线之前插入的最大等待状态数目,以便能够计算访问总线的延时。建议但不强制规定,从设备不要插入多于 16 个等待状态,以阻止任何单个访问将总线锁定较长的时钟周期。,AMBA AHB从设备传输响应,-,传输响应,86,HREADY,信号,典型的,从设备将会用该信号,在传输中插入适当数量的等待状态。而传输在,HREADY,为高时,完成并且给出,OKAY,响应,表示传输成功完成。,ERROR信号,从设备用该响应来表示某种形式的错误条件和相关的传输。典型的,这被用作保护错误,例如:试图写一个只读的存储空间。,AMBA AHB从设备传输响应,-,传输响应,87,SPLIT,和,RETRY,响应组合,允许从设备延长传输完成的时间,但是释放总线给其他主设备使用。这些响应组合通常仅由有高访问延时的从设备请求,并且从设备能够利用这些响应编码来确保其他主设备在长时间内不被阻止访问总线。,AMBA AHB从设备传输响应,-,传输响应,88,当从设备需要插入一定数量的等待状态先于决定将要给出何种响应时,从机必须将响应驱 动为OKAY。,关于SPLIT和RETRY的完整描述参见分块和重试。,HRESP1:0的编码、传输响应信号和每个响应的描述参见下表。,AMBA AHB从设备传输响应,-,传输响应,89,响应编码,HRESP1,HRESP0,响应,描述,0,0,OKAY,当,HREADY,为高时,表示传输已经成功完成。,OKAY,响应也被用来插入任意一个附加周期,当,HREADY,为低时,优先给出其他三种响应之一。,0,1,ERROR,该响应表示发生了一个错误。错误条件应该发信号给总线主设备,以便让主设备知道传输失败。一个错误条件需要双周期响应。,AMBA AHB从设备传输响应,-,传输响应,AMBA AHB从设备传输响应,-,传输响应,90,1,0,RETRY,重试信号表示传输并未完成。因此,总线主设备应该尝试重新传输。主设备应该继续重试传输直到完成为止。,要求双周期的重试响应。,1,1,SPLIT,传输并未成功完成。总线主设备必须在下一次被授权访问总线时重试传输。当传输能够完成时,从设备将请求代替主设备访问总线。,要求双周期的,SPLIT,响应。,91,在单个周期内,仅可以给出,OKAY,响应。,ERROR,、,SPLIT,和,RETRY,响应需要至少两个周期。,为了完成这些响应中的任意一个,那么在最后一个的前一个周期从设备驱动,HRESP1,:,0,以表示,ERROR,、,RETRY,或者,SPLIT,,同时驱动,HREADY,为低,以给传输扩展一个额外的周期。,在最后一个周期,,HREADY,被驱动为高电平以结束传输,同时保持驱动,HRESP1,:,0,,以表示,ERROR,、,RETRY,或者,SPLIT,。,AMBA AHB从设备传输响应,-,双周期响应,92,如果从设备需要两个以上的周期,以提供,ERROR,、,SPLIT,或者,RETRY,响应。那么,可能会在传输开始时插入额外等待状态,。在这段时间内,将,HREADY,信号驱动为低电平,同时必须将响应设为,OKAY,。,AMBA AHB从设备传输响应,-,双周期响应,93,需要双周期响应是因为总线通道的本质特征。,在从设备开始发出,ERROR,、,SPLIT,或者,RETRY,中任何一个响应时,接下来传输的地址已经广播到总线上了。,双周期响应允许主设备有足够的时间来取消该地址,并且在开始下一次传输之前驱动,HTRANS1,:,0,为空闲传输。,AMBA AHB从设备传输响应,-,双周期响应,94,对于,SPLIT,和,RETRY,响应,必须取消随后的传输,这是因为在当前传输完成之前禁止发生下一次传输。然而,对于,ERROR,响应,由于不重复当前传输,所以可以选择完成接下来的传输。,AMBA AHB从设备传输响应,-,双周期响应,95,带有,retry,响应的传输,AMBA AHB从设备传输响应,-,双周期响应,96,图中包含以下事件:,主设备从地址,A,开始传输;,在接收到这次传输响应之前,主设备将地址移动到,A+4,;,在地址,A,的从设备不能立刻完成传输。因此,从设备发出一个,RETRY,响应。该响指示主设备,在地址,A,的传输无法完成。并且,取消在地址,A+4,的传输,而用空闲传输替代,。,AMBA AHB从设备传输响应,-,双周期响应,AMBA AHB从设备传输响应,-,双周期响应,97,98,上图表示了一个传输中,从设备请求一个周期来决定将要给出的响应(在HRESP为OKAY的时间段),之后从设备用一个双周期的ERROR响应来结束传输。,AMBA AHB从设备传输响应,-,双周期响应,99,如果从设备提供一个错误响应,那么主机可以选择取消猝发中剩下的传输。然而,这并不是一个严格的要求,同时主机继续猝发中剩下的传输也是可以接受的。,AMBA AHB从设备传输响应,-,错误响应,100,分割和重试响应给从设备提供了在无法立刻给传输提供数据时释放总线的机制。,这两种机制都允许在总线上结束传输。因此,允许更高优先级的主设备能够访问总线。,AMBA AHB从设备传输响应,-,-,分割和重试,101,重试,仲裁器将继续使用常规优先级方案。因此,只有拥有更高优先级的主机才能获准访问总线;,分割,仲裁器将调整优先级方案,以便其他任何主设备请求总线时,能立即获得总线访问(即使是优先级较低的主设备)。为了完成一个分割传输,从设备必须通知仲裁器何时数据可用。,分割(,SPLIT,)和重试(,RETRY,)的不同之处,:,在于仲裁器在发生分割和重试后分配总线的方式:,AMBA AHB从设备传输响应,-,分割和重试,102,应用场合,分割传输增加了仲裁器和从设备的复杂性,但是却有可以完全释放总线给其他主设备使用的优点。但是,在重试响应的情况下,就只允许较高优先级的主设备使用总线。,总线主设备应该以同样的方式来对待分割和重试响应。主设备应该继续请求总线并尝试传输直到传输成功完成或者遇到错误响应时终止。,AMBA AHB从设备传输响应,-,分割和重试,103,为了不使用三态驱动,同时又允许执行AHB系统,所以要求分开读和写数据总线。最小的数据宽度规定为 32 位。但是,总线宽度却可以增加。,AMBA,AHB
展开阅读全文