版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 Avalon总线规范,4.1 Avalon总线简介 4.2 Avalon总线基本概念 4.3 Avalon信号 4.4 从端口传输 4.5 主端口传输 4.6 流水线传输属性 4.7 流控制 4.8 三态传输 4.9 突发传输 4.10 和传输无关的信号 4.11 地址对齐,Avalon总线简介,总线的定义: (1)总线最初是指计算机系统中各种信号线的集合,是计算机各部件之间传送数据、地址和控制信息的公共通路,例如PCI总线。 (2)随着电子计算机技术和通信技术的发展,总线的概念也被更广泛的使用,现在总线一词不仅用于表示计算机系统中的信号线的集合,也用于表示各种通信系统,例如现场总线,
2、USB总线,485总线。 (3)简而言之,可以这样认为,总线就是一种通信规范以及规范的实现方法,不论是计算机系统还是通信领域。,Avalon总线简介,计算机总线的分类: (1)按相对于CPU或其它芯片的位置可分为:片内总线、片外总线 ; (2)按总线的功能可分为:地址总线、数据总线、控制总线 ; (3)按总线的层次结构可分为:CPU总线、存储总线、系统总线、外部总线;,Avalon总线简介,Avalon 总线 Avalon总线由ALTERA公司提出,用于在基于FPGA的片上系统中连接片内处理器和片内外设的总线结构。 连接到Avalon总线的设备分为主从设备,并各有其工作模式。 Avalon总线
3、本身是一个数字逻辑系统,它在实现“信号线汇接”这一传统总线功能的同时,增加了许多内部功能模块,引用了很多新的方法,比如从端仲裁模式,多主端工作方式,延时数据传输,这些功能使得在可编程逻辑器件中可以灵活的实现系统增减和IP复用。,Avalon总线简介,Avalon总线是用于处理器与片内/外外设互连的技术,这就决定了Avalon总线具有以下的一些特点: (1)简单性,易于理解、易于使用。 (2)占用资源少,减少对FPGA片内资源的占用。 (3)高性能,Avalon总线可以在每一个总线时钟周期完成一次数据传输。 (4) 专用的地址总线、数据总线和控制总线:这样Avalon总线模块和片上逻辑之间的接口
4、得以简化,Avalon外设不需要识别数据和地址周期。 (5)支持高达1024位的数据宽度,支持不是2的偶数幂的数据宽度。 (6) 支持同步操作,所有Avalon外设的接口与Avalon交换架构的时钟同步,不需要复杂的握手/应答机制。简化了Avalon接口的时序行为,而且便于集成高速外设。 (7) 支持动态地址对齐,可以处理具有不同数据宽度的外设间的数据传输,Avalon总线的自动地址对齐功能将自动解决数据宽度不匹配的问题,不需要设计者的干预。 (8) Avalon总线规范是一个开放的标准,用户可以在未经授权的情况下使用Avalon总线接口来自定义外设。,Avalon总线结构,传统的总线结构,A
5、valon总线结构采用交换式的总线结构,比传统的总线结构有着显著的优点。,采用Avalon交换架构,每个总线主机均有自己的专用互联,总线主机只需抢占共享从机,而不是总线本身。,每当系统加入模块或者外设接入优先权改变时,SOPC Builder利用最少的FPGA资源,产生新的最佳Avalon交换架构。,Avalon交换架构支持多种系统体系结构,如单主机/多主机系统,可实现数据在外设与性能最佳数据通道之间的无缝传输。,Avalon交换架构同样支持用户所设计的片外处理器和外设。,Avalon交换式总线结构支持数据总线的复用、等待周期的产生、外设的地址对齐以及高级的交换式总线传输。,Avalon总线简
6、介,Avalon总线在SOPC Builder中添加外设之后会自动生成,并且会随着外设的添加和删减而自动调整,最终的Avalon总线结构是针对外设配置而生成的一个最佳结构。 所以对于用户来说,如果只是使用已经定制好的符合Avalon总线规范的外设来构建系统,不需要了解Avalon总线规范的细节。 但是对于要自己设计外设的用户来说,开发的外设必须要符合相应的Avalon总线的规范,否则设计的外设也无法集成到系统中去。,Avalon总线简介,Altera提供了Avalon的接口规范,供设计者开发自己的外设和更好地使用外设。 该规范描述了诸如微处理器、存储器、UART等主从外设的基于地址的读/写接口
7、的基本知识。 Avalon接口规范给出了主从外设间的端口连接关系,通信的时序关系,支持的多种传输方式。 设计者可以不去了解Avalon交换结构的实现细节,只要掌握其同外设相连接的接口。,Avalon总线基本概念,Avalon外设 一个基于Avalon接口的系统会包含很多功能模块,这些功能模块就是Avalon存储器映射外设,通常简称Avalon外设。,所谓存储器映射外设:是指外设和存储器使用相同的总线来寻址,并且CPU使用访问存储器的指令也用来访问I/O设备。为了能够使用I/O设备,CPU的地址空间必须为I/O设备保留地址。,Avalon外设包括存储器,处理器、UART、PIO、定时器和总线桥等
8、。还可以有用户自定义的Avalon外设,用户自定义的外设要能称之为Avalon外设,要有连接到Avalon结构的Avalon信号。,Avalon总线基本概念,Avalon外设,主外设,从外设,能够在Avalon总线上发起总线传输,只能响应Avalon总线传输,而不能发起总线传输,主外设至少拥有一个连接在Avalon交换架构上的主端口,主外设也可以拥有从端口,使得该外设也可以响应总线上其它主外设发起的总线传输。,Avalon总线基本概念,Avalon交换架构 将Avalon外设连接起来,构成一个大的系统的片上互连逻辑就是Avalon交换架构。 Avalon交换架构是一种可自动调整的结构,随着设计
9、者不同设计而做出最优的调整。,Avalon总线基本概念,可以看到外设和存储器可以拥有不同的数据宽度,并且这些外设可以工作在不同的时钟频率。 Avalon交换架构支持多个主外设,允许多个主外设同时与不同的从外设进行通信,增加了系统的带宽。 这些功能的实现都是靠Avalon交换架构中的地址译码、信号复用、仲裁、地址对齐等逻辑实现的。,Avalon系统实例,Avalon总线基本概念,本章重点讨论Avalon外设和Avalon交换架构之间的互连,主要研究接口级的行为,不关注其内部实现。,Avalon总线基本概念,Avalon信号 Avalon接口定义了一组信号类型(片选、读使能、写使能、地址、数据等)
10、,用于描述主/从外设上基于地址的读写接口。 Avalon外设只使用和其内核逻辑进行接口的必需的信号,而省去其他会增加不必要的开销的信号。,Avalon总线基本概念,Avalon信号的可配置特性 Avalon信号的可配置特性是Avalon接口与传统总线接口的主要区别之一。 Avalon外设可以使用一小组信号来实现简单的数据传输,或者使用更多的信号来实现复杂的传输类型。 例如ROM接口只需要地址、数据和和片选信号就可以了, 而高速的存储控制器可能需要更多的信号来支持流水线的突发传输。,Avalon总线基本概念,Avalon的信号类型为其它的总线接口提供了一个超集,例如大多数分离的SRAM、ROM和
11、Flash芯片上的引脚都能映射成Avalon信号类型,这样就能使Avalon系统直接与这些芯片相连接。类似地,大多数Wishbone的接口信号也可以映射为Avalon信号类型,使得在Avalon系统中集成Wishbone的内核非常简单。,Avalon总线基本概念,主端口和从端口 Avalon端口就是完成通信传输的接口所包含的一组Avalon信号。,Avalon端口,主端口,从端口,主端口可以在Avalon总线上发起数据传输。,目标从端口在Avalon总线上响应主端口发起的数 据传输。,一个Avalon外设可能有一个或多个主端口,一个或多个从端口,也可能既有多个主端口,又有多个从端口。,Aval
12、on总线基本概念,Avalon的主端口和从端口之间没有直接的连接,主、从端口都连接到Avalon交换架构上,由交换架构来完成信号的传递。,在传输过程中,主端口和交换架构之间传递的信号与交换架构和从端口之间传递的信号可能有很大的不同。 所以,在讨论Avalon传输的时候,必须区分主从端口。,Avalon总线基本概念,传输 传输是指在Avalon端口和Avalon交换架构之间的数据单元的读/写操作。 Avalon传输一次可以传输高达1024位的数据,需要一个或多个时钟周期来完成。 在一次传输完成之后,Avalon端口在下一个时钟周期可以进行下一次的传输。,Avalon总线基本概念,Avalon传输
13、,主传输,从传输,Avalon主端口发起对交换架构的主传输。,Avalon从端口响应来自交换架构的传输请求。,传输是和端口相关的:主端口只能执行主传输,从端口只能执行从传输。,Avalon总线基本概念,主从端口对 主从端口对是指在数据传输过程中,通过Avalon交换架构相连接起来的主端口和从端口。在传输过程中,主端口的控制和数据信号通过Avalon交换架构和从端口相交互。,周期 周期是时钟的基本单位,定义为特定端口的时钟信号的一个上升沿到下一个上升沿之间的时间。完成一次传输最少要一个时钟周期。,clk,Avalon信号,Avalon接口规范定义了Avalon外设使用的信号类型,如地址、数据、片
14、选信号等等。根据外设逻辑接口的需求,Avalon外设可以使用任何类型的Avalon信号。 Avalon接口规范还定义了每种信号类型的行为。Avalon端口上的信号和信号类型是一一对应的,Avalon主/从端口的每一个信号必定属于某类的Avalon信号类型。一个Avalon端口每一种信号类型只能有一个信号实例。 根据端口的属性,可以将Avalon信号类型分为主信号或者从信号。有些信号在主端口和从端口的接口上都存在,但是信号的行为是不相同的。,Avalon信号,下图给出了一个16位的通用I/O输出外设,这个简单的Avalon外设只需响应接收数据的传输请求。因此该外设只使用了写传输的信号,而没有读传
15、输的信号。,Avalon信号,一、信号类型的完整列表 构成从端口和主端口的接口的信号类型中每一类型的信号的说明包括: 信号类型; 信号可能的宽度; 信号的方向(从外设的角度看); 该信号在端口上是否必不可少(必需性); 各种类型的信号的功能和特殊的使用要求的简单描述。,Avalon从端口信号类型(1),Avalon从端口信号类型(2),Avalon信号,在Avalon接口规范中,Avalon从端口没有任何信号是必须要有的,而Avalon主端口上必须要有三个信号:clk,address和waitrequest.,Avalon信号,二、信号极性 表中的信号类型都是高电平有效。Avalon接口也提供
16、每个信号类型的低电平有效的版本,在信号类型名后添加 _n 来表示。例如irq_n、read_n等。这对和那些低电平有效的片外逻辑相接时非常有用。,Avalon信号,三、信号命名规则 Avalon接口规范没有对Avalon外设上的信号指定命名的规则,Avalon外设上的信号的名字可以与信号类型名相同,或者也遵循系统级的命名规则。 在本章中,讨论Avalon传输的时候,信号名和信号类型名是相同的。,Avalon信号,四、Avalon信号时序说明 Avalon接口是一个同步的协议。每个Avalon端口都与Avalon交换架构提供的时钟同步。所有的传输都与Avalon交换架构的时钟同步发生,并在时钟上
17、升沿启动。 对任何的同步设计来说,Avalon外设必须只响应在时钟上升沿达到稳定状态的信号,并且在时钟上升沿产生稳定的输出。,Avalon信号,五、传输属性 不是所有的Avalon主/从端口都使用相同的信号类型,因此不同的Avalon端口具有不同的传输能力。Avalon接口规范定义了一套传输属性。一个特定的Avalon主/从端口可以支持一个或多个传输属性,这取决于外设的设计。外设支持的传输属性在设计时确定,在传输过程中不会改变。 Avalon接口规范定义了Avalon端口支持的如下的传输属性: 等待周期:固定或可变(只对从端口); 流水线:固定或可变的延迟; 建立和保持时间(只对从端口); 突
18、发; 三态。,Avalon信号,基本传输不具有上述的传输属性,所以基本传输提供了一个参照点,来描述每一个属性对端口和信号行为的影响。 使用一个特定的端口属性会产生下面的影响: (1)改变特定信号的行为; (2)需要一个或多个的信号类型来实现该属性。,Avalon信号,Avalon端口可以同时支持多个属性。例如,一个Avalon从端口可能支持具有可变等待周期的流水线传输。 一些属性不能和其它属性共同使用,这些限制在传输属性的讨论中会说明。 一个主从端口对中的主端口和从端口可以有不同的传输属性。Avalon交换架构同主/从端口通信时,使用该端口指定的属性,并且必要时要进行从主端口到从端口的属性转换
19、。,从端口传输,一、 从端口信号详述 对所有从端口传输都很重要的信号 1. address信号 2. readdata和writedata信号 3. chipselect、read和write信号 4. byteenable和writebyteenable 5. begintransfer信号,从端口传输,二、从端口读传输 1. 从端口基本读传输 基本的读传输是其它的Avalon读传输的参考,基本的读传输没有传输规范中的任何的传输属性。从端口基本读传输由Avalon交换架构发起,从Avalon从端口传输一个数据单元(外设的数据端口全宽度)到Avalon交换架构。传输在一个时钟周期内完成。,从端
20、口传输,从端口基本读传输只适用于异步从外设,如异步存储器。只要外设被选中和/或地址发生了变化,外设就必须立刻返回数据。readdata信号线必须在下一个时钟上升沿之前保持稳定。 同步外设要锁存它们的输入和输出信号,必须要用到等待周期和/或流水线属性。片上的Avalon外设通常使用同步的、锁存的接口,该接口至少需要一个周期用来捕获地址。,从端口基本读传输,从端口传输,2. 等待周期 等待周期延长读传输的时间,允许从端口使用一个或多个的时钟周期来捕获地址和/或返回有效的readdata,但是等待周期会影响从端口的吞吐量。例如,一个持续的序列采用0等待周期的传输,可以达到最大的吞吐量一个周期一次传输
21、。如果传输采用具有一个等待周期的传输,最大的吞吐量为每两个周期一次传输。 从端口读传输有两种类型的等待周期:固定的和可变的。,从端口传输,具有一个等待周期的从端口读传输时序图,从端口传输,具有可变等待周期的从端口读传输,(A)第一个周期在clk的上升沿开始。 (B) Avalon交换架构发出地址和read信号。 (C) Avalon交换架构对地址进行译码,然后驱动chipselect信号。 (D) 从端口在下一个clk的上升沿置waitrequest信号有效。 (E) Avalon交换架构在clk的上升沿采样waitrequest, waitrequest是有效的,所以在此时钟沿 readda
22、ta没被捕获。 (F) waitrequest可能会持续一个不确定数目的周期。 (G) 从端口提供有效的readdata。 (H) 从端口置waitrequest无效。 (I) Avalon交换架构在下一个clk的上升沿捕获readdata,读传输就此结束。下一个周期在此开始,另一次传输也可由此开始。,从端口传输,3.建立时间 一些外设,如大多数常用的片外异步外设,在发出read信号之前,需要地址和chipselect信号先稳定一段时间。具有建立时间的Avalon传输可以满足上述的建立时间的要求。 具有建立时间的读传输所使用的信号和基本读传输使用的信号相同,不同点只是在信号的时序。,具有建立时
23、间和固定等待周期(一个周期)的从端口读传输,(A) 传输在clk的上升沿开始,第一个(也是唯一的)建立时间的周期在此开始。 (B) Avalon交换架构发出有效的address和byteenable,但保持read无效。 (C) Avalon交换架构对地址译码,并发出chipselect信号。 (D)建立时间的周期在 clk的上升沿结束,等待周期开始。 (E) Avalon交换架构置read有效。 (F) clk的上升沿标志等待周期的结束。 (G) 从端口提供有效的readdata。 (H) Avalon交换架构在clk的上升沿捕获readdata,传输就此结束。下一个周期开始,另一次传输也可
24、以开始。,从端口传输,三、从端口写传输 1. 从端口基本写传输 从端口基本写传输是其它从端口写传输的基础,它不含Avalon接口规范允许的任何传输属性。从端口基本写传输由Avalon交换架构发起,并由Avalon交换架构到从端口传输一个数据单元,传输需要一个时钟周期。,如果writedata的宽度大于一个字节,使用byteenable来实现对writedata内的特定字节进行写操作。如果从端口没有使用byteenable,则所有的字节段在传输期间都是使能的。,从端口传输,(A)第一个周期在clk的上升沿开始。 (B) Avalon交换架构发出有效的writedata、address、bytee
25、nable和write信号。 (C) Avalon交换架构对地址译码,并且发送chipselect给从端口。 (D)从端口在clk的上升沿捕获writedata、address、 write、byteenable和chipselect。写传输结束。下一个周期开始,另一次传输也可以开始。,从端口基本写传输,从端口传输,2. 等待周期 从端口使用等待周期来延长传输,从端口使用一个或多个时钟周期来捕获address和writedata。从端口写传输使用等待周期会影响从端口写传输的吞吐量。,(A) 第一个周期在clk的上升沿开始。 (B) 来自Avalon交换架构的writedata、address、
26、byteenable和write有效。. (C) Avalon交换架构对地址译码,发出chipselect。 (D) 第一个等待周期在clk的上升沿结束,所有来自Avalon交换架构的信号保持不变。 (E) 从端口在clk的上升沿捕获writedata、address、byteenable、write和chipselect ,写传输结束。下一个周期开始,另一次传输也可开始。,具有固定等待周期的从端口写传输,3.具有建立时间和保持时间的写传输 建立和保持时间用于需要address、byteenable、writedata、和chipselect信号在write脉冲之前和/或之后保持几个周期稳定的
27、片外外设。具有建立和保持时间的写传输所使用的信号与基本写传输的信号相同。不同点只是信号的时序。,具有建立和保持时间的从端口写传输,(A) 第一个周期在clk的上升沿开始。 (B) Avalon交换架构发出address、byteenable和writedata信号,但保持write信号无效。 (C) Avalon交换架构对地址译码,然后发出chipselect信号。 (D) clk的上升沿标志建立时间的周期结束。 (E) Avalon交换架构置write有效。 (F) Avalon交换架构在下一个clk的上升沿之后置write无效,保持周期开始,address、byteenable、write
28、data和chipselect保持不变。 (G) Avalon交换架构在下一个clk的上升沿置address、byteenable、writedata和chipselect无效,写传输结束。,主端口传输,一、主端口传输 对所有主端口传输都很重要的信号: waitrequest信号 address信号 readdata和writedata信号 read和write信号 byteenable信号,主端口传输,二、主端口基本读传输 主端口基本读传输是所有带传输属性Avalon主端口读传输的参考。基本读传输不具有Avalon接口规范允许的任何传输属性。 基本读传输由主外设发起,从Avalon交换架构传
29、输一个单位的数据到主端口。在最快的情况下,可以在一个周期内完成。如果readdata没准备好,Avalon交换架构发送waitrequest,暂停主端口,直到它可以发送数据。当Avalon交换架构使waitrequest失效,主端口捕获数据之后,传输结束。,主端口传输,(A) 第一个周期在clk的上升沿开始。 (B) 主端口发出有效的address、byteenable和read信号。 (C) 在第一个周期内从Avalon交换架构返回有效的readdata (D) 主端口在下一个clk的上升沿捕获readdata,并且置它的所有输出无效。主端口的读传输结束。另一次传输可在下一个周期开始。,主端
30、口基本读传输,主端口传输,(A) 第一个周期在clk的上升沿开始。 (B) 主端口发出有效的address、byteenable和read信号。 (C) Avalon交换架构在下一个clk的上升沿置waitrequest有效。 (D) 主端口在clk的上升沿接受waitrequest。这个周期称为等待周期。 (E) 只要waitrequest有效,主端口保持其所有输出不变。 (F) Avalon交换架构返回有效的readdata。 (G) Avalon交换架构置waitrequest无效。 (H) 主端口在下一个clk的上升沿捕获readdata,并且置其所有的输出无效。读传输结束。另一次传输
31、可以在下一个周期开始。,具有等待周期的主端口读传输,主端口传输,三、主端口基本写传输 主端口基本写传输是其它带有传输属性的Avalon主端口写传输的参考。基本写传输不具有Avalon接口规范允许的任何传输属性。,主端口基本写传输由主外设发起。,从主端口传输一个单位的数据给Avalon交换架构。,如果Avalon交换架构不能马上捕获数据,就发送waitrequest信号,将主端口暂停。在最好的情况下,Avalon交换架构不发送waitrequest,传输可以在一个周期内完成。,在最好的情况下,Avalon交换架构不发送waitrequest,传输可以在一个周期内完成。,如果Avalon交换架构置
32、waitrequest N 个周期有效,传输总共要N+ 1周期完成。Avalon交换架构对主端口不支持超时特性。只要waitrequest有效,主端口就被暂停。,主端口传输,(A) 写传输在clk的上升沿开始。 (B) 主端口发出有效的address、byteenable、writedata和write信号。 (C) 在clk的上升沿waitrequest是无效的,所以写传输结束。另一次传输可以在下一个周期接着开始。,主端口基本写传输,主端口传输,具有等待周期的主端口写传输,(A) 第一个周期在clk的上升沿开始。 (B) 主端口发出有效的address、writedata和write信号。
33、(C) waitrequest在clk的上升沿被置为有效,所以该周期变成第一个等待周期。主端口保持所有的输出不变。 (D) waitrequest在clk的上升沿再次被置为有效,所以该周期成为第二个等待周期。主端口保持所有的输出不变。 (E) Avalon交换架构置waitrequest无效。 (F) 在clk的上升沿waitrequest 是无效的,所以主端口置所有的输出无效,写传输结束。另一个读或写传输可以在下一个周期开始。,主端口传输,四、 等待周期,建立时间和保持时间属性 等待周期属性 根据规范,所有的Avalon主端口使用waitrequest信号来接受来自Avalon交换架构的不确
34、定的等待周期。在这种情况下,实际上所有的Avalon主端口被动地支持可变的等待周期,即主端口不支持固定的等待周期。 建立时间和保持时间属性 根据规范,Avalon主端口不使用建立或保持时间属性。如果一个目标从外设有建立和/或保持时间属性,Avalon交换架构管理该主从端口对的信号时序的转换。,4.6流水线传输属性,Avalon流水线读传输可以增加Avalon同步从外设的带宽。 使用流水线读传输,一个端口可以在上一次传输的readdata返回之前,开始新的传输。所以,在第一次访问从外设时需要好几个周期才能返回数据,但是此后每个周期都能返回数据。 只有流水线的读传输,而没有流水线的写传输,因为Av
35、alon写传输不需要由从端口返回确认信号。,4.6流水线传输属性,流水线读传输的持续时间可以分成两个不同的阶段:地址阶段和数据阶段。 地址阶段:主端口提供地址来发起传输; 数据阶段:从端口发送数据来完成传输。 一次新传输(或多次传输)的地址阶段可以在前一次的数据阶段结束之前开始。,地址阶段的持续时间(即捕获地址所需要的时钟周期数)决定了端口的吞吐量:长的地址阶段会减少吞吐量。,数据阶段的持续时间,只反映了第一个数据单元需要多长时间才能返回。,4.6流水线传输属性,等待周期等待周期决定地址阶段的长短,并且限制了端口的最大吞吐量。例如如果一个从端口需要一个等待周期来响应传输请求,则端口每一次传输至
36、少需要两个周期。而没有等待周期的Avalon从外设每个时钟周期都可接受一次新传输。 流水线延迟流水线延迟决定了数据阶段的长短,但和地址阶段无关。例如,具有流水线传输的从端口(没有等待周期)可以支持一个周期一次传输,尽管可能需要几个周期的延迟才返回第一个数据单元。流水线延迟可以是固定的或可变的。,这是等待周期和流水线延迟影响时序关键区别。,4.6流水线传输属性,4.6.1 具有固定延迟的从端口流水线读传输 Avalon流水线从端口从Avalon交换架构捕获地址和控制信号之后,Avalon流水线从端口需要一个或多个周期来产生数据。 但是,在从端口捕获了地址之后,即使前一次传输还没有返回有效的rea
37、ddata, Avalon交换架构可以立即发起新的传输。 因此,流水线从端口在任何时刻都可能有多个挂起的传输。,4.6流水线传输属性,具有固定延迟的从端口流水线传输使用的信号与从端口基本读传输使用的信号相同,不同之处在于,地址和数据阶段的信号时序。 除了readdata信号,地址阶段的信号的时序和顺序同基本读传输相同。 在地址阶段,从端口可以使用等待周期。地址阶段在等待周期(如果有)结束后的下一个clk上升沿结束。 从端口必须在地址阶段的最后一个clk上升沿之前捕获地址。从端口在地址阶段不发出这次传输的readdata。在地址阶段结束后,Avalon交换架构可以发起一次新的传输。,4.6流水线
38、传输属性,在数据阶段,外设花费多个时钟周期来处理地址,然后经过一个固定的延迟后产生readdata。 如果外设具有N个周期的读延迟,从端口必须在地址阶段结束后的第N个clk上升沿提供有效的readdata。数据阶段及整个传输在地址阶段结束后N个周期的clk上升沿结束。 例如,如果从端口有1个周期的读延迟,则它会在捕获地址之后的下一个clk上升沿提供有效的readdata。,具有固定延迟(两个周期)的从端口流水线读传输,(A) Avalon交换架构通过提供新传输的地址阶段的chipselect、read和address信号,发起一次读传输。 (B) 从端口已经置waitrequest有效,所以下
39、一个周期称为等待周期。Avalon交换架构保持chipselect、read和 address不变。 (C) 从端口在clk的上升沿置waitrequest无效,并且捕获address。地址阶段结束,数据阶段开始。 (D) 第一个延迟周期在clk的上升沿结束。 (E) 第二个延迟周期在clk的上升沿结束。从端口提供有效的readdata,传输结束。这个clk的上升沿也标志着新的读传输的开始。 (F) Avalon交换架构发出新传输的address、read和chipselect信号。 (G) Avalon交换架构在下一个周期内,在前一次的传输的数据返回之前发起另一次的读传输。 (H) Aval
40、on交换架构在两个延迟周期之后捕获readdata。 (I) Avalon交换架构在两个延迟周期之后捕获readdata 。,4.6流水线传输属性,4.6.2 具有可变延迟的从端口流水线读传输 具有可变延迟的流水线读传输允许从端口经过一个可变的数个周期延迟之后返回有效的readdata。 具有可变延迟的从端口使用额外的信号readdatavalid来表示从端口何时向Avalon交换架构提供有效的数据。 使用了一位的输出信号readdatavalid即意味着该端口为具有可变延迟的流水线从端口。,4.6流水线传输属性,4.6.2 具有可变延迟的从端口流水线读传输 可变延迟的流水线从端口读传输的信号
41、时序在地址阶段同具有固定延迟的流水线读传输是一样的。 在地址阶段之后,具有可变延迟的流水线从端口需要任意的周期数来返回有效的readdata。当外设准备好返回数据,它就同时发送readdata和readdatavalid 并且保持信号不变直到下一个clk的上升沿。Avalon交换架构在这个clk的上升沿捕获readdata和readdatavalid,数据阶段(和整个传输)结束。,4.6流水线传输属性,从端口必须按照它接受地址的相同顺序返回readdata。具有可变延迟的流水线从端口必须在地址阶段结束之后至少一个周期以后才能返回readdata。 具有可变延迟的流水线从端口通常使用可变的等待周
42、期。因为,流水线从端口只能处理有限数目的挂起传输。从端口通过发送waitrequest信号来暂停新的传输,直到挂起的传输数目减少为止。,(H) 由于从端口置readdatavalid有效,Avalon交换架构在clk的上升沿捕获data3。(注意data3需要2个延迟周期才能返回)。Avalon交换架构发出address、read,和chipselect,外设捕获address5。 (I) 因为从端口置readdatavalid有效,Avalon交换架构在clk的上升沿捕获data4 。Avalon交换架构置chipselect无效,结束传输的队列。 (J) 因为从端口使readdataval
43、id无效,Avalon交换架构在此clk的上升沿不捕获数据。. (K) Avalon交换架构在clk的上升沿捕获data5 ,完成最后的挂起的读传输的数据阶段。,(E) 外设驱动有效的readdata (data1)并置readdatavalid有效,完成第一个挂起的传输的数据阶段。外设置waitrequest无效,因为它能在下一个clk的上升沿接受另一次挂起的传输。 (F) Avalon交换架构在clk的上升沿捕获data1。从外设在clk的上升沿捕获address3。 (G) 因为从端口置readdatavalid有效,Avalon交换架构在clk的上升沿捕获data2。(注意data1和
44、data2都需要4个延迟周期才能返回)。Avalon交换架构发出address、read和chipselect,外设捕获address4。,(A) Avalon交换架构发出address、read和chipselect信号,发起一个读传输,假设这时没有挂起的传输。 (B) 从端口没置waitrequest有效,所以在此clk的上升沿捕获address1。 (C) 从外设没发出waitrequest,所以在此clk的上升沿捕获address2。 (D) 从端口已达到允许挂起的传输数的最大值,并且没有有效的数据可供返回。从外设在下一个clk的上升沿之前置waitrequest有效,从而使Avalo
45、n交换架构不能继续发出address、read和chipselect信号。从外设置waitrequest两个周期有效,直到它能返回第一个挂起的传输的数据。,4.6流水线传输属性,即使从外设正在处理一个或多个的挂起的读传输,Avalon交换架构也可以发起从端口的写传输。如果从外设正在处理挂起的读传输而不能处理写传输,从端口必须发出waitrequest,将写操作暂停,直到挂起的读传输完成。 带有可变延迟的流水线传输属性的从端口的限制: (1)具有可变延迟的流水线从端口不能使用固定等待周期的属性,只支持可变等待周期。 (2)流水线从端口不能使用建立和保持时间的属性。 (3)具有可变延迟的流水线从端
46、口不能使用三态属性。,4.6流水线传输属性,4.6.3 主端口流水线传输 流水线主外设可以在它接收到前一次传输的有效数据之前发起一次新的读传输。使用1位的输入信号readdatavalid来定义一个流水线主端口。 Avalon交换架构发出readdatavalid信号给主端口来指示readdata信号正在提供有效的数据。 在流水线传输方式下,在地址阶段,除了readdata信号之外,信号时序和顺序与Avalon主端口基本读传输是一样的。 1、主端口必须提供read、address和byteenable,并且在waitrequest信号有效时,保持这些信号不变。 2、地址阶段在waitreque
47、st失效的第一个clk的上升沿结束。 3、主端口在地址阶段结束之后,能够马上发起另一次读传输或者写传输。,4.6流水线传输属性,Avalon交换架构始终按照主端口请求的顺序来返回有效的数据。 在地址阶段结束后,当Avalon交换架构发出readdatavalid信号时,有效数据返回。而对于Avalon交换架构何时发出readdatavalid信号没有时间的限制。 流水线主端口在任意给定的时刻可以有任意数目的挂起的读传输。外设支持的挂起读传输的最大数目由外设的设计者决定。,4.6流水线传输属性,流水线主端口能够有选择地使用flush信号,当主外设决定它不再需要当前挂起的读传输的数据的情况下,可以
48、使用这个信号。,4.6流水线传输属性,(A) 主端口提供新传输地址阶段的address和read信号发起一次读传输 (B) Avalon交换架构置waitrequest有效,所以主端口等待,并再保持address和read一个周期。 (C) Avalon交换架构置waitrequest无效,并在clk的上升沿捕获address。此时readdatavalid无效,所以主端口不捕获readdata。 (D) Avalon交换架构在clk的上升沿捕获一个新的address。readdatavalid 此时是无效的,所以主端口不捕获readdata。 (E) Avalon交换架构在clk的上升沿捕获
49、address (使得挂起的传输数目达到3个)。readdatavalid 置为有效,主端口捕获有效的readdata (data 1)。,(F) readdatavalid无效,主端口不捕获readdata。 (G) readdatavalid无效,主端口不捕获readdata。 (H) readdatavalid有效,主端口捕获有效的readdata (data 2)。 (I) 主端口提供新传输的address和read信号。 (J) readdatavalid无效,主端口不捕获readdata。主端口发出flush信号,导致Avalon交换架构清空所有的挂起的传输 (address 3)
50、。Avalon交换架构捕获新的address。 (K) readdatavalid有效, 主端口捕获有效的readdata (data 4)。此时没有挂起的传输。,4.7 流控制,Avalon流控制信号给从端口提供了调节来自主端口的传输的机制,从而达到从端口指示有效数据准备好了或者准备好接收数据了,传输才开始。 在从端口方面,流控制信号使从端口在传输开始前先声明其已准备就绪。 在主端口方面,具有流控制信号的主端口同意信任从端口的流控制信号, 并等待直到从端口准备好处理传输。,4.7 流控制,流控制信号的作用 (1)简化逻辑设计,因为主端口不用重复地查询从端口以确定从端口是否准备好传输。 (2)
51、减少带宽开销,因为从端口传输只在从端口准备就绪才开始。 (3)允许从端口控制来自或去往非智能主端口的数据流,这些外设无条件地和连续不断地发起传输。,4.7 流控制,流控制信号的使用前提 为了使流控制起作用,主从端口对的两个端口都必须使用流控制。如果其中之一或全都不使用流控制,则传输的处理同两个端口都没有流控制时是一样的。 例如,如果主端口不使用流控制,则从端口控制信号就不能延迟主端口的传输。 流控制信号的限制 限制:流控制信号不能用于Avalon三态端口。,4.7 流控制,4.7.1 具有流控制的从端口传输 要使用流控制,从端口使用下面的一个或多个信号:readyfordata、dataava
52、ilable和endofpacket。 具有流控制的从端口就定义为使用一个或多个上述信号的从端口。 流控制属性不会影响其它信号的顺序和时序。,4.7 流控制,4.7.1.1流控制信号 1. readyfordata和dataavailable信号 从端口通过发送readyfordata来表示它已经准备好接受写传输,readyfordata无效表示执行写传输将会引起数据上溢出。 从端口发送dataavailable来表示其已经准备好提供数据给读传输,dataavailable无效表示读传输会使数据下溢出。,4.7 流控制,在使用流控制的主从端口对中,在主端口发起一次传输之后,只有当readyfo
53、rdata或dataavailable信号指示从端口已经准备好进行这次传输时,Avalon交换架构才和目的从端口发起传输。当从端口没有准备好时,Avalon交换架构强迫主端口等待。 上两个信号中的任意一个无效时,都不会阻止Avalon交换架构发起来自不使用流控制的主端口的传输。因为这个原因,从端口必须总是准备好开始一次传输,不管readyfordata和dataavailable的状态如何。,4.7 流控制,2. endofpacket信号 在任何传输中,有流控制的从端口能够发出endofpacket信号,该信号经由Avalon交换架构到达主端口。 endofpacket信号的解释是由外设设计
54、决定的,外设设计必须说明主端口应该如何响应endofpacket信号。 例如,endofpacket信号可被用作包的描述器,用来在一个长的数据流中标记包的开始和结束位置。 另外,endofpacket可以指示主端口应该停止当前传输的序列。,4.7 流控制,4.7.1.2 具有流控制的从端口读传输 具有流控制的从端口读传输使用dataavailable和 endofpacket信号。 从端口可以在任何时刻发出dataavailable信号。当dataavailable有效时,来自具有流控制的主端口的一次新传输可以在下一个clk的上升沿开始。 从端口只可以在读传输结束的时候,置dataavaila
55、ble无效。 如果从端口使用endofpacket信号,它必须保证在其发出有效的readdata的同一个时钟上升沿置endofpacket信号有效。,4.7 流控制,本例中,假设当从端口置dataavailable有效的时候,具有流控制的主端口发起了一个传输队列,并且主端口接下来继续发起读传输。在传输队列的某个位置,从端口置dataavailable无效,使得Avalon交换架构停止发起传输。稍后,从端口再次置dataavailable有效,Avalon交换架构继续执行从端口的读传输队列。,具有流控制的从端口读传输,4.7 流控制,(A) 传输在clk的上升沿开始。 (B) Avalon交换架
56、构发出address和read信号。 (C) Avalon交换架构对地址译码,并发出chipselect信号。 (D) 从端口发出有效的readdata。Avalon交换架构在clk的上升沿捕获readdata 。 (E) 对于chipselect和read有效的每一个周期,从端口产生有效的readdata。 (本例中,address保持不变,但不是所有的设计都是如此。),具有流控制的从端口读传输,4.7 流控制,(F) 从端口发出endofpacket 和有效的readdata。 (本例中,从端口在一个周期后置endofpacket无效,但不是所有的设计都是如此。) 从端口也置dataava
57、ilable无效,强迫Avalon交换架构延迟接下来的来自主端口的具有流控制的读传输。 (G) Avalon交换架构置address、read和chipselect无效以响应dataavailable。 (H) 一段时间之后,从端口置dataavailable有效。,具有流控制的从端口读传输,4.7 流控制,(I) 为了响应dataavailable,并且主端口仍在等待传输数据,Avalon交换架构开始一次新传输,重新发出address、read和chipselect。 (J) Avalon交换架构在clk的上升沿捕获data4。 (K) 从端口在chipselect和read有效的每一个周期
58、发出有效的readdata。 (L) Avalon交换架构置read和chipselect无效,结束传输队列。 (M) 本例中,dataavailable保持有效,意味着Avalon交换架构在任何时候都可以开始另一次读传输。,具有流控制的从端口读传输,4.7 流控制,4.7.1.3. 具有流控制的从端口写传输 具有流控制的从端口写传输使用readyfordata和endofpacket信号。 从端口可以在任何时刻,将readyfordata由低电平置为高电平有效。当readyfordata有效时, 在下一个clk的上升沿,来自具有流控制的主端口的传输开始。在写传输结束时,从端口必须将ready
59、fordata由高电平置为低电平, 这样的话,该信号能立即对随后的传输起作用。 如果从端口使用endofpacket信号,它必须保证在其捕获writedata的同一个时钟上升沿endofpacket有效。,4.7 流控制,本例中,假设当从端口置readyfordata有效时,具有流控制的主端口已经发起了一个传输队列,并且接下来主端口继续发起写传输。 在传输队列的某处,从端口置readyfordata无效,导致Avalon交换架构停止发起来自主端口的传输。稍后,从端口再次置readyfordata有效,Avalon交换架构继续从端口的写传输队列。本例中,数据写入一个固定的从端口地址,这是I/O外设常见情况。,具有流控制的从端口写传输,4.7 流控制,(A) 在clk的上升
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿科脓毒症及脓毒性休克考核试题及答案解析
- AutoC绘图建筑项目 6
- 医院核心制度规范
- 医院药房规范制度
- 华为办公室卫生环境制度
- 单位法治创建工作制度
- 卫健局安全生产举报制度
- 卫生监督所工作制度汇编
- 卫生院医务室制度
- 卫生院领导安全责任制度
- 收受回扣的管理制度包括(3篇)
- 2026四川宜宾市天原集团招聘77人笔试历年典型考点题库附带答案详解
- 2025功效护肤趋势报告
- 2026年燃气供应公司气源质量监测管理制度
- 2025年汽车高级维修工汽车维修工高级题库
- 风电场项目(土建、电气、机务)强制性条文汇编
- 儿童中医药科普
- JJG 694-2025原子吸收分光光度计检定规程
- 厂区禁烟活动方案
- 2025年中考语文三模试卷
- 电力工程施工进度计划及协调措施
评论
0/150
提交评论