第4章_Avalon总线规范(下).ppt_第1页
第4章_Avalon总线规范(下).ppt_第2页
第4章_Avalon总线规范(下).ppt_第3页
第4章_Avalon总线规范(下).ppt_第4页
第4章_Avalon总线规范(下).ppt_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章 Avalon总线规范,4.6 流水线传输属性,Avalon流水线读传输可以增加Avalon同步从外设的带宽,在第一次访问从外设时需要好几个周期才能返回数据,但是此后每个周期都能返回数据。使用流水线读传输,一个端口可以在上一次传输的readdata返回之前,开始新的传输。只有流水线的读传输,因为Avalon写传输不需要由从端口返回确认信号,所以没有流水线的写传输,Avalon写传输不会受益于流水线。,流水线读传输的持续时间可以分成两个不同的阶段:地址阶段和数据阶段。 主端口在地址阶段提供地址来发起一次传输;从端口在数据阶段发送数据来完成传输。一次新传输(或多次传输)的地址阶段可以在前一次

2、的数据阶段结束之前开始。这个延迟导致了流水线延迟,即从地址阶段的结束到数据阶段的结束,换句话说,就是数据阶段的持续时间。,地址阶段的持续时间(即捕获地址所需要的时钟周期数)决定了端口的吞吐量:长的地址阶段会减少吞吐量。数据阶段的持续时间,只反映了第一个数据单元需要多长时间才能返回。这是等待周期和流水线延迟影响时序关键区别:,等待周期等待周期决定地址阶段的长短,并且限制了端口的最大吞吐量。例如如果一个从端口需要一个等待周期来响应传输请求,则端口每一次传输至少需要两个周期。没有等待周期的Avalon从外设每个时钟周期都可接受一次新传输。 流水线延迟流水线延迟决定了数据阶段的长短,但和地址阶段无关。

3、例如,具有流水线传输的从端口(没有等待周期)可以支持一个周期一次传输,尽管可能需要几个周期的延迟才返回第一个数据单元。流水线延迟可以是固定的或可变的。,4.6.1 具有固定延迟的从端口流水线读传输,Avalon流水线从端口从Avalon交换架构捕获地址和控制信号之后,Avalon流水线从端口需要一个或多个周期来产生数据。在从端口捕获了地址之后,即使前一次传输还没有返回有效的readdata, Avalon交换架构可以立即发起新的传输。因此,流水线从端口在任何时刻都可能有多个挂起的传输。具有固定延迟的从端口流水线传输使用的信号与从端口基本读传输使用的信号相同,不同之处在于,地址和数据阶段的信号时

4、序。,除了readdata信号,地址阶段的信号的时序和顺序同基本读传输相同。在地址阶段,从端口使用从端口可以使用等待周期。地址阶段在等待周期(如果有)结束后的下一个clk上升沿结束。从端口必须在地址阶段的最后一个clk上升沿之前捕获地址。从端口在地址阶段不发出这次传输的readdata。在地址阶段结束后,Avalon交换架构可以发起一次新的传输。 在数据阶段,外设处理花费多个时钟周期来地址,然后经过一个固定的延迟后产生readdata。如果外设具有N个周期的读延迟,从端口必须在地址阶段结束后的第N个clk上升沿提供有效的readdata。数据阶段及整个传输在地址阶段结束后N个周期的clk上升沿

5、结束。例如,如果从端口有1个周期的读延迟,则它会在捕获地址之后的下一个clk上升沿提供有效的readdata。,(A) Avalon交换架构通过提供新传输的地址阶段的chipselect、read和address信号,发起一次读传输。 (B) 从端口已经置waitrequest有效,所以前一个周期称为等待周期。Avalon交换架构保持chipselect、read和 address不变。 (C) 从端口在clk的上升沿置waitrequest无效,并且捕获address。地址阶段结束,数据阶段开始。 (D) 第一个延迟周期在clk的上升沿结束。 (E) 第二个延迟周期在clk的上升沿结束。从端

6、口提供有效的readdata,传输结束。这个clk的上升沿也标志着新的读传输的开始。 (F) Avalon交换架构发出新传输的address、read和chipselect信号。 (G) Avalon交换架构在下一个周期发内,在前一次的传输的数据返回之前发起另一次的读传输。 (H) Avalon交换架构在两个延迟周期之后捕获readdata。 (I) Avalon交换架构在两个延迟周期之后捕获readdata 。,具有固定延迟的从端口流水线读传输,4.6.2 具有可变延迟的从端口流水线读传输,具有可变延迟的流水线读传输允许从端口经过一个可变的数个周期延迟之后返回有效的readdata。具有可变

7、延迟的从端口使用额外的信号readdatavalid来表示从端口何时向Avalon交换架构提供有效的数据。使用了一位的输出信号readdatavalid即意味着该端口为具有可变延迟的流水线从端口。,可变延迟的流水线从端口读传输的信号时序在地址阶段同具有固定延迟的流水线读传输是一样的。在地址阶段之后,具有可变延迟的流水线从端口需要任意的周期数来返回有效的readdata。当外设准备好返回数据,它就同时发送readdata和readdatavalid 并且保持信号不变直到下一个clk的上升沿。Avalon交换架构在这个clk的上升沿捕获readdata和readdatavalid,数据阶段(和整个

8、传输)结束。,从端口必须按照它接受地址的相同顺序返回readdata。据有可变延迟的流水线从端口必须在地址阶段结束之后至少一个周期以后才能返回readdata。 有可变延迟的流水线从端口通常使用可变的等待周期。实际上,流水线从端口只能处理有限数目的挂起传输。从端口可以发送waitrequest信号来暂停新的传输,直到挂起的传输数目减少为止。,具有可变延迟的从端口流水线读传输,(A) Avalon交换架构发出address、read和chipselect信号,发起一个读传输,假设这时没有挂起的传输。 (B) 从端口没置waitrequest有效,所以在此clk的上升沿捕获address1。 (C

9、) 从外设没发出waitrequest,所以在此clk的上升沿捕获address2。 (D) 从端口已达到允许挂起的传输数的最大值,并且没有有效的数据可供返回。从外设在下一个clk的上升沿之前置waitrequest有效,从而使Avalon交换架构能继续发出address、read和chipselect信号。从外设置waitrequest两个周期有效,直到它能返回第一个挂起的传输的数据。 (E) 外设驱动有效的readdata (data1)并置readdatavalid有效,完成第一个挂起的传输的数据阶段。外设置waitrequest无效,因为它能在下一个clk的上升沿接受另一次挂起的传输。

10、 (F) Avalon交换架构在clk的上升沿捕获data1。从外设在clk的上升沿捕获address3。 (G) 因为从端口置readdatavalid有效,Avalon交换架构在clk的上升沿捕获data2。(注意data1和data2都需要4个延迟周期才能返回)。Avalon交换架构发出address、read和chipselect,外设捕获address4。 (H) 由于从端口置readdatavalid有效,Avalon交换架构在clk的上升沿捕获data3。(注意data3需要2个延迟周期才能返回)。Avalon交换架构发出address、read,和chipselect,外设捕获

11、address5。 (I) 因为从端口置readdatavalid有效,Avalon交换架构在clk的上升沿捕获data4 。Avalon交换架构置chipselect无效,结束传输的队列。 (J) 因为从端口使readdatavalid无效,Avalon交换架构在此clk的上升沿不捕获数据。. (K) Avalon交换架构在clk的上升沿捕获data5 ,完成最后的挂起的读传输的数据阶段。,即使从外设正在处理一个或多个的挂起的读传输,Avalon交换架构也可以发起从端口的写传输。如果从外设正在处理挂起的读传输而不能处理写传输,从端口必须发出waitrequest,将写操作暂停,直到挂起的读传

12、输完成。 Avalon从端口如果接受了向当前挂起的读传输的相同地址执行写传输的操作,Avalon接口规范没定义readdata的值。挂起的传输返回的数据取决于外设。外设设计者必须指定在此情况下的逻辑行为,或明确说明该行为未定义。,带有可变延迟的流水线传输属性的从端口面临如下的限制: 具有可变延迟的流水线从端口不能使用固定等待周期的属性,只支持可变等待周期。 流水线从端口不能使用建立和保持时间的属性。 具有可变延迟的流水线从端口不能使用三态属性。,4.6.3 主端口流水线传输,流水线主外设可以在它接收到前一次传输的有效数据之前发起一次新的读传输。使用1位的输入信号readdatavalid来定义

13、一个流水线主端口。 Avalon交换架构发出readdatavalid信号给主端口来指示readdata信号正在提供有效的数据。,在流水线传输方式下,在地址阶段,除了readdata信号之外,信号时序和顺序与Avalon主端口基本读传输是一样的。主端口必须提供read、address和byteenable,并且在waitrequest信号有效时,保持这些信号不变。地址阶段在waitrequest失效的第一个clk的上升沿结束。主端口在地址阶段结束之后,能够马上发起另一次读传输或者写传输。,对流水线传输来说,readdata不必在地址阶段结束之后立刻返回。在地址阶段结束后,当Avalon交换架构

14、发出readdatavalid信号时,有效数据返回。Avalon交换架构始终按照主端口请求的顺序来返回有效的数据。对于Avalon交换架构何时发出readdatavalid信号没有时间的限制。流水线主端口在任意给定的时刻可以有任意数目的挂起的读传输。外设支持的挂起读传输的最大数目由外设的设计者决定。,流水线主端口能够有选择地使用flush信号,当主外设决定它不再需要当前挂起的读传输的数据的情况下,可以使用这个信号。例如,对于不知道指令是否有效之前预取指令的流水线CPU来说,清除流水线的功能是一个基本的要求。当主端口在clk的上升沿发出flush,readdatavalid直到下一次新的读传输的

15、数据在readdata端口上有效之前,一直是无效的。主端口可以在其发出flush信号的同一个周期内发起一次新传输。在这种情况下,这次新传输的数据将是readdata上的下一个有效数据。,主端口流水线读传输,(A) 主端口提供新传输地址阶段的address和read信号发起一次读传输 (B) Avalon交换架构置waitrequest有效,所以主端口等待,并再保持address和read一个周期。 (C) Avalon交换架构置waitrequest无效,并在clk的上升沿捕获address。此时readdatavalid无效,所以主端口不捕获readdata。 (D) Avalon交换架构在

16、clk的上升沿捕获一个新的address。readdatavalid 此时是无效的,所以主端口不捕获readdata。 (E) Avalon交换架构在clk的上升沿捕获address (使得挂起的传输数目达到3个)。readdatavalid 置为有效,主端口捕获有效的readdata (data 1)。 (F) readdatavalid无效,主端口不捕获readdata。 (G) readdatavalid无效,主端口不捕获readdata。 (H) readdatavalid有效,主端口捕获有效的readdata (data 2)。 (I) 主端口提供新传输的address和read信号

17、。 (J) readdatavalid无效,主端口不捕获readdata。主端口发出flush信号,导致Avalon交换架构清空所有的挂起的传输 (address 3)。Avalon交换架构捕获新的address。 (K) readdatavalid有效, 主端口捕获有效的readdata (data 4)。此时没有挂起的传输。,4.7 流控制,Avalon流控制信号给从端口提供了调节来自主端口的传输的机制,从而达到从端口指示有效数据准备好了或者准备好接收数据了,传输才开始。流控制信号提供如下的好处: 简化逻辑设计,因为主端口不用重复地查询从端口以确定从端口是否准备好传输。 减少带宽开销,因为

18、从端口传输只在从端口准备就绪才开始。 允许从端口控制来自或去往非智能主端口的数据流,这些外设无条件地和连续不断地发起传输。,在从端口方面,流控制信号使从端口在传输开始前先声明其已准备就绪。在主端口方面,具有流控制信号的主端口同意信任从端口的流控制信号, 并等待直到从端口准备好处理传输。 为了使流控制能够起作用,主从端口对的两个端口都必须使用流控制。如果其中之一或全都不使用流控制,则传输的处理同两个端口都没有流控制时是一样的。例如,如果主端口不使用流控制,则从端口控制信号就不能延迟主端口的传输。 限制:流控制信号不能用于Avalon三态端口。,4.7.1 具有流控制的从端口传输,要使用流控制,从

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

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

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

22、lable和 endofpacket信号。 从端口可以在任何时刻发出dataavailable信号。当dataavailable有效时,来自具有流控制的主端口的一次新传输可以在下一个clk的上升沿开始。 从端口只可以在读传输结束的时候,置dataavailable无效。该信号立即对随后的连续的传输生效。如果从端口使用endofpacket信号,它必须保证在其发出有效的readdata的同一个时钟上升沿置endofpacket信号有效。,具有流控制的从端口读传输,(A) 传输在clk的上升沿开始。 (B) Avalon交换架构发出address和read信号。 (C) Avalon交换架构对地址

23、译码,并发出chipselect信号。 (D) 从端口发出有效的readdata。Avalon交换架构在clk的上升沿捕获readdata 。 (E) 对于chipselect和read有效的每一个周期,从端口产生有效的readdata。 (本例中,address保持不变,但不是所有的设计都是如此。) (F) 从端口发出endofpacket 和有效的readdata。 (本例中,从端口在一个周期后置endofpacket无效,但不是所有的设计都是如此。) 从端口也置dataavailable无效,强迫Avalon交换架构延迟接下来的来自主端口的具有流控制的读传输。 (G) Avalon交换架

24、构置address、read和chipselect无效以响应dataavailable。 (H) 一段时间之后,从端口置dataavailable有效。 (I) 为了响应dataavailable,并且主端口仍在等待传输数据,Avalon交换架构开始一次新传输,重新发出address、read和chipselect。 (J) Avalon交换架构在clk的上升沿捕获data4。 (K) 从端口在chipselect和read有效的每一个周期发出有效的readdata。 (L) Avalon交换架构置read和chipselect无效,结束传输队列。 (M) 本例中,dataavailable保

25、持有效,意味着Avalon交换架构在任何时候都可以开始另一次读传输。,本例中,假设当从端口置dataavailable有效的时候,具有流控制的主端口发起了一个传输队列,并且主端口接下来继续发起读传输。在传输队列的某个位置,从端口置dataavailable无效,使得Avalon交换架构停止发起传输。稍后,从端口再次置dataavailable有效,Avalon交换架构继续执行从端口的读传输队列。,4.7.1.3. 具有流控制的从端口写传输,具有流控制的从端口写传输使用readyfordata和endofpacket信号。 从端口可以在任何时刻,将readyfordata由低电平置为高电平有效。

26、当readyfordata有效时, 在下一个clk的上升沿,来自具有流控制的主端口的传输开始。在写传输结束的时候,从端口必须将readyfordata由高电平置为低电平, 这样的话,该信号能立即对随后的传输起作用。如果从端口使用endofpacket信号,它必须保证在其捕获writedata.的同一个时钟上升沿endofpacket有效。,具有流控制的从端口写传输,(A) 在clk的上升沿传输开始。 (B) Avalon交换架构发出address、write和writedata。 (C) Avalon交换架构 对地址译码,然后发出chipselect信号。 (D) 从端口在当前传输的最后一个c

27、lk的上升沿之前置endofpacket有效。本例中,从端口在一个周期之后置endofpacket无效,但这不是必须的。 (E) 从端口在clk的上升沿捕获writedata 。Avalon交换架构捕获endofpacket。 (F) 对chipselect和write有效的每个周期,Avalon交换架构产生有效的writedata,从端口在clk的上升沿捕获writedata。本例中,address 保持不变,但不是对所有的外设都是如此。. (G) 对于chipselect和write有效的每个周期,Avalon交换架构产生有效的writedata,从端口在clk的上升沿捕获writedat

28、a。本例中,address保持不变,但是不是所有的外设都是如此。 (H) 从端口置readyfordata无效,强迫Avalon交换架构延迟随后的来自主端口的写操作。Avalon交换架构置address、write、chipselect和writedata无效以响应readyfordata。 (I) 一段时间之后,从端口再次置readyfordata有效。 (J) 为响应readyfordata,并且主端口仍在等待传输数据,Avalon交换架构通过重新发出address、write、chipselect和writedata信号来开始另一次传输。 (K) 当write和chipselect有效时

29、,从端口在clk的上升沿捕获writedata (L) 当write和chipselect有效时,从端口在clk的上升沿捕获writedata。 (M) Avalon交换架构置write和chipselect无效,结束传输的队列。,本例中,假设当从端口置readyfordata有效时,具有流控制的主端口已经发起了一个传输队列,并且接下来主端口继续发起写传输。 在传输队列的某处,从端口置readyfordata无效,导致Avalon交换架构停止发起来自主端口的传输。稍后,从端口再次置readyfordata有效,Avalon交换架构继续从端口的写传输队列。本例中,数据写入一个固定的从端口地址,这

30、是I/O外设的情况。,4.7.2 具有流控制的主端口传输,流控制不会改变主端口的信号顺序和时序。流控制不需要额外的主端口信号。主端口能够对写传输或读传输,或读传输和写传输都应用流控制。使用流控制的主端口可以有选择地使用输入信号endofpacket。 流控制影响主端口的waitrequest信号,但是不影响主端口响应waitrequest的方式。流控制只是增加了Avalon交换架构发出waitrequest信号给主端口的条件。在具有流控制的主从端口对中,在主端口发起传输后,如果从端口没准备好接受传输,Avalon交换架构发出waitrequest。如果从端口不使用流控制,那么传输的处理同两个端

31、口都不使用流控制的情况一样。,如使用了endofpacket,该信号被用作当前传输的状态标志。如果主端口和从端口都是用了endofpacket,该信号直接从从端口传递到主端口。对于写传输,主端口在发送有效的writedata时,捕获endofpacket。对于读传输,主端口在捕获有效的readdata的同一个时钟周期内,捕获endofpacket。对endofpacket信号的解释是有从外设的逻辑决定的。例如endofpacket可被用作包描述器,用来在一个长的数据流中,标志包的开始和结束位置。另外,endofpacket可用来指示主端口应该停止当前的传输队列。,具有流控制的主端口读传输和写传

32、输,(A) 在clk的上升沿,第一个写传输开始。 (B) 主端口发出address、write和有效的writedata。 (C) Avalon交换架构在下一个clk的上升沿之前置waitrequest有效,强迫主端口等待。原因可能是目标从端口的流控制信号不允许执行传输。不论什么原因,主端口必须服从waitrequest,因为它必须服从 (D) 在clk的上升沿waitrequest是有效的,所以主端口保持address、write和writedata不变。. (E) Avalon交换架构置waitrequest无效。 (F) Avalon交换架构在clk的上升沿捕获writedata。 (G

33、) 主端口保持address和write有效,并发出新的writedata。Address不是必须保持不变的,这取决于外设的设计。 (H) 如果有必要,主端口在当前传输的最后一个clk的上升沿捕获endofpacket。主端口通过使address、write和writedata无效来.结束新传输。 (I) 主端口在下一个周期通过发出read和有效的address信号,立即开始一次读传输。 (J) Avalon交换架构置waitrequest有效来表示它不能在下一个clk的上升沿返回有效的数据。 原因可能是目标从端口的流控制信号不允许执行传输。不论什么原因,主端口必须服从waitrequest

34、。 (K) 最后,Avalon交换架构置waitrequest无效,并提供有效的readdata。本例中,Avalon交换架构发出endofpacket信号。. (L) 主端口在clk的上升沿捕获readdata和endofpacket。 (M) 主端口保持address和read有效,以进行另一次传输,Avalon交换架构提供有效的readdata.。 (N) 主端口置read和address无效,传输结束。,4.8 三态传输,Avalon三态属性允许基于Avalon的系统与片外的设备直接相连,比如存储器芯片或外部的处理器。使用三态属性,可以使Avalon端口同许多标准的存储器和处理器的总线

35、接口相匹配。如果Avalon信号的子集能够描述一个芯片的接口,则该芯片实际上具有一个Avalon的三态端口,Avalon交换架构可以通过三态传输和该芯片相接口。,4.8.1 三态从端口传输,Avalon三态从端口允许Avalon交换架构和片外的共享PCB板上的地址和数据总线的设备进行接口。Avalon三态从端口可以用来将Avalon交换架构与同步及异步的存储芯片连接起来,如ROM、flash memory、SRAM、SSRAM和ZBT RAM。三态从端口使用双向的信号data,而不是分离的、单向的信号readdata和writedata。data信号是有三态属性的,这样能使多个三态的外设连接到

36、数据总线而不引起信号竞争。,三态从端口还必须使用outputenable信号。三态从端口使用data信号,不可以再使用readdata或writedata信号。其它的所有Avalon信号的行为同其它非三态端口的相同。Avalon三态从端口普遍使用低电平有效的信号,如read_n、chipselect_n和outputenable_n,这样做是为了和存储器芯片的信号约定保持一致。,Avalon三态从端口面临下面的限制: Avalon三态从端口不支持可变延迟的流水线传输,但支持固定延迟的流水线传输。 Avalon三态从端口不能使用流控制信号。 Avalon三态从端口不支持突发属性。,1. data

37、信号的行为 在写传输的过程中,Avalon交换架构驱动data信号线,向外设提供数据。在读传输的过程中,从外设驱动data线,Avalon交换架构捕获data信号。当Avalon交换架构置outputenable信号有效,三态从端口必须驱动它的data信号线。当Avalon交换架构置outputenable无效, Avalon三态从端口必须将其信号线置为高阻状态,如果不这样做,将可能发生信号竞争, 从而可能会对连接到三态端口的器件造成损坏。 2. address信号行为 对Avalon三态从端口来说,address信号表示字节的地址,这是和非三态从端口不同的地方,非三态从端口使用字地址。对三态

38、从端口来说,address信号可被多个片外设备共享,而这些设备可能有不同的数据宽度。如果Avalon三态从端口数据宽度大于一个字节,那么有必要将Avalon交换架构的地址信号正确地映射到从设备的地址信号线上去。 下表 说明在所有可能的数据宽度的情况下,哪根地址线对应着A0 (外部器件的地址最低有效位)。,3. outputenable和read信号行为 Avalon交换架构只在读传输过程中发出outputenable信号,当端口的outputenable无效,data用于写传输的信号传输,或者用于共享data信号线的其他外设的信号传输。因此,在outputenable无效时,将data线置于高

39、阻态就很重要。 outputenable行为因三态从端口有无流水线属性而有所不同: 对于没有流水线属性的三态从端口来说,outputenable和read信号是作用一样的。因此,Avalon的read_n信号能够直接连接到外部器件的输出使能引脚和 (例如 OEn) 和读使能引脚 (例如 READn)。 对于具有流水线属性的三态从端口来说,Avalon交换架构只在地址阶段发出read信号,在数据阶段置其为无效,然后,在最后的clk上升沿之前,Avalon交换架构发出outputenable,从而让外设驱动它的数据引脚。 当没有挂起的传输时,Avalon交换架构将outputenable置为无效。

40、 4. write_n和writebyteenable信号行为 有些存储器件使用组合的combined R/Wn引脚(即 高电平时读,低电平时写)。Avalon的write_n信号行为就是如此,能够将其连接到R/Wn引脚。write_n只在写传输时置为有效。在其它时刻置为无效 (即读模式)。这样,Avalon的outputenable_n信号连接到片外设备的输出使能引脚,write_n信号连接到R/Wn引脚。 一些同步的存储设备为每个字节段使用单独的写使能信号(例如,BWn1, BWn2, BWn3, and BWn4)。Avalon端口的writebyteenable是write和bytee

41、nable信号的逻辑与,并且可以直接连到上述的这些BWn引脚上去。,与异步存储芯片的连接,6. chipselect信号和Chipselect-Through-Read-Latency属性 对于典型的存储芯片,Avalon chipselect_n信号可以直接和存储芯片的芯片选择或芯片使能引脚相连(如 CSn或CEn)。 有些使用固定延迟的流水线传输的同步存储芯片要求芯片选择信号只在地址阶段有效,而其它的存储芯片要求芯片选择信号直到整个的传输结束都有效。Avalon三态从端口通过使用chipselect-through-read-latency属性支持以上两种需要。 三态从端口必须声明它支持哪

42、种chipselect时序: 当端口使用chipselect-through-read-latency属性时,Avalon交换架构在读传输的地址和数据阶段都置chipselect信号有效。在这种情况下, chipselect是outputenable信号的镜像。 当端口不使用chipselect-through-read-latency属性时,Avalon交换架构只在地址阶段置chipselect有效, 这时,chipselect是read信号的镜像。,7. 与片外异步存储器接口 当Avalon交换架构与具有Avalon三态从端口的片外异步存储器直接相连时,不需要clk信号。传输的同步是通过c

43、hipselect、read 和/或write信号使用建立和保持时间来获得的。Avalon交换架构的所有输出信号在整个传输过程中都是没有干扰的。 8. 与片外的同步存储器接口 Avalon三态从端口可以写入数据到片外同步存储设备中去, 比如SSRAM和ZBT RAM。例如,保持时间属性可以用来保持data信号在write失效几个时钟周期之后仍然有效。 三态从端口支持连续的流水线读传输和连续的流水线写传输,然而,Avalon交换架构在发起一次新的写传输之前,必须要等待所有挂起的流水线读传输全部完成才可以。这样可以避免潜在的读传输数据和写传输的数据发生碰撞而在data信号线引发信号竞争的可能。因此

44、,当Avalon三态端口执行读-写传输队列时,不能达到它的最大可能带宽。,与同步存储芯片的连接,三态从端口与异步存储器的读传输实例 本例展示的是三态从端口与片外异步RAM或ROM存储芯片进行传输的适当配置。这种情况下,因为存储芯片是异步的,三态从端口不使用clk信号。然而,Avalon交换架构总是同步工作的,它总是在clk的整数周期发生变化和捕获数据。 下图是Avalon三态从端口的读传输时序图。该端口使用了下面的Avalon传输属性: 一个时钟周期的固定的建立时间 一个时钟周期固定等待周期 非流水线模式,(A) Avalon交换架构驱动address,并且置chipselect_n有效。 (

45、B) 在一个周期的建立时间延迟之后,Avalon交换架构置read_n和outputenable_n有效。 (C) 从端口驱动data以响应outputenable_n。data在此时可能是无效的。本例中,没有是未定义的。. (D) Avalon交换架构在等待周期内保持address有效。 (E) 从端口在传输的最后时钟上升沿之前的某个时刻驱动有效的data 。 (F) Avalon交换架构在clk的上升沿捕获data,传输结束。 (G) 从端口将data置为高阻,以响应此时的outputenable_n无效状态。.,具有建立时间和等待周期的三态从端口读传输,4.8.2 三态主端口传输,Ava

46、lon三态主端口允许Avalon交换架构和片外的主外设使用双向的数据端口相接口,例如外部处理器的数据总线。三态主端口使用双向的data信号,而不是分离的单向的readdata和writedata信号。 三态主端口不能在使用了readdata或 writedata之后,再使用data。所有其它的Avalon主端口都是遵循此规则。和三态从端口不同, Avalon三态主端口不能和其它的三态主端口在PCB板上共享数据和地址线。 在写传输的过程中,三态主端口驱动data信号线提供数据给Avalon交换架构。在读传输的过程中,Avalon交换架构驱动data信号线,三态主端口捕获数据。,Avalon三态主

47、端口应用有如下的限制: Avalon三态主端口不能支持流水线模式。 Avalon三态主端口不支持流控制信号。 Avalon三态主端口不支持突发模式。,(A) 主端口在clk的上升沿发起写传输。 (B) 主端口发出address和write.信号。主端口驱动data数据线。 (C) Avalon交换架构在clk的上升沿捕获写数据。主端口在这个周期内发起一次新的传输,发出address和read信号。 (D) Avalon交换架构置waitrequest有效。作为响应,主端口在整个周期内保持所有的信号不变。 (E) 稍后,Avalon交换架构在data的数据线上驱动有效的读数据,并置waitreq

48、uest无效。 (F) 主端口在clk的上升沿捕获data。Avalon交换架构在这个周期内发起一次新的写传输。 (G) Avalon交换架构在clk的上升沿捕获data,写传输结束。,三态主端口写传输和读传输,4.9 突发传输,Avalon接口支持突发传输。突发模式下,多个传输作为一个单元来处理,而不是每个数据单元作为一个独立的传输。突发传输最大化从端口的吞吐量,在从端口处理来自一个主端口的多个数据单元的时候可以达到最高的效率。,突发传输保证了主端口在突发传输的期间内对目标从端口的访问不会被打断。一旦一个主从端口对之间的突发传输开始,直到突发传输结束,Avalon交换架构不再允许任何其它的主

49、端口访问该从端口。,Avalon主/从端口通过包含信号burstcount来支持突发传输。下面是主从端口的burstcount信号的特性: Burstcount信号宽度必须是232。 在突发传输的开始,burstcount信号提供一个编码的值,指示当前的突发传输中包含有多少个连续的传输。 burstcount的最小值是1。 burstcount值为1的突发传输等同于一个单独的非突发的传输。 对于burstcount宽度为N的情况,最大突发长度为2N-1. 此时,burstcount的最高为为1,所有其它位是0。 Avalon突发传输不能保证主端口或从端口每个时钟周期进行一次传输。突发传输能够保

50、证在突发传输期间主从端口对的仲裁是所定的。突发传输需要的时间是不确定的,取决于主从端口的外设逻辑。,4.9.1 限制,支持突发传输的端口面临如下的限制: 为了支持主端口的突发读传输,主端口必须支持流水线传输。由于流水线模式的主端口不允许使用三态属性,因此突发模式的主端口不能使用三态属性 为了支持从端口突发读传输,从端口必须支持: 可变的等待周期,即该端口必须包含waitrequest。因此,该端口不能使用建立和保持时间,这两个属性在使用可变等待周期的端口中是不允许的。 具有可变的延迟的流水线传输,即该端口必须包含readdatavalid信号。因此,从端口不能使用三态属性,三态属性在具有可变延

51、迟的流水线端口中是不允许的。,4.9.2 主端口突发传输,对Avalon主端口来说,burstcount信号是输出信号。除了burstcount信号,突发传输还影响address、read、readdata、eaddatavalid、write、writedata和byteenable信号的行为。 突发传输开始时,主端口在address上发出有效的地址,在burstcount发出突发传输的长度。每一次突发传输主端口只发出一个地址值,对于突发传输中所有传输的地址由Avalon交换架构自动地推断。 当主端口开始地址为A,burstcount值为B的突发传输,该主端口提交了从地址A开始的B个连续的传

52、输。突发传输直到主端口传输了B个单元的数据才完成。在当前的突发传输完成之前,主端口不能终止该突发传输,或者给出一个新地址。,4.9.2.1. 主端口突发写传输,主端口突发写传输的开始和主端口基本写传输是相似的。除了burstcount信号之外,主端口发出address、writedata、write和byteenable(如果需要)信号。如果Avalon交换架构还没有准备好,它在下一个clk的上升沿之前发出waitrequest。最后,Avalon交换架构使waitrequest失效, 同时在下一个clk的上升沿捕获address和burstcount信号。Avalon交换架构还在这个clk的

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

54、data。 Avalon交换架构可以通过发出waitrequest来延迟传输,这样做强迫主端口在一个附件的时钟周期内保持writedata和write不变。 主端口必须在整个突发传输期间内置所有的byteenable信号线有效。.,主端口突发写传输,(A) 主端口发出address、burstcount、write和writedata的第一个单元。本例中,burstcount值为4。 (B) Avalon交换架构置waitrequest有效,表明它没有做好处理突发传输的准备。作为响应,主端口保持所有输出不变。 (C) Avalon交换架构置waitrequest无效。 (D) Avalon交换

55、架构在clk的上升沿捕获address、burstcount、write和writedata的第一个单元(D0)。 (E) 主端口置address和burstcount无效, 这两个信号在突发传输的剩余部分被忽略。主端口提供writedata 的下一个单元(D1)。 (F) Avalon交换架构在clk的上升沿捕获writedata下一个单元 (D1)。 (G) 主端口置write无效,表示它这个周期没有有效的writedata。 (H) write信号为无效,所以Avalon交换架构在材料库的上升沿不捕获writedata。 (I) 主端口提供有效的writedata (D2) ,并重新置w

56、rite有效。 (J) Avalon交换架构在clk的上升沿捕获writedata (D2) 。 (K) 主端口提供writedata 的最后的一个单元(D3). (L) Avalon交换架构置waitrequest有效,导致主端口在整个时钟周期内保持所有的输出不变。 (M) Avalon交换架构使waitrequest无效。 (N) Avalon交换架构在clk的上升沿捕获writedata 的最后的单元(D3)。主端口突发写传输结束。,4.9.2.2 主端口突发读传输,主端口突发读传输和具有延迟的主端口流水线读传输是相似的。主端口突发读传输具有明显的地址阶段和数据阶段,并且使用readda

57、tavalid信号来指示主端口何时必须捕获readdata。不同点在于一个单独的突发传输地址对应多个数据阶段。 主端口突发读传输的开始类似于主端口的流水线读传输。主端口除了burstcount信号之外,还发出address和read信号。如果Avalon交换架构没有准备好,它就在下一个clk的上升沿之前发出waitrequest信号。最后,Avalon交换架构使waitrequest失效,同时在下一个clk的上升沿捕获address和burstcount。这时地址阶段结束。多个数据阶段随之开始。,当主端口开始burstcount值大于1的读传输,要遵循下面的规则: 如果主端口制定了burstc

58、ount值为N,那么要完成突发传输,Avalon交换架构必须确保在N个clk的上升沿发出readdatavalid。主端口端口对的仲裁一直保持锁定,直到Avalon交换架构返回突发传输的所有数据。 只要Avalon交换架构置readdatavalid信号有效,主端口必须捕获readdata。Readdata的每一个值只是在这个时钟周期有效。 主端口必须在整个突发传输期间置所有的byteenable信号线有效。,主端口突发读传输,(A) 主端口发出address、burstcount和read。本例中,burstcount值为4。 (B) Avalon交换架构置waitrequest有效,表示它

59、没有做好处理突发传输的准备。作为响应,主端口保持所有的输出不变。 (C) Avalon交换架构置waitrequest无效。 (D) Avalon交换架构在clk的上升沿捕获address和burstcount。 主端口可以在此clk的上升沿开始一次新传输或突发传输。 (本例中不是如此). (E) 这是Avalon交换架构可以返回有效readdata的最早的时钟上升沿。本例中,Avalon交换架构没有发出readdatavalid,所以主端口不捕获readdata。 (F) 一段时间后,Avalon交换架构提供有效的readdata,并置readdatavalid有效。 (G) 主端口在clk的上升沿捕获readdata 的第一个单元(D0)。 (H) 主端口在clk的上升沿捕获readdata的下一个单元 (D1)。 (I) Avalon交换架构没有有效的readdata,所以它置readdatavalid无效。Avalon交换架构可以保持eaddatavalid 无效任意个时钟周期。 (J) 一段时间后,Avalon交换架构提供有效的readdata,并重新置readdatavalid有效。 (K) 主端口在clk的上升沿捕获readdata 的下一个单元(D2) 。 (L) 主端口在clk的上升沿捕获readdata最后的单元(D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论