《avalon总线规范》由会员分享,可在线阅读,更多相关《avalon总线规范(89页珍藏版)》请在金锄头文库上搜索。
1、第4章 Avalon总线规范,4.1 Avalon总线简介 Avalon总线由ALTERA公司提出,用于在基于FPGA的片上系统中连接片内处理器和片内外设的总线结构。 连接到Avalon总线的设备分为主从设备,并各有其工作模式。 简单性,易于理解、易于使用。 占用资源少,减少对FPGA片内资源的占用。 高性能,Avalon总线可以在每一个总线时钟周期完成一次数据传输。 专用的地址总线、数据总线和控制总线:这样Avalon总线模块和片上逻辑之间的接口的得以简化,Avalon外设不需要识别数据和地址周期。,continue 支持高达1024位的数据宽度,支持不是2的偶数幂的数据宽度。 支持同步操作
2、,所有Avalon外设的接口与Avalon交换架构的时钟同步,不需要复杂的握手/应答机制。简化了Avalon接口的时序行为,而且便于集成高速外设。 支持动态地址对齐,可以处理具有不同数据宽度的外设间的数据传输,Avalon总线的自动地址对齐功能将自动解决数据宽度不匹配的问题,不需要设计者的干预。 Avalon总线规范是一个开放的标准,用户可以在未经授权的情况下使用Avalon总线接口来自定义外设。,Avalon总线结构采用交换式的总线结构。,SOPC Builder利用最少的FPGA资源,产生新的最佳Avalon交换架构。,4.2 Avalon总线基本概念,4.2.1 Avalon外设和交换架
3、构 一个基于Avalon接口的系统会包含很多功能模块,这些功能模块就是Avalon存储器映射外设,通常简称Avalon外设。所谓存储器映射外设是指外设和存储器使用相同的总线来寻址,并且CPU使用访问存储器的指令也用来访问I/O设备。为了能够使用I/O设备,CPU的地址空间必须为I/O设备保留地址。,Avalon外设包括存储器,处理器、UART、PIO、定时器和总线桥等。还可以有用户自定义的Avalon外设,用户自定义的外设能称之为Avalon外设,要有连接到Avalon结构的Avalon信号。 Avalon外设分为主外设和从外设,能够在Avalon总线上发起总线传输的外设是主外设,从外设只能响
4、应Avalon总线传输,而不能发起总线传输。主外设至少拥有一个连接在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端口和
7、Avalon交换架构之间的数据单元的读/写操作。Avalon传输一次可以传输高达1024位的数据,需要一个或多个时钟周期来完成。在一次传输完成之后,Avalon端口在下一个时钟周期可以进行下一次的传输。 Avalon的传输分成两个基本的类别:主传输和从传输。Avalon主端口发起对交换架构的主传输。Avalon从端口响应来自交换架构的传输请求。传输是和端口相关的:主端口只能执行主传输,从端口只能执行从传输。,4.2.5 主从端口对,主从端口对是指在数据传输过程中,通过Avalon交换架构相连接起来的主端口和从端口。 在传输过程中,主端口的控制和数据信号通过Avalon交换架构和从端口相交互。,
8、4.2.6 周期,周期是时钟的基本单位,定义为特定端口的时钟信号的一个上升沿到下一个上升沿之间的时间。完成一次传输最少要一个时钟周期。,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交
11、换架构对地址进行译码,然后驱动chipselect信号。 (D) 从端口在下一个clk的上升沿置waitrequest信号有效。 (E) Avalon交换架构在clk的上升沿采样waitrequest, waitrequest是有效的,所以在此时钟沿 readdata没被捕获。 (F) waitrequest可能会持续一个不确定数目的周期。 (G) 从端口提供有效的readdata。 (H) 从端口置waitrequest无效。 (I) Avalon交换架构在下一个clk的上升沿捕获readdata,读传输就此结束。下一个周期在此开始,另一次传输也可由此开始。,4.4.3 从端口写传输 从端口
12、基本写传输,(A)第一个周期在clk的上升沿开始。 (B) Avalon交换架构发出有效的writedata、address、byteenable和write信号。 (C) Avalon交换架构对地址译码,并且发送chipselect给从端口。 (D)从端口在clk的上升沿捕获writedata、address、 write、byteenable和chipselect。写传输结束。下一个周期开始,另一次传输也可以开始。,具有固定等待周期的从端口写传输,(A) 第一个周期在clk的上升沿开始。 (B) 来自Avalon交换架构的writedata、address、byteenable和write
13、有效。. (C) Avalon交换架构对地址译码,发出chipselect。 (D) 第一个等待周期在clk的上升沿结束,所有来自Avalon交换架构的信号保持不变。 (E) 从端口在clk的上升沿或上升沿之前捕获writedata、address、byteenable、write和chipselect ,写传输结束。下一个周期开始,另一次传输也可开始。,具有可变等待周期的从端口写传输,(A) 第一个周期在clk的上升沿开始。 (B) 来自Avalon交换架构的address、writedata、byteenable和write 信号有效。 (C) Avalon交换架构对地址译码,然后发出ch
14、ipselect。 (D) 外设在下一个clk的上升沿之前置waitrequest有效。 (E) Avalon交换架构在clk的上升沿采样waitrequest,如果waitrequest有效,周期成为等待周期,address、writedata、byteenable、write和chipselect保持不变。 (F) waitrequest可能保持任意多个周期有效。 (G) 从端口捕获数据。 (H) 从端口置waitrequest无效。 (I) 写传输在下一个clk的上升沿结束。下一个周期可进行另一次的传输。,4.5 主端口传输 所有主端口传输都很重要的信号 waitrequest信号 ad
15、dress信号 readdata和writedata信号 read和write信号 byteenable信号,主端口基本读传输,(A) 第一个周期在clk的上升沿开始。 (B) 主端口发出有效的address、byteenable和read信号。 (C) 在第一个周期内从Avalon交换架构返回有效的readdata (D) 主端口在下一个clk的上升沿捕获readdata,并且置它的所有输出无效。主端口的读传输结束。另一次传输可在下一个周期开始。,(A) 第一个周期在clk的上升沿开始。 (B) 主端口发出有效的address、byteenable和read信号。 (C) Avalon交换架
16、构在下一个clk的上升沿置waitrequest有效。 (D) 主端口在clk的上升沿接受waitrequest。这个周期称为等待周期。 (E) 只要waitrequest有效,主端口保持其所有输出不变。 (F) Avalon交换架构返回有效的readdata。 (G) Avalon交换架构置waitrequest无效。 (H) 主端口在下一个clk的上升沿捕获readdata,并且置其所有的输出无效。读传输结束。另一次传输可以在下一个周期开始。,具有等待周期的主端口读传输,(A) 写传输在clk的上升沿开始。 (B) 主端口发出有效的address、byteenable、writedata和write信号。 (C) 在clk的上升沿waitrequest是无效的,所以写传输结束。另一次传输可以在下一个周期接着开始。,主端口基本写传输,(A) 第一个周期在clk的上升沿开始。 (B) 主端口发出有效的address、writedata和write信号。 (C) waitrequest在clk的上升沿被置为有效,所以该周期变成第一个等待周期。主端口保持所有的输出不变。 (D) wait