Avalon总线规范_中文_第1页
Avalon总线规范_中文_第2页
Avalon总线规范_中文_第3页
Avalon总线规范_中文_第4页
Avalon总线规范_中文_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、Avalon总线规范参考手册(Avalon 从端口传输与流模式从端口传输部分)101 Inno vation DriveSan Jose, Ca 95134 Docume nt Versio n:2.3(408)554-7000 Docume nt Data:July 2003免责声明:本手册原自Altera公司发布的Avalon Bus Specification-Referenee Manual,一切权力由 Altera公司所有康草科技 WWW.21CONTROL.COM 第 2 页 共 2 页Avalon总线是一种将片上处理器和外设连接成片上可编程系统(SOPC)的一种简单总线结构。 A

2、valon总线是一种接口方式,它规定了主从设备之间的接口方式及其通信时序。Avalon 总线的设计目的在于: 简便:提供了简单易学的协议;优化总线逻辑的资源利用:节约了可编程器件( PLD)内部的逻辑单元(LE); 同步操作:将 PLD 上的其他用户逻辑很好的集成在一起,从而避免了复杂的时序分析;基本的Avalon总线事务可以在主、从设备之间传送一个字节,半字或字(8,16或32位)。当一次事务处理完成,总线可以迅速的在下一个时钟到来的时候在相同的主从设备之间或其他的主 从设备间开始新的事务。Avalon总线也支持一些高级功能,如"延迟型(latency-aware)外设”,&quo

3、t;流(streaming)外设”及多总线主设备。这些高级的功能使其允许在一个总线事务中进行外设间的多数据单 元的传输。Avalon 总线支持多个总线主设备。多主设备的结构为 SOPC 系统及高带宽外设提供了很大 程度上的稳定性。例如,一个主外设可以进行直接存储器访问(DMA ),而不需要处理器在数据传输路径上从外 设将数据读入存储器。Avalon 总线上,主设备和从设备之间的相互作用是基于一种被称为“从设备(slave-side)仲裁”的技术。从设备仲裁决定了当多主设备在同一时刻尝试连接同一个从设备的时候,哪个主设备获得从设备控制权。从设备仲裁具有两个优势:1仲裁细节内嵌于 Avalon 总

4、线内部。所以,主设备和从设备的接口具有一致性,不考虑 总线上的主设备和从设备的数量。在每一个和 Avalon 总线相连接的主设备看来,它都是总线上唯一的主 设备。2 多个主设备可以同时完成总线事务,就像他们并不是在同一个总线周期连接到同一个 从设备一样。Avalon总线的设计是为了配合片上可编程系统(SOPC)的。它是一种由PLD内部逻辑和布线资源的主动片上总线结构。 Avalon 结构的一些原则如下:1 与外设的接口同步于 Avalon 时钟。所以,没有复杂的,异步的握手 /应答模式。 Avalon 总线(及整个系统)的性能可以通过使用标准的同步时序分析技术来实现测量。2 所有的信号都是有效

5、“低”和“高”,这样便于总线操作的立即转换。位于Avalon 内部的多路复用器(不是三态缓冲器)来决定哪个信号驱动哪个外设。3 地址,数据和控制信号使用分离的,专用端口,这样简化了外设的设计。外设不需要 对地址和数据的总线周期进行解码,也不需要在非使能的时候禁止输出。Avalon也包括很多的功能和约定来支持SOPC Builder软件自动产生的系统、总线和外设:高于 4G 的地址空间存储器和外设可以被映射为 32 位地址空间中的任何地址。 同步接口所有的 Avalon 信号都被 Avalon 总线时钟同步。这样简化了 Avalon 总线的相关 时序行为并便 于高速外设的集成。 分离的地址,数据

6、和控制线路分离的,专用的地址和数据路径更便于与用户逻辑相连接。 外设不需要 对数据和地址周期进行译码。内置地址译码器 Avalon总线自动的为所有外设产生片选( Chip Select)信号,大大的简 化了 Avalon 外 设的设计。多主设备总线结构-在Avalon总线上可以存在多个主外设。Avalon总线自动产生仲裁逻辑。基于向导式的配置方便使用的图形化向导引导用户完成对 Avalon 总线的配置(增加外 设,确定主 /从关系,定义存储器映射)。 Avalon 总线结构的自动产生是由用户在向导界面的输入来决定 的。动态总线容量-Avalon总线自动处理数据位宽不匹配的外设间传送数据的细节,

7、便于在多种不同宽度的 设备间接口。名 词 及 概 念许多与 SOPC 相关的名词和概念都完全是新的,他们和传统的片外总线结构有着本质的不 同。设计者需要懂得这点,以便可以理解 Avalon 总线规范。下面的名次及概念构成了一个理论化的 框架,而 Avalon总线规范就是建立在这一框架的基础上的。它们贯穿于整个文档。总线周期总线周期被定义为 Avalon 主时钟的相邻上升沿之间的时间间隔,它是总线时钟周期的基本 单元。总线信号时序参照于总线周期时钟。总线传输Avalon 总线的一次传输是对数据的一次读 /写操作,它可能持续一个或多个总线周期。Avalon 总线所支持的传输位宽为:一个字节( 8

8、位),半个字( 16 位)或一个字( 32 位)。 流传输 流传输为“流主设备”和“流从设备”之间的连续性数据传输建立一个开放式的管道。 具有延迟的读传输:某些同步外设在开始第一次传输的时候需要延迟一些时钟周期,但在之后的传输中便可以在每一个时钟周期都返回数据。 具有延迟的读传输增加了对这种同步设备的总线利用 率。带有延迟的读传输有些同步设备在刚刚开始传输的时候, 需要延迟几个时钟周期才能够完成其第一次读数据的 过程,而在之后的传输过程中就可以每一个周期返回一个数据。带有延迟的读传输可以增加康草科技WWW.21CONTROL.COM第3 页共4 页这些同步设备的带宽利用率。延迟性传输允许一个主

9、设备发出读请求后,转而执行另一个无关任务,过一段时间再接收数据。尽管之前的数据还没有接受到,这个无关的任务也可以发出另一次读请求。这有利于进行连续标准地址的存取的指令存取操作和DMA传输。这样,CPU和DMA主设备可以预读取其需要的数据,所以这使得同步存储器保持活跃状态,并 减少了平均存储延时。SOPC Builder 软件及Avalon总线的产生SOPC Builder是Altera开发的一款系统生成和集成工具。SOPC Builder所产生的片上电路系统模块包括Avalon总线、主外设和从外设。SOPC Builder提供了图形化的用户接口,应用这种接口可以实现向系统模块中添加主、从外设,

10、配置外设及配置Avalon总线将外设连接起来。这样,SOPC Builder自动的创建并连接 HDL模块,便可以实现用户 PLD设计的 每一个部分。系统模块Fitjure 1. Systeni 眈Mefated with User Lotfic into 彻 Alt eta PLDPCI_ctrlZ PCI_a<kir PCI_daia Signals to off-chip devicesPCIbricigeNiosCPUInstrOtl<hip memory一 npQ 乏 snCD-PIOCustomperipheralSignals< ,0> on-chip us

11、er logicUser logic area康草科技WWW.21CONTROL.COM第4 页共4 页Altera PLDCustomperipheral考虑在可编程芯片上实现用户自定义系统的结构,其中一部分是由SOPC Builder自动产生的。在Altera PLD上实现的完整系统如图1所示。出于本文的目的,系统模块的一些部分 是由SOPC Builder自动产生的。系统模块应该包括最少一个Avalon主外设和一个Avalon从外设,例如UART,定时器或者PIO。系统模块的外部逻辑可以包含用户Avalon外设及其他的和系统模块不相关的用户逻辑。系统模块必须与设计者的 PLD设计连接起来

12、。系统模块的端口依赖于其所包括的外设及在SOPCBuilder中进行的设置,并随其变化。这些端口包括直接到Avalon总线的接口及在系统模块中的用户自定义的和外设相连的接口。Avalon总线模块图1. Altera PLD上集成用户逻辑的系统模块Avalon总线模块是任何一个系统模块的“脊梁”。它是 SOPC设计中外设通信的主要路径。 Avalon总线模块是所有的控制、数据、地址信号及控制逻辑的总和,是其将外设连接起来 并构成了系统模块。Avalon总线模块实现了可配置的总线结构,其可以为设计者外设之间的相互连接而改变。Avalon总线模块是由SOPC Builder自动产生的,所以设计师并不

13、用亲自 将总线和外设连接起来。Avalon总线模块基本上不会作为分离的单元而单独使用,因为系统设计者总是利用SOPC Builder将处理器和其他Avalon外设自动地集成于一个系统模块之 中。设计者对Avalon总线的注意力通常限于与用户Avalon外设相连接地具体的端口上。Avalon总线模块(一条Avalon总线)是一个主动的逻辑单元,它取代了PCB板上的被动的,金属总线。(见图2)这就是说,Avalon总线模块的端口可以被看作是所有连接到被动 总线的引脚连接。本手册只是定义了包含于Avalon总线模块接口中的端口,逻辑行为和信号顺序,而没有提及物理总线的电气或物理的性能。Figure

14、2. Avalon Bus Module Block Diagram An Example SystemBus SicinaJ丄芒少M'< ir jI Cpnteol Sl»wDMA Controlleron Sus fdoduiESEaNtos CPUSDRAMDtf i<InI lit世”期Write UMfarRead UMltr图2 .Avalon总线模块框图一范例系统Avalon总线模块为连接到总线的Avalon外设提供了以下的服务:数据通道多路转换一一Avalon总线模块的多路复用器从被选择的从外设向相关主外设 传输数据。地址译码一一地址译码逻辑为每一

15、个外设提供片选信号。这样,单独的外设不需要对地 址线译码以产生片选信号,从而简化了外设的设计。产生等待状态(Wait-State)等待状态的产生拓展了一个或多个周期的总线传输,这有利于满足某些特殊的同步外设的需要。当从外设无法在一个时钟周期内应答的时候,产生的等待状态可以使主外设进入等待状态。在读使能及写使能信号需要一定的建立时间/保持时间要求的时候也可以产生等待状态。图2 .Avalon总线模块框图一范例系统动态总线宽度一一动态总线宽度隐藏了窄带宽外设与较宽的Avalon总线(或者Avalon总线与更高带宽的外设)相接口的细节问题。 举例来说,一个32位的主设备从一个16位的存储器中读数据的

16、时候,动态总线宽度可以自动的对16位的存储器进行两次读操作,从而传输32位的数据。这便减少了主设备的逻辑及软件的复杂程度,因为主设备不需要关心外 设的物理特性。康草科技WWW.21CONTROL.COM第 6 页 共 6 页 中断优先级( Interrupt-Priority )分配当一个或者多个从外设产生中断的时候, Avalon 总线模块根据相应的中断请求号 (IRQ)来判定中断请求。 延迟传输( Latent Transfer )能力在主、从设备之间进行带有延迟传输的逻辑包含于Avalon总线模块的内部。 流式读写( Streaming Read and Write )能力在主、从设备之

17、间进行流传输使能的逻 辑包含于 Avalon 总线模块的内部。Avalon 外设连接于 Avalon 总线的 Avalon 外设是逻辑器件无论片上还是片外的它们进行着某 种系统级的任务,并通过 Avalon 总线与其他的系统部件相通信。 外设是模块化的系统部件, 依赖于系统的需要,可以在设计的时候增加或者移除。Avalon 外设可以是存储器、处理器,也可以是传统的外设器件,如 UART , PIO,定时器或总线桥。任何的用户逻辑都可以成为 Avalon 外设,只要它满足本文所述的提供与 Avalon 总线接口的地址、数据及控制信号接口。 连接于 Avalon 总线的外设将被分配专用的端口。 除

18、了连接于 Avalon 总线的地址、数据及控 制端口之外用户也可以自行定制端口。这些于用户逻辑相连接的信号扩展了系统模块的应 用。 Avalon 外设要么是主外设,要么是从外设。主外设可以于 Avalon 上开启总线传输,其 至少有一个连接于 Avalon 总线模块的主端口。主外设也可以有一个从端口其允许此设备接 受其他连接于 Avalon 总线的主设备开启的总线传输。而从设备只能响应 Avalon 总线传输, 而不能够开启总线传输。像存储器,UART这样的从设备,通常只有与Avalon总线模块相连 接的一个从端口。在SOPC环境中,区分以下Avalon总线主设备/从设备的外设类型是十 分重要

19、的。系统模块内部外设如果SOPC Builder在外设库中找到了一个外设,或者设计者指定了一个用户外设的设计文 件,SOPC Builder将自动的将此外设与Avalon总线模块相连接。这种外设是指系统模块 之内的外设,也就是被认为是系统模块的一个部分。与 Avalon 总线相连接的地址、数据及 控制端口是向用户隐藏的。外设中任何附加的非 Avalon 端口将作为系统模块的端口显示于 外。这些端口可能与物理管脚直接相连或者可能与片上的其他模块相连。系统模块外部外设Avalon 总线外设也可以存在于系统模块之外。设计者选择将模块置于系统模块 之外可能有以下几个原因: 外设在物理上位于 PLD 器

20、件之外 外设需要某些粘连逻辑( glue logic )使其与 Avalon 总线信号连接 在系统模块产生的时候,外设的设计还没有完成在这些情况下,相应的Avalon总线模块信号作为系统模块的端口现于外部(及指定的外设)。主端口( Master Port )主端口是主外设上用于开启Avalon总线传输的一系列端口的集合。 主端口于Avalon总线模 块直接相连。实际上,一个主外设可能有一个或多个主端口及一个从端口。这些主端口及从端口的相互依赖关系是由对外设进行设计时决定的。 但是,这些主、从端口上的单独的总线 传输应该总是遵循本文所述。本文中所提及的所有主设备传输都是指单独的主端口的 Aval

21、on 总线传输。从端口( Slave Port )从端口是指在位于某一外设上的,从另一外设主端口接受 Avalon 总线传输的一系列端口的 集合。从端口也直接与 Avalon 总线模块相连接。主外设也可以有一个从端口,通过这个从 端口可以使其接受 Avalon 总线上其他主设备的传输。本文所提及的所有从设备传输都是指 单独的从端口的 Avalon 总线传输。主-从端口对( Master-Slave Pair )“主从端口对”是指通过Avalon总线模块相连接的一个主端口和一个从端口构成的组合。 从结构上讲,这些主、从端口与 Avalon 总线模块上的相应端口相连接。主端口的控制及数 据信号可以

22、有效的通过 Avalon 总线模块与从端口相互作用。主、从端口之间的连接(这就 构成了主 -从端口对)是在 SOPC Builder 中所确定的。PTF 文件、 SOPC Builder 参数及开关Avalon总线及外设的配置可以利用基于向导的 SOPC Builder图形用户接口( GUI)来完成。 通过这个GUI,用户可以设定不同的参数和开关,然后据此产生系统的PTF文件。PTF文件是一个文本化的文 件,它定义了:定义Avalon总线模块结构、功能的参数 定义每个外设定义结构、功能的参数 每个外设的主、从角色 外设端口(如读使能、写使能、写数据等) 通往多主端口的从端口的仲裁机制然后,PT

23、F文件通过HDL产生器创建了系统模块的寄存器传输级(RTL)描述。更多的关于系统 PTF 文件的信息请查看“ SOPC Builder 数据文档” ( SOPC Builder DataSheet)和 “SOPC Builder PTF 文件参考手册 ”(SOPC Builder PTF File Referenee Manual )1.3 Avalon 总线传输Avalon 总线规范定义了主端口和从端口之间通过 Avalon 总线模块传输数据所需要的信号和 时序。构成 Avalon 总线模块和外设之间接口的信号随着传输模式的不同而不同。首先,主 传输与从传输的接口不同,使用主端口与从端口的信

24、号定义不同。此外,通过系统PTF 文件的设置,所需信号的确切类型与数量也是可变的。Avalon 总线规范提供了各种选项来剪裁总线信号和时序, 以满足不同类型外设的需要。 Avalon 总线基本传输模式在一个主从端口对之间每次只传送一个单元的数据。可以通过插 入等待周期来延长一次总线传输的时间, 以满足低速外设的需要。 流传输模式以及支持并发 多主端口传输的能力满足高带宽外设的需要。所有 Avalon 从传输的信号时序都源自从端口 的基本传输模式。同样,主端口的基本传输模式是所有 Avalon 主传输的基础。1.3.1 主端口接口与从端口接口当讨论 Avalon 总线传输时,必须注意讨论的是总线

25、的哪一边, 是主端口接口还是从端 口接口。由主端口输出的信号与输入到目标外设的从端口的对应信号可能会有较大的差别。从端口的信号活动总是主外设发起总线传输的结果。但是,实际的从端口输入信号并 非直接来自主端口。 Avalon 总线模块传递来自主端口的信号,并对信号进行裁剪,以满足 从外设的需要。由于以上原因,对 Avalon 总线传输的介绍将分为主传输类型和从传输类型两个部分。 大多数用户只关心从传输, 因为他们设计的用户自定义外设一般都是从外设。 边时,用户只 需考虑 Avalon 总线模块和用户自定义外设之间的信号。只有当用户创建主外设时才涉及到 主传输。1.3.2 A valon 总线时序

26、Avalon 总线是一个同步总线接口, 由一个 Avalon 总线主时钟定时,所有总线传输的信号 都与 Avalon 总线时钟同步。同步总线接口并不意味着所有的 Avalon 总线信号都是锁存的。 比如, Avalon 的 ehipseleet 信号便是由组合逻辑产生的,其输入是同步于 Avalon 总线时钟 的寄存器的输出。因此,外设不能使用 Avalon 信号的边沿,因为 Avalon 信号在达到稳定 前会变化多次人。就像所有同步设计一样, Avalon 总线外设只能在时钟上升沿对稳定的信 号作出响应,且必须在时钟上升沿输出稳定的信号。康草科技WWW.21CONTROL.COM第15 页共

27、11 页Aval on总线模块也可以连接异步外设,例如片外异步存储器。但设计时需要考虑一些 额外因素:由于 Avalon总线模块的同步操作, Avalon信号只以Avalon总线时钟周期为间 隔变化。此外,如果异步外设的输出直接连接到Avalon总线模块,用户必须保证输出信号在时钟上升之前达到稳定。Avalon总线规范并不定义在时钟上升沿之间信号是如何变化的。信号的变化由Avalon总线时钟触发,信号只要在捕获时钟上升沿之前达到稳定就可以了,因此,总线规范中的 Avalon总线时序图中不会描绘精确的时间信息。类似地,Avalon总线没有规定固有的最高性能。系统模块在特定的器件上综合布线之后,用

28、户必须对系统模块进行标准的时序分析, 以确定Avalon总线传输达到的最高速度。1.3.3 Avalo n 总线信号由于Avalon总线是一个由 HDL文件综合而来,所以在连接 Avalon总线模块和 Avalon 外设时需要一些特别的考虑。对于传统的片外总线结构,所有外设都共享一组固定的预先设计的金属线路,而 Avalon总线与此不同:SOPC Builder必须准确地了解每个外设提供 了哪些Avalon端口,以便连接外设与Avalon总线模块。它还需要了解每个端口的名称和类型,这些信息定义在系统PTF文件中。Avalon总线规范不要求 Avalon外设必须包含哪些信号。它只定义了外设可以包

29、含的各种信号类型(例如地址数据.时钟等)。外设的每一个信号都要指定一个有效的Avalon信号类型,以确定该信号的作用,一个信号也可以是用户自定义的。在这种情况下,SOPCBuilder不将该端口与 Avalon总线模块连接。Avalon信号类型首先分为主端口信号和从端 口信号两类。因而,外设使用的信号类型生产生产首先由端口的主从角色决定。每个狡立的主端口或从端口使用的信号类型由外设的设计决定。例如,设计一个只有输出的PIO从外设只需要定义用于写的信号,而不需要定义用于读的信号。尽管中断请求输出是从端口允许 的信号类型,但也不是必须使用。Aval on总线规范不规定 Avalon外设信号的命名规

30、则。 不同信号类型的作用是预先定义 的,而信号的名称则是由外设决定。信号可以按照它的信号类型来命名,也可以遵照系统级的命名规范采用不同的名称。下面章节中讨论的Avalon总线传输时会涉及到一些Avalon信号,例如readdata信号和irq信号。在这里信号类型的名称作为信号名称,但外设信号的实际名称可以与此不同。作为一个例子,表1.1列举了部分Avalon从端口可用的信号类型。信号的方向是从外 设的角度定义的。例如时钟信号clk(方向为in )对于从外设来说是输入信号,而对于Avalon总线模块来说是输入信号。表1.1.部分Avalon从端口信号信号类型宽度力向必需Descripti onC

31、lk1inno系统模块和Avalon总线模块的全局时钟信号。所有总线传输 传输都同步于clk。只有异步从端口才能省略clk.address1 - 32inno来自Avalon总线模块的地址线Reset1inno从端口的读请求信号。当从端口不输出数据时不需要该信号。若使用了该信号,readdata信号也必须使用readdata1 - 32 outno读传输中输岀到Avalon总线的数据线。当从端口不输岀数据 时不需要该信号。若使用了该信号,read信号也必须使用write1inno从端口的写请求信号。当从端口不接收数据时不需要该信号。若使用了该信号,writedata信号也必须使用writeda

32、ta1 - 32 inno写传输中来自Avalon总线的数据线。当从端口不接收数据 时不需要该信号。若使用了该信号,write信号也必须使用irq1 outno中断请求。当从外设需要外设服务时可触发irq表1.1中例举的信号类型都是高电平有效。Aval on总线还提供了各个信号类型的反向形式。在PTF声明中,在信号类型名称加 ” _n”便可将对应的端口声明为低电平有效。这对 许多使用低电平有效的片外外设非常有用。1.3.4 并发多主端口的 Avalon总线需要考虑的事项Avalon总线允许多个端口连接到Avalon总线模块。而且实现 Avalon总线的并发多主端口功能时,Avalon总线模块不

33、需要额外的特殊信号。当多个主外设试图同时访问同一个 外设时,Avalon总线模块内部的从端口仲裁逻辑会被用来解决冲突。仲裁机制对于Avalon总线外设完全是透明的。因而,不论是否使用了仲裁,应用于主端口和从端口的Avalon总线传输协议是相同的。换句话说,从端口不会意识到有多个主外设同时请求总线传输。类似地,被仲裁逻辑强制等待的主外设也不会意识到另一个获胜的主外设的存在。主端口只是简单地发现它的等待请求信号被置为有效,并一直等待,直到目标外设准备好处理总线传输。将仲裁的细节隐藏在Avalon总线模块内部极大简化了外设的设计,任何Avalon外设在单主端口和多主端口结构中都可以使用。1.4 Av

34、alon从端口传输1.4.1从传输的Avalon总线信号表2列举了外设的从端口与 Avalon总线间接口的信号类型。信号的方向是以外设的角 度定义的。外设提供的信号由外设的设计和PTF文件中的信号定义决定,不需要提供全部的信号类型。表2 Avalon 从端口信号Signal TypeWidthDirectionRequiredDescripti onclk1 inno系统模块和 Avalon总线模块的全局时钟信号。所有总线传输都同步于clk。只有异步从端口才能省略 clkreset1 inno全局复位信号。如何使用取决于外设chipselect1 inyes从端口的片选信号。当chipsele

35、ct信号无效时, 从端口必须忽略所有的Avalon信号输入addressr 1 - 32inno来自Avalon总线模块的地址线begi ntransf er1 inno在每个新的Avalon总线传输的第一个总线周 期期间有效。如何使用该信号取决于外设bytee nable0, 2, 4inno字节使能信号,在访问宽度超过8位的存储器时选择特定的字节段,如何使用该信号取决于 外设ead1 inno从端口读请求信号。当从端口不输出数据时不需要该信号。若使用了该信号,readdata信号 也必须使用readdata1 - 32outno读传输中输岀到 Avalon总线的数据线。当从端 口不输岀数据

36、时不需要该信号。若使用了该信号,read信号也必须使用write1 inno从端口的写请求信号。当从端口不接收数据时 不需要该信号。若使用了该信号,writedata信号也必须使用writedata1 - 32inno写传输中来自Avalon总线的数据线。当从端口 不接收数据时不需要该信号。 若使用了该信号, write信号也必须使用eaddataval d1 outno渎取数据有效信号,仅用于具有可变读延迟 的从端口。用于标记从端口发出有效数据时 的时钟上升沿waitrequest1 outno等待请求信号,当从端口不能立即响应 时暂停Avalon总线模块eadyfordat a1 outn

37、o流传输模式信号。表示流模式从端口可以接收 数据dataavailab e1 outno流传输模式信号。表示流模式从端口拥有有效 数据en dofpaeket1 outno流传输模式信号。用于向主端口报告 ”包结束” 状态。如何使用取决于外设rq1 outno中断请求。当从外设需要外设服务时可触发irqesetreques1 outno复位请求信号,该信号使得一个外设可以复位 整个系统模块上述信号如果不加说明都是高电平有效,此外,Avalon总线也提供上述信号的低电平有效版本,在信号名称后加” _n表示低电平有效,如:read信号为高电平有效,而read_n为低电平有效。1.4.2 Avalo

38、n总线上的从端口读传输142.1基本从端口传输模式基本从端口传输模式是所有Avalon从端口传输的基础。所有其它的从端口传输使用的信号都包含了基本从端口传输的信号,并扩展了基本从端口操作时序。基本从端口传输由 Avalon总线模块发起,然后从端口向Avalon总线模块传输一个单元的数据。基本从端口读传输没有延迟。例4.1显示了一个基本从端口读传输的例子。在Avalon基本读传输中,总线传输开始于一个时钟上升沿, 并在下一个时钟上升沿结束, 不插入等待周期。由于传输在一个时钟周 期内完成,目标外设必须能够立即 异步向Avalon总线模块输出相应地址的内容。在elk的第一个上升沿,Avalon总线

39、向目标外设传递 address、byteenable_n 和read_n 信号。Avalon总线模块内部对 address进行译码,产生片选并驱动从端口的ehipseleet信号。一旦ehipseleet信号有效,从端口在数据有效时应立即驱动readdata输出。最后,Avalon总线模块在下一个时钟上升沿捕获readdata。例4.1基本从端口读传输B CE(A)第一个总线周期开始于elk上升沿;(B)Address 和 read_n 信号有效;(C)Avalon总线对address译码,输出有效的 chipselect ;(D)片选有效后,从端口在第一个总线周期内必须返回有效数据;(E)A

40、valon总线在下一个clk上升沿捕获readdata,读传输到此结束。另一个总线传输 可以在下一个总线周期开始。无等待周期的基本读传输只适用于完全异步的外设。目标外设必须在外设被选中或地址变化时立即向Avalon总线提供数据。为使传输正常工作,readdata的输出必须在一下个时钟上升沿有效且稳定。锁存输入或输出端口的同步外设不能使用无等待周期的基本从端口读传输。大部分片上外设都采用同步接口, 因此至少需要一个时钟周期来捕获数据。在读传输中,需要至少一个等待周期,除非该外设是具有延迟的。外设的从端口还可以使用字节使能信号byteenable_n,对byteenable_n 的解释是由外设决定

41、的。在最简单的情况下,从端口可以忽略byteenable_n,每当read_n有效时总是驱动所有的字节段。Avalon总线模块在每次读传输中捕获 readdata的全部位宽度。如果在读 传输中某个字节未使能,其返回到 Avalon总线模块的值是不确定的。当chipselect无效时,从端口必须忽略所有其它输入信号,其输出信号没有必要置为高阻。此外,chipselect的上升沿或read_n的下降沿不能用作读传输开始的标志,因为这些 边沿的稳定性是没有保证的。 具有固定等待周期的从端口读传输具有固定等待周期从端口传输使用的信号与基本读传输使用的相同,不同点只是信号的时序。具有等待周

42、期的从端口读传输适用于不能在一个时钟周期内提供数据的外设。例如, 若指定了一个等待周期,Avalon总线模块在提供了有效的地址和控制信号后,会等待一个时钟周期再捕获外设的数据。 Avalon总线模块在每次读传输时都会等待固定数量的总线周 期。例4.2显示了具有单个等待周期的从端口读传输的时序。Avalon总线模块在第一个总线周期提供address、byteenable、read_n和chipselect信号。由于具有等待周期,外设不 必在第一个总线内提供 readdata。第一个总线周期是第一个(也是唯一一个)等待周期。 从端口可以随时捕获地址和控制信号,片上的同步外设通常在第二个总线周期开始

43、(等待周期结束)时的 clk上升沿捕获地址和控制信号。在第二个总线周期间,目标外设向Avalon总线模块提供readdata。在第三个也是最后一个时钟上升沿,Avalon总线模块由从端口捕获readdata。在第三个也是最后一个时钟上升沿,Avalon总线模块由从端口模块readdata并结束总线传输。时序说明:(A)第一个总线周期开始于clk上升沿;(B)Address 和 read_n 信号有效;(C) Avalon 总线对address译码,输出有效的chipselect ;(D)clk上升沿标志着第一个且是唯一的一个等待周期结束。如果从端口是同步的,它 可以在 clk 上升沿捕获 ad

44、dress、read_n、禾口 chipselect;(E) 从端口在第二个总线周期内返回有效数据;(F) Avalon总线在下一个elk上升沿捕获readdata,读传输到此结束。另一个总线传 输可以在下一个总线周期开始。! £yreadeta 怕:DEaddnaNe nread nchipselectreaddatei例4.2具有一个固定等待周期的从端口读传输#X,Addrta *f"SSs,n1世Jontro1 Q.匸P Avail 、_d/! Ql i科A具有单个等待周期的读传输经常用于同步的片上外设。在合理的PLD设计中,模块间的接口应当通过寄存器同步。加入了一个

45、等待周期后,外设可以在chipselect有效后的下一个clk上升沿捕获 address、byteenable、read_n和chipselect,这使得目标外设具有至少 一个完整的总线周期来向Avalon总线模块提供返回数据。只是Avalon例4.3显示了具有多个等待周期的从端口读传输。它和例4.2几乎是一样的,总线在由外设获取readdata之前等待多于一个总线周期。A B CE FG142.3 具有外设控制等待周期的从端口读传输外设控制的等待周期使得目标外设能够根据提供数据的需要将Avalon总线模块的读操作暂停任意多个总线周期。在这种传输模块下,外设向Avalon总线模块提供数据所需的

46、时间是不固定的。例4.4显示了这种情况,外设控制等待周期的读传输模式使用了waitrequest信号。它是一个从端口的输出信号。当从端口的read_n信号有效后,从端口若要延长读传输,它必须在第一个总线周期内返回waitrequest。当waitrquest有效后,Avalon总线模块便暂停工作,不再捕获 readdata。 Avalon总线模块在 waitrequest失效后的下一个 clk上升沿捕获 readdata 。Avalon总线模块没有超时机制来限制从端口暂停总线的时间。当Avalon总线模块暂停后,系统模块内的某个主外设也被暂停,并等待着由目标从外设返回需要的数据。一个从端口能够

47、将主端口永久地"挂起”。因此,外设必须保证不会使waitrequest无限期地保持有效。E1dk、j Slave Port Periphorall /ADFnBBd nwaitrequBstreddats时序说明:(A)第一个总线周期开始于clk上升沿;(B)Address 和 read_n 信号有效;(C) Avalon 总线对address译码,输出有效的chipselect ;(D)从端口在下一个 clk上升沿之前置 waitrequest有效(E) Avalon总线模块在 clk上升沿读取 waitrequest。这时waitrequest有效,因而在该时钟上升沿不捕获rea

48、ddata;(F-G)waitrequest 一直保持有效,可以占用任意多个总线周期;(H)从端口提供了有效的readdata;(I)从端口置 waitrequest 无效;(J) Avalon 总线在下一个clk上升沿捕获readdata,读传输到此结束。另一次总线传 输可以开始于下一个总线周期。若一个从端口采用了外设控制等待周期的读传输模式,对该端口的其它传输模式会有 一些限制,比如不能再使用建立时间和保持时间。这些限制只影响从端口,不影响连接到 Avalon总线模块上的其它外设。在大多数情况下,产生waitrequest信号的外设是片上同步 外设,不需要考虑建立时间和等待时间。142.4

49、具有建立时间的从端口读传输Aval on总线模块按照用户设计或者外设默认,能够自动满足各个从端口信号的建立时 间要求,发起读传输的主外设不必考虑各个信号对建立时间与保持时间的要求。具有建立时间的从端口读传输使用的信号与基本读传输使用的相同,不同点只是信号的时序。这种传输方式通常用于一些片外外设,它们要求在读使能信号有效前address和Chipselect信号需要稳定一段时间。一个非零的建立时间N意味着address、byteenable_n和chipselect信号提供给从端口之后,在read_n有效之前有N个总线周期的延迟。要注意chipselect不受建立时间的影响,若外设对于read_

50、n和chipselect都要求有建立时间,用户必须在接口中手工添加适当的逻辑(一个与门)。-完成总线传输所需的总线周期的总数取决于建立时间和等待周期的总线周期。例如,若一个外设具有参数 setup_Time= ” 2"和Read_Wait_States= ” 3”,安将花费6个总线周期来完 成传输:2个总线周期的建立时间,3个总线周期的等待周期,1个总线周期用来捕获数据。 例4.5显示了具有一个总线周期的建立时间和一个固定等待周期的从端口读传输。时序说明:(A) 第一个总线周期开始于clk上升沿;(B) Address 和byteenable_n 有效,read_n信号仍保持无效;(

51、C) Avalon 总线对address译码,输出有效的 chipselect ;(D) clk 上升沿标志着建立时间总线周期结束,并开始总线等待周期;(E) Avalon 总线模块置read_n有效;(F) clk上升沿标志着总线等待周期结束;(H) Avalon 总线在下一个 clk上升沿捕获readdata,读传输到此结束。另一次总线 传输可以开始于下一个总线周期。如果一个外设能够同时支持读和写总线传输,并且指定了建立时间,那么读传输和写传输具有同样的建立时间。clk例4.5具有建立时间的从端口读传输address, byleien曰bl令亠n1.4.3 在Avalon总线上的从端口写传

52、输143.1基本从端口写传输和从端口读传输类似, 基本从端口写传输是所有 Avalon从端口写传输的基础。所有其它的从端口写传输模式使用的信号都包含了基本从端口写传输的信号,并扩展了基本从端口写时序。基本从端口写传输由Avalon总线模块发起,由Avalon总线模块向从端口传输一个单元的数据。基本从端口写传输没有延迟。例4.6 显示了基本从端口写传输,没有等待周期、建立时间和保持时间。Avalon总线模块提供 address、writedata、byteenable_n 禾口 write_n 信号,然后设置 chipselect 有效。 从端口在下一个时钟上升沿捕获地址、数据和控制信号,写传输

53、立即结束。整个传输过程仅花费一个总线周期。从外设可以在传输结束后再花费一些总线周期来实际处理写入的数据。如果外设不能在每个总线周期都接受数据,则需要加入等待周期。例4.6基本从端口写传输卜 r Slave Port J 1 PeripheraAB CD康草科技WWW.21CONTROL.COM第18 页共11 页(A)写传输开始于clk上升沿;(B)Writedata、address、byteenable_n、write_n 信号有效;(C)Avalon总线模块对address译码,并向从端口设置有效的chipselect ;(D)从端口在下一个 clk 上升沿捕获 writedata、add

54、ress、byteenable_n、write_n 和chipselect,写传输到此结束。另一次读或写传输可以开始于下一个总线周期。基本写传输只适合于同步外设,包括许多片上外设,例如PIO和定时器等。基本写传输的时序不适合于异步外设,因为包括write_n和(这会在片外存储器等异步外设中造成竞争冒险现象。 保持时间,这将在后面的章节中讨论。当writedata比一个字节宽时,字节使能信号 Bytee nable_n 是一组信号线,其中每一次对应于 通常用于片外的16位或32位字寻址的存储器设备。 定相应的字或半字地址,而bytee nable_ nbyteenable n的一些例子,其中假定

55、从端口是chipselect在内的所有输出信号同时失效, 对于这样的外设,用户可以设定信号的bytee nable_ n 可以写入特定的字节段。 writedata的一个字节段。当写入单个字节数据时, 精确地指定要写入哪个字节。表Bytee nable_ naddress 仅指4.3是使用个 32位的外部存储器。表4.332位从端口字节使能的使用bytee nable n3:0写行为0000Write full 32-bits1100Write lower 2 bytes0011Write upper 2 bytes1110Write byte 0 only1011Write byte 2 only143.2 具有固定等待周期的从端

温馨提示

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

评论

0/150

提交评论