收藏 分享(赏)

第4章-avalon总线规范.ppt

上传人:天天快乐 文档编号:588942 上传时间:2018-04-13 格式:PPT 页数:89 大小:1.11MB
下载 相关 举报
第4章-avalon总线规范.ppt_第1页
第1页 / 共89页
第4章-avalon总线规范.ppt_第2页
第2页 / 共89页
第4章-avalon总线规范.ppt_第3页
第3页 / 共89页
第4章-avalon总线规范.ppt_第4页
第4页 / 共89页
第4章-avalon总线规范.ppt_第5页
第5页 / 共89页
点击查看更多>>
资源描述

1、第4章 Avalon总线规范,4.1 Avalon总线简介 Avalon总线由ALTERA公司提出,用于在基于FPGA的片上系统中连接片内处理器和片内外设的总线结构。 连接到Avalon总线的设备分为主从设备,并各有其工作模式。简单性,易于理解、易于使用。占用资源少,减少对FPGA片内资源的占用。高性能,Avalon总线可以在每一个总线时钟周期完成一次数据传输。专用的地址总线、数据总线和控制总线:这样Avalon总线模块和片上逻辑之间的接口的得以简化,Avalon外设不需要识别数据和地址周期。,continue支持高达1024位的数据宽度,支持不是2的偶数幂的数据宽度。支持同步操作,所有Ava

2、lon外设的接口与Avalon交换架构的时钟同步,不需要复杂的握手/应答机制。简化了Avalon接口的时序行为,而且便于集成高速外设。支持动态地址对齐,可以处理具有不同数据宽度的外设间的数据传输,Avalon总线的自动地址对齐功能将自动解决数据宽度不匹配的问题,不需要设计者的干预。Avalon总线规范是一个开放的标准,用户可以在未经授权的情况下使用Avalon总线接口来自定义外设。,Avalon总线结构采用交换式的总线结构。,SOPC Builder利用最少的FPGA资源,产生新的最佳Avalon交换架构。,4.2 Avalon总线基本概念,4.2.1 Avalon外设和交换架构一个基于Ava

3、lon接口的系统会包含很多功能模块,这些功能模块就是Avalon存储器映射外设,通常简称Avalon外设。所谓存储器映射外设是指外设和存储器使用相同的总线来寻址,并且CPU使用访问存储器的指令也用来访问I/O设备。为了能够使用I/O设备,CPU的地址空间必须为I/O设备保留地址。,Avalon外设包括存储器,处理器、UART、PIO、定时器和总线桥等。还可以有用户自定义的Avalon外设,用户自定义的外设能称之为Avalon外设,要有连接到Avalon结构的Avalon信号。Avalon外设分为主外设和从外设,能够在Avalon总线上发起总线传输的外设是主外设,从外设只能响应Avalon总线传

4、输,而不能发起总线传输。主外设至少拥有一个连接在Avalon交换架构上的主端口,主外设也可以拥有从端口,使得该外设也可以响应总线上其它主外设发起的总线传输。,将Avalon外设连接起来,构成一个大的系统的片上互连逻辑就是Avalon交换架构。,Avalon交换架构是一种可自动调整的结构,随着设计者不同设计而做出最优的调整。可以看到外设和存储器可以拥有不同的数据宽度,并且这些外设可以工作在不同的时钟频率。Avalon交换架构支持多个主外设,允许多个主外设同时在不同的从外设进行通信,增加了系统的带宽。这些功能的实现都是靠Avalon交换架构中的地址译码、信号复用、仲裁、地址对齐等逻辑实现的。本章重

5、点讨论Avalon外设和Avalon交换架构之间的互连,主要研究接口级的行为,不关注其内部实现。,4.2.2 Avalon信号Avalon接口定义了一组信号类型(片选、读使能、写使能、地址、数据等),用于描述主/从外设上基于地址的读写接口。Avalon信号的可配置特性是Avalon接口与传统总线接口的主要区别之一。Avalon外设可以使用一小组信号来实现简单的数据传输,或者使用更多的信号来实现复杂的传输类型。例如ROM接口只需要地址、数据和和片信号就可以了, 而高速的存储控制器可能需要更多的信号来支持流水线的突发传输。,4.2.3 主端口和从端口,Avalon端口就是完成通信传输的接口所包含的

6、一组Avalon信号。Avalon端口分为主端口和从端口,主端口可以在Avalon总线上发起数据传输,目标从端口在Avalon总线上响应主端口发起的数据传输。一个Avalon外设可能有一个或多个主端口,一个或多个从端口,也可能既有多个主端口,又有多个从端口。Avalon的主端口和从端口之间没有直接的连接,主、从端口都连接到Avalon交换架构上,由交换架构来完成信号的传递。在传输过程中,主端口和交换架构之间传递的信号与交换架构和从端口之间传递的信号可能有很大的不同。所以,在讨论Avalon传输的时候,必须区分主从端口。,4.2.4 传输,传输是指在Avalon端口和Avalon交换架构之间的数

7、据单元的读/写操作。Avalon传输一次可以传输高达1024位的数据,需要一个或多个时钟周期来完成。在一次传输完成之后,Avalon端口在下一个时钟周期可以进行下一次的传输。Avalon的传输分成两个基本的类别:主传输和从传输。Avalon主端口发起对交换架构的主传输。Avalon从端口响应来自交换架构的传输请求。传输是和端口相关的:主端口只能执行主传输,从端口只能执行从传输。,4.2.5 主从端口对,主从端口对是指在数据传输过程中,通过Avalon交换架构相连接起来的主端口和从端口。在传输过程中,主端口的控制和数据信号通过Avalon交换架构和从端口相交互。,4.2.6 周期,周期是时钟的基

8、本单位,定义为特定端口的时钟信号的一个上升沿到下一个上升沿之间的时间。完成一次传输最少要一个时钟周期。,4.3 Avalon信号,Avalon接口规范定义了Avalon外设使用的信号类型,如地址、数据、片选信号等等。根据外设逻辑接口的需求,Avalon外设可以使用任何类型的Avalon信号。Avalon接口规范还定义了每种信号类型的行为。Avalon端口上的信号和信号类型是一一对应的,Avalon主/从端口的每一个信号必定属于某类的Avalon信号类型。一个Avalon端口每一种信号类型只能有一个信号实例。根据端口的属性,可以将Avalon信号类型分为主信号或者从信号。有些信号在主端口和从端口

9、的接口上都存在,但是信号的行为是不相同的。,4.3.1 信号类型的完整列表,每一类型的信号的说明包括:信号类型;信号可能的宽度;信号的方向(从外设的角度看);该信号在端口上是否必不可少(必需性);各种类型的信号的功能和特殊的使用要求的简单描述。,4.3 Avalon信号,Avalon从端口信号类型,Avalon从端口信号类型,Avalon主端口信号类型,Avalon主端口信号类型,4.3.2 信号极性,表中的信号类型都是高电平有效。Avalon接口也提供每个信号类型的低电平有效的版本,在信号类型名后添加 _n 来表示。例如irq_n、read_n等。这对和那些低电平有效的片外逻辑相接口时非常有

10、用。,4.4 从端口传输,4.4.1 从端口信号详述 所有从端口传输都很重要的信号 1.address信号 2. readdata和writedata信号 3. chipselect、read和write信号 4. byteenable和writebyteenable 5. begintransfer信号,32位的从端口使能信号,4.4.2从端口读传输,从端口基本读传输,具有固定等待周期的从端口读传输,具有可变等待周期的从端口读传输,(A)第一个周期在clk的上升沿开始。(B) Avalon交换架构发出地址和read信号。(C) Avalon交换架构对地址进行译码,然后驱动chipselect

11、信号。(D) 从端口在下一个clk的上升沿置waitrequest信号有效。(E) Avalon交换架构在clk的上升沿采样waitrequest, waitrequest是有效的,所以在此时钟沿 readdata没被捕获。(F) waitrequest可能会持续一个不确定数目的周期。(G) 从端口提供有效的readdata。(H) 从端口置waitrequest无效。(I) Avalon交换架构在下一个clk的上升沿捕获readdata,读传输就此结束。下一个周期在此开始,另一次传输也可由此开始。,4.4.3 从端口写传输从端口基本写传输,(A)第一个周期在clk的上升沿开始。(B) Ava

12、lon交换架构发出有效的writedata、address、byteenable和write信号。(C) Avalon交换架构对地址译码,并且发送chipselect给从端口。(D)从端口在clk的上升沿捕获writedata、address、 write、byteenable和chipselect。写传输结束。下一个周期开始,另一次传输也可以开始。,具有固定等待周期的从端口写传输,(A) 第一个周期在clk的上升沿开始。(B) 来自Avalon交换架构的writedata、address、byteenable和write有效。.(C) Avalon交换架构对地址译码,发出chipselect

13、。(D) 第一个等待周期在clk的上升沿结束,所有来自Avalon交换架构的信号保持不变。(E) 从端口在clk的上升沿或上升沿之前捕获writedata、address、byteenable、write和chipselect ,写传输结束。下一个周期开始,另一次传输也可开始。,具有可变等待周期的从端口写传输,(A) 第一个周期在clk的上升沿开始。(B) 来自Avalon交换架构的address、writedata、byteenable和write 信号有效。(C) Avalon交换架构对地址译码,然后发出chipselect。(D) 外设在下一个clk的上升沿之前置waitrequest有

14、效。(E) Avalon交换架构在clk的上升沿采样waitrequest,如果waitrequest有效,周期成为等待周期,address、writedata、byteenable、write和chipselect保持不变。(F) waitrequest可能保持任意多个周期有效。(G) 从端口捕获数据。(H) 从端口置waitrequest无效。(I) 写传输在下一个clk的上升沿结束。下一个周期可进行另一次的传输。,4.5 主端口传输 所有主端口传输都很重要的信号 waitrequest信号 address信号 readdata和writedata信号 read和write信号 bytee

15、nable信号,主端口基本读传输,(A) 第一个周期在clk的上升沿开始。(B) 主端口发出有效的address、byteenable和read信号。(C) 在第一个周期内从Avalon交换架构返回有效的readdata(D) 主端口在下一个clk的上升沿捕获readdata,并且置它的所有输出无效。主端口的读传输结束。另一次传输可在下一个周期开始。,(A) 第一个周期在clk的上升沿开始。(B) 主端口发出有效的address、byteenable和read信号。(C) Avalon交换架构在下一个clk的上升沿置waitrequest有效。(D) 主端口在clk的上升沿接受waitrequ

16、est。这个周期称为等待周期。(E) 只要waitrequest有效,主端口保持其所有输出不变。(F) Avalon交换架构返回有效的readdata。(G) Avalon交换架构置waitrequest无效。(H) 主端口在下一个clk的上升沿捕获readdata,并且置其所有的输出无效。读传输结束。另一次传输可以在下一个周期开始。,具有等待周期的主端口读传输,(A) 写传输在clk的上升沿开始。(B) 主端口发出有效的address、byteenable、writedata和write信号。(C) 在clk的上升沿waitrequest是无效的,所以写传输结束。另一次传输可以在下一个周期接

17、着开始。,主端口基本写传输,(A) 第一个周期在clk的上升沿开始。(B) 主端口发出有效的address、writedata和write信号。(C) waitrequest在clk的上升沿被置为有效,所以该周期变成第一个等待周期。主端口保持所有的输出不变。(D) waitrequest在clk的上升沿再次被置为有效,所以该周期成为第二个等待周期。主端口保持所有的输出不变。(E) Avalon交换架构置waitrequest无效。(F) 在clk的上升沿waitrequest 是无效的,所以主端口置所有的输出无效,写传输结束。另一个读或写传输可以在下一个周期开始。,具有等待周期的主端口写传输,

18、4.6 流水线传输属性,Avalon流水线读传输可以增加Avalon同步从外设的带宽,在第一次访问从外设时需要好几个周期才能返回数据,但是此后每个周期都能返回数据。使用流水线读传输,一个端口可以在上一次传输的readdata返回之前,开始新的传输。只有流水线的读传输,因为Avalon写传输不需要由从端口返回确认信号,所以没有流水线的写传输,Avalon写传输不会受益于流水线。,(A) Avalon交换架构通过提供新传输的地址阶段的chipselect、read和address信号,发起一次读传输。(B) 从端口已经置waitrequest有效,所以前一个周期称为等待周期。Avalon交换架构保

19、持chipselect、read和 address不变。(C) 从端口在clk的上升沿置waitrequest无效,并且捕获address。地址阶段结束,数据阶段开始。(D) 第一个延迟周期在clk的上升沿结束。(E) 第二个延迟周期在clk的上升沿结束。从端口提供有效的readdata,传输结束。这个clk的上升沿也标志着新的读传输的开始。(F) Avalon交换架构发出新传输的address、read和chipselect信号。(G) Avalon交换架构在下一个周期发内,在前一次的传输的数据返回之前发起另一次的读传输。(H) Avalon交换架构在两个延迟周期之后捕获readdata。(

20、I) Avalon交换架构在两个延迟周期之后捕获readdata 。,具有固定延迟的从端口流水线读传输,具有可变延迟的从端口流水线读传输,4.6.3 主端口流水线传输,流水线主外设可以在它接收到前一次传输的有效数据之前发起一次新的读传输。使用1位的输入信号readdatavalid来定义一个流水线主端口。 Avalon交换架构发出readdatavalid信号给主端口来指示readdata信号正在提供有效的数据。,流水线主端口能够有选择地使用flush信号,当主外设决定它不再需要当前挂起的读传输的数据的情况下,可以使用这个信号。例如,对于不知道指令是否有效之前预取指令的流水线CPU来说,清除流

21、水线的功能是一个基本的要求。当主端口在clk的上升沿发出flush,readdatavalid直到下一次新的读传输的数据在readdata端口上有效之前,一直是无效的。主端口可以在其发出flush信号的同一个周期内发起一次新传输。在这种情况下,这次新传输的数据将是readdata上的下一个有效数据。,主端口流水线读传输,4.7 突发传输,Avalon接口支持突发传输。突发模式下,多个传输作为一个单元来处理,而不是每个数据单元作为一个独立的传输。突发传输最大化从端口的吞吐量,在从端口处理来自一个主端口的多个数据单元的时候可以达到最高的效率。,突发传输保证了主端口在突发传输的期间内对目标从端口的访

22、问不会被打断。一旦一个主从端口对之间的突发传输开始,直到突发传输结束,Avalon交换架构不再允许任何其它的主端口访问该从端口。,Avalon主/从端口通过包含信号burstcount来支持突发传输。下面是主从端口的burstcount信号的特性:在突发传输的开始,burstcount信号提供一个编码的值,指示当前的突发传输中包含有多少个连续的传输。burstcount的最小值是1。burstcount值为1的突发传输等同于一个单独的非突发的传输。对于burstcount宽度为N的情况,最大突发长度为2N-1. 此时,burstcount的最高位为1,所有其它位是0。Avalon突发传输不能保

23、证主端口或从端口每个时钟周期进行一次传输。突发传输能够保证在突发传输期间主从端口对的仲裁是锁定的。突发传输需要的时间是不确定的,取决于主从端口的外设逻辑。,4.7.1 限制,支持突发传输的端口面临如下的限制:为了支持主端口的突发读传输,主端口必须支持流水线传输。为了支持从端口突发读传输,从端口必须支持: 可变的等待周期,即该端口必须包含waitrequest。具有可变的延迟的流水线传输,即该端口必须包含readdatavalid信号。因此,从端口不能使用三态属性,三态属性在具有可变延迟的流水线端口中是不允许的。,4.7.2 主端口突发传输,对Avalon主端口来说,burstcount信号是输

24、出信号。除了burstcount信号,突发传输还影响address、read、readdata、eaddatavalid、write、writedata和byteenable信号的行为。突发传输开始时,主端口在address上发出有效的地址,在burstcount发出突发传输的长度。每一次突发传输主端口只发出一个地址值,对于突发传输中所有传输的地址由Avalon交换架构自动地推断。当主端口开始地址为A,burstcount值为B的突发传输,该主端口提交了从地址A开始的B个连续的传输。突发传输直到主端口传输了B个单元的数据才完成。在当前的突发传输完成之前,主端口不能终止该突发传输,或者给出一个新

25、地址。,4.7.2.1. 主端口突发写传输,主端口突发写传输的开始和主端口基本写传输是相似的。除了burstcount信号之外,主端口发出address、writedata、write和byteenable(如果需要)信号。如果Avalon交换架构还没有准备好,它在下一个clk的上升沿之前发出waitrequest。最后,Avalon交换架构使waitrequest失效, 同时在下一个clk的上升沿捕获address和burstcount信号。Avalon交换架构还在这个clk的上升沿捕获writedata的第一个数据单元。主端口必须在突发传输期间保持address、byteenable和bu

26、rstcount不变。,当主端口发起了burstcount值大于1的突发传输,须遵循一下的规则:如果主端口指定了burstcount值为N,那么要完成突发传输,主端口必须在N个clk的上升沿发出write信号,并且提供新的writedata。仲裁端口对的仲裁被锁定直到主端口完成该突发传输。主端口可以通过在clk的上升沿使write信号失效来延迟传输,这样能够阻止Avalon交换架构捕获当前时钟周期的writedata。Avalon交换架构可以通过发出waitrequest来延迟传输,这样做强迫主端口在一个附件的时钟周期内保持writedata和write不变。主端口必须在整个突发传输期间内置所

27、有的byteenable信号线有效。.,主端口突发写传输,(A) 主端口发出address、burstcount、write和writedata的第一个单元。本例中,burstcount值为4。(B) Avalon交换架构置waitrequest有效,表明它没有做好处理突发传输的准备。作为响应,主端口保持所有输出不变。(C) Avalon交换架构置waitrequest无效。(D) Avalon交换架构在clk的上升沿捕获address、burstcount、write和writedata的第一个单元(D0)。(E) 主端口置address和burstcount无效, 这两个信号在突发传输的剩

28、余部分被忽略。主端口提供writedata 的下一个单元(D1)。(F) Avalon交换架构在clk的上升沿捕获writedata下一个单元 (D1)。(G) 主端口置write无效,表示它这个周期没有有效的writedata。(H) write信号为无效,所以Avalon交换架构在材料库的上升沿不捕获writedata。(I) 主端口提供有效的writedata (D2) ,并重新置write有效。(J) Avalon交换架构在clk的上升沿捕获writedata (D2) 。(K) 主端口提供writedata 的最后的一个单元(D3).(L) Avalon交换架构置waitreques

29、t有效,导致主端口在整个时钟周期内保持所有的输出不变。(M) Avalon交换架构使waitrequest无效。(N) Avalon交换架构在clk的上升沿捕获writedata 的最后的单元(D3)。主端口突发写传输结束。,4.7.2.2 主端口突发读传输,主端口突发读传输和具有延迟的主端口流水线读传输是相似的。主端口突发读传输具有明显的地址阶段和数据阶段,并且使用readdatavalid信号来指示主端口何时必须捕获readdata。不同点在于一个单独的突发传输地址对应多个数据阶段。主端口突发读传输的开始类似于主端口的流水线读传输。主端口除了burstcount信号之外,还发出addres

30、s和read信号。如果Avalon交换架构没有准备好,它就在下一个clk的上升沿之前发出waitrequest信号。最后,Avalon交换架构使waitrequest失效,同时在下一个clk的上升沿捕获address和burstcount。这时地址阶段结束。多个数据阶段随之开始。,当主端口开始burstcount值大于1的读传输,要遵循下面的规则:如果主端口制定了burstcount值为N,那么要完成突发传输,Avalon交换架构必须确保在N个clk的上升沿发出readdatavalid。主端口端口对的仲裁一直保持锁定,直到Avalon交换架构返回突发传输的所有数据。只要Avalon交换架构置

31、readdatavalid信号有效,主端口必须捕获readdata。Readdata的每一个值只是在这个时钟周期有效。主端口必须在整个突发传输期间置所有的byteenable信号线有效。,主端口突发读传输,(A) 主端口发出address、burstcount和read。本例中,burstcount值为4。(B) Avalon交换架构置waitrequest有效,表示它没有做好处理突发传输的准备。作为响应,主端口保持所有的输出不变。(C) Avalon交换架构置waitrequest无效。(D) Avalon交换架构在clk的上升沿捕获address和burstcount。 主端口可以在此cl

32、k的上升沿开始一次新传输或突发传输。 (本例中不是如此).(E) 这是Avalon交换架构可以返回有效readdata的最早的时钟上升沿。本例中,Avalon交换架构没有发出readdatavalid,所以主端口不捕获readdata。(F) 一段时间后,Avalon交换架构提供有效的readdata,并置readdatavalid有效。(G) 主端口在clk的上升沿捕获readdata 的第一个单元(D0)。(H) 主端口在clk的上升沿捕获readdata的下一个单元 (D1)。(I) Avalon交换架构没有有效的readdata,所以它置readdatavalid无效。Avalon交换

33、架构可以保持eaddatavalid 无效任意个时钟周期。(J) 一段时间后,Avalon交换架构提供有效的readdata,并重新置readdatavalid有效。(K) 主端口在clk的上升沿捕获readdata 的下一个单元(D2) 。(L) 主端口在clk的上升沿捕获readdata最后的单元(D3) 。主端口突发读传输结束。,4.7.3 从端口突发传输,对于Avalon从端口来说,burstcount是一个输入信号。突发传输除了影响burstcount的行为,还对address、read、readdata、readdatavalid、write、writedata和byteenabl

34、e信号的行为产生影响。从端口还可以使用输入信号beginbursttransfer,Avalon交换架构在每个突发传输的第一个时钟周期发出该信号。在突发传输开始时,Avalon交换架构在address上发出有效的地址,在burstcount上发出突发传输的长度。对于地址为A、burstcount 值为B的突发传输,从端口从地址A开始,执行B个连续的传输。突发传输在从端口处理完第B个数据单元之后结束。,一次突发传输,从端口只捕获一次地址。突发传输从这个捕获的地址开始,外设的逻辑推断出突发传输中所有剩余传输的地址。推断出的地址与从端口使用的是本地地址对齐还是动态地址对齐有关:如果使用本地地址对齐,

35、地址保持不变。例如,address为0x1000、burstcount值为0x0A的突发写传输,向不变的地址0x1000写入10个数据单元。如果使用动态地址对齐,每传输一个数据单元从端口地址增加1。例如,address为0x1000、burstcount值为0x04的写传输,会向从端口地址0x1000、0x1001、0x1002和0x1003传输4个数据单元。,4.7.3.1 从端口突发写传输,从端口突发写传输的开始是和从端口基本写传输的开始相类似的。Avalon交换架构除了burstcount之外,还发出chipselect、address、byteenable、writedata和writ

36、e信号。如果从端口没有准备好进行传输,它就在下一个clk的上升沿之前置waitrequest有效。最后,从端口置waitrequest无效,并且在下一个clk的上升沿捕获address和burstcount。从端口也在这个clk的上升沿捕获writedata的第一个单元。这是从端口捕获有效的burstcount和address的唯一时刻。,当从端口开始burstcount值大于1的突发写传输,需要遵循如下的规则:如果Avalon交换架构指定burstcount值为N,要完成突发传输,从端口必须接受N 个连续的writedata数据单元。支持端口对之间的仲裁被锁定直到突发传输结束,以保证数据按照

37、主端口发起突发传输的顺序到达。从端口必须只在write有效的时才捕获writedata。对于第2个或其后的数据单元,Avalon交换架构能够在任意的clk的上升沿使write失效,来表示它现在没有提供有效的writedata。这不会终止突发传输,只会延迟突发传输直到Avalon交换架构重新置write有效。chipselect信号是write的反映。当Avalon交换架构使write失效,同是也使chipselect失效。从端口可以在clk的上升沿通过置waitrequest有效来延迟传输, 这将强迫Avalon交换架构在一个额外的周期内保持writedata、write和byteenable

38、不变。Avalon交换架构在突发传输期间置byteenable 的所有信号线有效。,从端口突发写传输,(A) Avalon交换架构发出chipselect、address、burstcount、write和writedata的第一个单元。本例中,burstcount值为4。(B) 从端口置waitrequest有效,表示它没做好处理突发传输的准备。作为响应,Avalon交换架构保持所有的输出不变。(C) 从端口置waitrequest无效。(D) 从端口在clk的上升沿捕获address、burstcount、write和writedata 的第一个单元(D0)。这是从端口捕获address和

39、burstcount的唯一时刻。(E) 从端口在clk的上升沿捕获writedata的下一个单元 (D1)。(F) Avalon交换架构置write无效,表示它这个周期没有有效的writedata。(G) 从端口在clk的上升沿不捕获writedata,因为write为无效。(H) 一段时间之后,Avalon交换架构再次置write和writedata有效。(I) 从端口在clk的上升沿捕获writedata的下一个单元(D2)。(J) 从端口置waitrequest有效。作为响应,Avalon交换架构在整个时钟周期里保持所有的输出不变。(K) 从端口置waitrequest无效。(L) 从端

40、口在clk的上升沿捕获writedata 的最后的单元(D3) ,从端口的突发写传输结束。,4.7.3.2 从端口突发读传输,从端口突发读传输同具有可变延迟的从端口流水线读传输是相似的。突发读传输有明显的地址和数据阶段,并且从端口使用readdatavalid信号来指示它何时在提供有效的readdata。两者的区别在于一个单独的突发地址阶段对应多个数据阶段。在从端口突发读传输开始的时候,Avalon交换架构除了发出burstcount之外,还发出chipselect、address和read信号。 如果从端口还没有准备好,从端口在下一个clk的上升沿之前置waitrequest有效。最后,从端

41、口置waitrequest无效,并且在下一个clk的上升沿捕获address和burstcount,地址阶段结束。多个数据阶段随之开始。,当从端口开始burstcount值大于1的突发读传输时,要遵循如下的规则:如果Avalon交换架构制定了burstcount值为N,要完成突发传输,从端口必须产生N个连续的readdata数据单元。主从端口对之间的仲裁一直保持锁定直到突发传输结束。从端口通过在clk的上升沿发出有效的readdata和置readdatavalid有效来提供数据单元。置readdatavalid无效不会终止突发传输,只会将突发传输延迟到从端口重新置readdatavalid有效

42、。在突发传输期间,Avalon交换架构置byteenable的所有信号线有效。,从端口突发读传输,(A) Avalon交换架构发出ddress、burstcount和read。本例中,burstcount值为4。(B) 本例中,从端口置waitrequest有效,表示它没做好处理突发传输的准备。作为响应,Avalon交换架构再保持所有的输出一个周期不变。(C) 从端口置waitrequest无效。(D) 从端口在clk的上升沿捕获address和burstcount。Avalon交换架构可以在此clk的上升沿开始一次新的传输。(本例中不是如此)(E) 这是从端口能返回有效数据的最早的时钟上升沿

43、。本例中,从端口没发出readdatavalid,所以Avalon交换架构在这个clk的上升沿不捕获readdata。(F) 一段时间之后, 从端口提供有效的readdata,并置readdatavalid有效。(G) Avalon交换架构在clk的上升沿捕获readdata的第一个单元 (D0)。(H) Avalon交换架构在clk的上升沿捕获readdata的下一个单元 (D1)。(I) 从端口没有有效的readdata,所以它置readdatavalid无效。从端口可以保持readdatavalid无效任意个周期。(J) 一段时间之后,从端口提供有效的readdata,并再次置readd

44、atavalid有效。(K) Avalon交换架构在clk的上升沿捕获readdata的下一个单元(D2)。(L) Avalon交换架构在clk的上升沿捕获readdata的最后的单元(D3)。从端口的突发读传输结束。,4.8 流控制,Avalon流控制信号给从端口提供了调节来自主端口的传输的机制,从而达到从端口指示有效数据准备好了或者准备好接收数据了,传输才开始。流控制信号提供如下的好处:简化逻辑设计,因为主端口不用重复地查询从端口以确定从端口是否准备好传输。减少带宽开销,因为从端口传输只在从端口准备就绪才开始。允许从端口控制来自或去往非智能主端口的数据流,这些外设无条件地和连续不断地发起传

45、输。,4.8.1 具有流控制的从端口传输,要使用流控制,从端口使用下面的一个或多个信号:readyfordata、dataavailable和endofpacket。具有流控制的从端口就定义为使用一个或多个上述信号的从端口。流控制属性不会影响其它信号的顺序和时序。,4.8.1.1流控制信号,1. readyfordata和dataavailable信号从端口通过发送readyfordata来表示它已经准备好接受写传输,readyfordata无效表示执行写传输将会引起数据上溢出。从端口发送dataavailable来表示其已经准备好提供数据给读传输,dataavailable无效表示读传输会使

46、数据下溢出。在使用流控制的主从端口对中,在主端口发起一次传输之后,只有当readyfordata或dataavailable信号指示从端口已经准备好进行这次传输时,Avalon交换架构才和目的从端口发起传输。当从端口没有准备好时,Avalon交换架构强迫主端口等待。上两个信号中的任意一个无效时,都不会阻止Avalon交换架构发起来自不使用流控制的主端口的传输。因为这个原因,从端口必须总是准备好开始一次传输,不管readyfordata和dataavailable的状态如何。,2. endofpacket信号在任何的传输中,有流控制的从端口能够发出endofpacket信号,该信号经由Avalo

47、n交换架构到达主端口。endofpacket信号的解释是由外设设计决定的,外设设计还必须说明主端口应该任何响应endofpacket信号。例如,endofpacket信号可被用作包的描述器,用来在一个长的数据流中标记包的开始和结束位置。另外,endofpacket可以指示主端口应该停止当前传输的序列。根据外设的设计,从端口可以置endofpacket一个周期有效,或无限期地置endofpacket有效,直到主端口明确地复位从端口逻辑。主端口可能不使用endofpacket信号,所以,即使主端口不检测endofpacket信号,从端口的逻辑必须能够继续工作。,4.8.1.2 具有流控制的从端口读

48、传输,据有流控制的从端口读传输使用dataavailable和 endofpacket信号。从端口可以在任何时刻发出dataavailable信号。当dataavailable有效时,来自具有流控制的主端口的一次新传输可以在下一个clk的上升沿开始。 从端口只可以在读传输结束的时候,置dataavailable无效。该信号立即对随后的连续的传输生效。如果从端口使用endofpacket信号,它必须保证在其发出有效的readdata的同一个时钟上升沿置endofpacket信号有效。,具有流控制的从端口读传输,4.8.1.3. 具有流控制的从端口写传输,具有流控制的从端口写传输使用readyfo

49、rdata和endofpacket信号。从端口可以在任何时刻,将readyfordata由低电平置为高电平有效。当readyfordata有效时, 在下一个clk的上升沿,来自具有流控制的主端口的传输开始。在写传输结束的时候,从端口必须将readyfordata由高电平置为低电平, 这样的话,该信号能立即对随后的传输起作用。如果从端口使用endofpacket信号,它必须保证在其捕获writedata.的同一个时钟上升沿endofpacket有效。,具有流控制的从端口写传输,4.8.2 具有流控制的主端口传输,流控制不会改变主端口的信号顺序和时序。流控制不需要额外的主端口信号。主端口能够对写传输或读传输,或读传输和写传输都应用流控制。使用流控制的主端口可以有选择地使用输入信号endofpacket。流控制影响主端口的waitrequest信号,但是不影响主端口响应waitrequest的方式。流控制只是增加了Avalon交换架构发出waitrequest信号给主端口的条件。在具有流控制的主从端口对中,在主端口发起传输后,如果从端口没准备好接受传输,Avalon交换架构发出waitrequest。如果从端口不使用流控制,那么传输的处理同两个端口都不使用流控制的情况一样。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经济财会 > 贸易

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报