logo资料库

Avalon总线规范中文版.pdf

第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
资料共21页,剩余部分请下载后查看
) PLD )内部的逻辑单元( LE); 8, 16 或 32 Avalon 总线支持多个总线主设备。 SOPC)的一种简单总线 Avalon 总 Avalon 总线规范 参考手册 (Avalon 从端口传输与流模式从端口传输部分 Avalon 总线是一种将片上处理器和外设连接成片上可编程系统( 结构。 Avalon 总线是一种接口方式, 它规定了主从设备之间的接口方式及其通信时序。 线的设计目的在于: ■ 简便:提供了简单易学的协议; ■ 优化总线逻辑的资源利用:节约了可编程器件( ■ 同步操作: 将 PLD 上的其他用户逻辑很好的集成在一起, 从而避免了复杂的时序分析; 基本的 Avalon 总线事务可以在主﹑从设备之间传送一个字节,半字或字( 位)。 当一次事务处理完成, 总线可以迅速的在下一个时钟到来的时候在相同的主从设备之间或其 他 的 主 从 设 备 间 开 始 新 的 事 务 。 Avalon 总 线 也 支 持 一 些 高 级 功 能 , 如 “ 延 迟 型 (latency-aware)外设”,“流( streaming)外设”及多总线主设备。这些高级的功能使其允 许在一个总线事务中进行外设间的多数据单元的传输。 多主设备的结构为 SOPC 系统及高带宽外设提供了很大程度上的稳定性。例如,一个主外 设可以进行直接存储器访问 (DMA ),而不需要处理器在数据传输路径上从外设将数据读入 存储器。 Avalon 总线上,主设备和从设备之间的相互作用是基于一种被称为“从设备 (slave-side)仲裁” 的技术。 从设备仲裁决定了当多主设备在同一时刻尝试连接同一个从设 备的时候,哪个主设备获得从设备控制权。从设备仲裁具有两个优势: 1.仲裁细节内嵌于 Avalon 总线内部。所以,主设备和从设备的接口具有一致性,不考虑 总线上的主设备和从设备的数量。在每一个和 总线上唯一的主设备。 2. 多个主设备可以同时完成总线事务, 就像他们并不是在同一个总线周期连接到同一个从 设备一样。 Avalon 总线的设计是为了配合片上可编程系统 部逻辑和布线资源的主动片上总线结构。 1. 与外设的接口同步于 Avalon 时钟。所以,没有复杂的,异步的握手 总线(及整个系统)的性能可以通过使用标准的同步时序分析技术来实现测量。 2. 所有的信号都是有效“低”和“高” ,这样便于总线操作的立即转换。位于 部的多路复用器(不是三态缓冲器)来决定哪个信号驱动哪个外设。 3. 地址,数据和控制信号使用分离的,专用端口,这样简化了外设的设计。外设不需要 对地址和数据的总线周期进行解码,也不需要在非使能的时候禁止输出。 Avalon 总线相连接的主设备看来,它都是 ( SOPC)的。它是一种由 PLD 内 /应答模式。 Avalon Avalon 内 Avalon 结构的一些原则如下: SOPC Builder 软件自动产生的系统﹑总线和外 功能简介 Avalon 也包括很多的功能和约定来支持 设: 高于 4G 的地址空间 -存储器和外设可以被映射为 32 位地址空间中的任何地址。 同步接口 -所有的 Avalon 信号都被 Avalon 总线时钟同步。这样简化了 Avalon 总线的相关 时序行为并便于高速外设的集成。 分离的地址,数据和控制线路 -分离的,专用的地址和数据路径更便于与用户逻辑相连接。 外设不需要对数据和地址周期进行译码。 内置地址译码器 - Avalon 总线自动的为所有外设产生片选( Chip Select)信号,大大的简化 了 Avalon 外设的设计。
多主设备总线结构 -在 Avalon 总线上可以存在多个主外设。 Avalon 总线自动产生仲裁逻辑。 Avalon 总线的配置 (增加外设, 基于向导式的配置 -方便使用的图形化向导引导用户完成对 确定主 /从关系, 定义存储器映射) 。Avalon 总线结构的自动产生是由用户在向导界面的输入 来决定的。 动态总线容量 -Avalon 总线自动处理数据位宽不匹配的外设间传送数据的细节,便于在多 种不同宽度的设备间接口。 名词及概念 许多与 SOPC 相关的名词和概念都完全是新的,他们和传统的片外总线结构有着本质的不 同。设计者需要懂得这点,以便可以理解 理论化的框架, 而 Avalon 总线规范就是建立在这一框架的基础上的。 Avalon 总线规范。下面的名次及概念构成了一个 它们贯穿于整个文档。 总线周期 总线周期被定义为 Avalon 主时钟的相邻上升沿之间的时间间隔,它是总线时钟周期的基本 单元。总线信号时序参照于总线周期时钟。 总线传输 Avalon 总线的一次传输是对数据的一次读 /写操作, 它可能持续一个或多个总线周期。 Avalon 总线所支持的传输位宽为:一个字节( 8 位),半个字( 16 位)或一个字( 32 位)。 流传输 流传输为“流主设备”和“流从设备”之间的 连续性数据传输 建立一个 开放式 的管道。 带有延迟的读传输 有些同步设备在刚刚开始传输的时候, 需要延迟几个时钟周期才能够完成其第一次读数据的 带有延迟的读传输可以增加 过程,而在之后的传输过程中就可以每一个周期返回一个数据。 这些同步设备的带宽利用率。 延迟性传输允许一个主设备发出读请求后, 转而执行另一个无 关任务, 过一段时间再接收数据。 尽管之前的数据还没有接受到, 这个无关的任务也可以发 DMA 传输。这样, 出另一次读请求。这有利于进行连续标准地址的存取的指令存取操作和 CPU 和 DMA 主设备可以预读取其需要的数据, 所以这使得同步存储器保持活跃状态, 并减 少了平均存储延时。 SOPC Builder 软件及 Avalon 总线的产生 SOPC Builder 是 Altera 开发的一款系统生成和集成工具。 SOPC Builder 所产生的片上电路系 统模块包括 Avalon 总线 、主外设 和从外设 。SOPC Builder 提供了图形化的用户接口,应用 Avalon 总线将外设连接 这种接口可以实现向系统模块中添加主、从外设,配置外设及配置 起来。这样, SOPC Builder 自动的创建并连接 HDL 模块,便可以实现用户 PLD 设计的每 一个部分。 系统模块 考虑在可编程芯片上实现用户自定义系统的结构,其中一部分是由 的。 在 Altera PLD 上实现的完整系统如图 1 所示。出于本文的目的,系统模块的一些部分是由 SOPC Builder 自动产生
SOPC Builder 自动产生的。 系统模块 应该包括最少一个 Avalon 主外设 和 一个 Avalon 从外设 , 例如 UART ,定时器或者 PIO。系统模块的外部逻辑可以包含用户 系统模块不相关的用户逻辑。系统模块必须与设计者的 口依赖于其所包括的外设及在 到 Avalon 总线的接口及在系统模块中的用户自定义的和外设相连的接口。 SOPCBuilder 中进行的设置, 并随其变化。 这些端口包括直接 Avalon 外设及其他的和 PLD 设计连接起来。系统模块的端 Avalon 总线模块 Altera PLD 上集成用户逻辑的系统模块 Avalon 总线模块 是任何一个系统模块的 “脊梁”。 它是 SOPC 设计中外设通信的主要路径。 Avalon 总线模块是所有的控制、数据、地址信号 及控制逻辑的总和,是其将外设连接起来并构成了系统模块。 置的总线结构,其可以为设计者外设之间的相互连接而改变。 Builder 自动产生的,所以设计师并不用亲自将总线和外设连接起来。 上不会作为分离的单元而单独使用,因为系统设计者总是利用 他 Avalon 外设自动地集成于一个系统模块之中。 用户 Avalon 外设相连接地具体的端口上。 Avalon 总线模块 (一条 Avalon 总线) 是一个主动的逻辑单元, 它取代了 PCB 板上的被动的, 金属总线。(见图 2)这就是说, Avalon 总线模块的端口可以被看作是所有连接到被动总线 Avalon 总线模块接口中的端口,逻辑行为和信号顺 的引脚连接。本手册只是定义了包含于 序,而没有提及物理总线的电气或物理的性能。 Avalon 总线模块基本 SOPC Builder 将处理器和其 设计者对 Avalon 总线的注意力 通常限于与 Avalon 总线模块实现了可配 Avalon 总线模块是由 SOPC
图 2 .Avalon 总线模块框图-范例系统 Avalon 总线模块为连接到总线的 Avalon 外设提供了以下的服务: ■ 数据通道多路转换 —— Avalon 总线模块的多路复用器从被选择的从外设向相关主外设传 输数据。 ■ 地址译码 ——地址译码逻辑为每一个外设提供片选信号。这样,单独的外设不需要对地 址线译码以产生片选信号,从而简化了外设的设计。 ■ 产生等待状态( Wait-State)——等待状态的产生拓展了一个或多个周期的总线传输,这 有利于满足某些特殊的同步外设的需要。 的等待状态可以使 主外设 进入 等待状态 。在读使能及写使能信号需要一定的建立时间 时间要求的时候也可以产生等待状态。 Avalon 总线(或者 Avalon ■ 动态总线宽度 ——动态总线宽度隐藏了窄带宽外设与较宽的 总线与更高带宽的外设) 相接口的细节问题。 举例来说, 一个 32 位的主设备从一个 16 位的 存储器中读数据的时候,动态总线宽度可以自动的对 传输 32 位的数据。这便减少了主设备的逻辑及软件的复杂程度,因为主设备不需要关心外 设的物理特性。 ■ 中断优先级 ( Interrupt-Priority )分配 ——当一个或者多个从外设产生中断的时候, 总线模块根据相应的中断请求号 (IRQ) 来判定中断请求。 ■ 延迟传输( Latent Transfer)能力 ——在主、从设备之间进行带有延迟传输的逻辑包含于 Avalon 总线模块的内部。 ■ 流式读写( Streaming Read and Write )能力 ——在主、从设备之间进行流传输使能的逻 当 从外设 无法在一个时钟周期内应答的时候, 产生 /保持 16 位的存储器进行两次读操作,从而 Avalon 辑包含于 Avalon 总线模块的内部。 Avalon 外设 连接于 Avalon 总线的 Avalon 外设是逻辑器件——无论片上还是片外的——它们进行着某种
系统级的任务,并通过 Avalon 总线与其他的系统部件相通信。外设是模块化的系统部件, 依赖于系统的需要,可以在设计的时候增加或者移除。 也可以是传统的外设器件,如 UART , PIO,定时器或总线桥。任何的用户逻辑都可以成为 Avalon 外设可以是存储器、处理器, Avalon 外设, 只要它满足本文所述的提供与 Avalon 总线接口的地址、 数据及控制信号接口。 连接于 Avalon 总线的外设将被分配专用的端口。除了连接于 Avalon 总线的地址、数据及控 制端口之外用户也可以自行定制端口。这些于用户逻辑相连接的信号扩展了系统模块的应 用。 Avalon 外设要么是主外设,要么是从外设。主外设可以于 至少有一个连接于 Avalon 总线模块的主端口。主外设也可以有一个从端口其允许此设备接 受其他连接于 Avalon 总线的主设备开启的总线传输。 而从设备只能响应 Avalon 总线传输, UART 这样的从设备,通常只有与 Avalon 总线模块相 而不能够开启总线传输。像存储器, 连接的一个从端口。在 SOPC 环境中,区分以下 Avalon 总线主设备 /从设备的外设类型是 十分重要的。 Avalon 上开启总线传输,其 系统模块内部外设 如果 SOPC Builder 在外设库中找到了一个外设,或者设计者指定了一个用户外设的设计文 件, SOPC Builder 将自动的将此外设与 Avalon 总线模块相连接。这种外设是指系统模块之 Avalon 总线相连接的地址、数据及控 内的外设,也就是被认为是系统模块的一个部分。与 制端口是向用户隐藏的。 外设中任何附加的非 Avalon 端口将作为系统模块的端口显示于外。 这些端口可能与物理管脚直接相连或者可能与片上的其他模块相连。 系统模块外部外设 Avalon 总线外设也可以存在于系统模块之外。设计者选择将模块置于系统模块之外 可能有以下几个原因: ■ 外设在物理上位于 PLD 器件之外 ■ 外设需要某些粘连逻辑( glue logic )使其与 Avalon 总线信号连接 ■ 在系统模块产生的时候,外设的设计还没有完成 在这些情况下, 相应的 Avalon 总线模块信号作为系统模块的端口现于外部 主端口( Master Port) 主端口是主外设上用于开启 Avalon 总线传输的一系列端口的集合。 主端口与 Avalon 总线模 块直接相连。 实际上, 一个主外设可能有一个或多个主端口及一个从端口。 这些主端口及从 但是, 这些主、 从端口上的单独的总线 端口的相互依赖关系是由对外设进行设计时决定的。 传输应该总是遵循本文所述。 本文中所提及的所有主设备传输都是指单独的主端口的 总线传输。 从端口( Slave Port) 从端口是指在位于某一外设上的,从另一外设主端口接受 集合。从端口也直接与 Avalon 总线模块相连接。主外设也可以有一个从端口,通过这个从 端口可以使其接受 Avalon 总线上其他主设备的传输。本文所提及的所有从设备传输都是指 单独的从端口的 Avalon 总线传输。 主-从端口对( Master-Slave Pair ) “主-从端口对” 是指通过 Avalon 总线模块相连接的一个主端口和一个从端口构成的组合。 Avalon 总线模块上的相应端口相连接。主端口的控制及数 从结构上讲,这些主、从端口与 据信号可以有效的通过 Avalon 总线模块与从端口相互作用。主、从端口之间的连接(这就 构成了主 -从端口对)是在 SOPC Builder 中所确定的。 Avalon 总线传输的一系列端口的 (及指定的外设) 。 Avalon PTF 文件、 SOPC Builder 参数及开关
SOPC Builder 图形用户接口 (GUI )来完成。 PTF 文件。 PTF 文 Avalon 总线及外设的配置可以利用基于向导的 通过这个 GUI ,用户可以设定不同的参数和开关,然后据此产生系统的 件是一个文本化的文件,它定义了: ■ 定义 Avalon 总线模块结构、功能的参数 ■ 定义 每个外设定义结构、功能的参数 ■ 每个 外设的主、从角色 ■ 外设端口 (如读使能、写使能、写数据等) ■ 通往多主端口的从端口的仲裁机制 然后, PTF 文件通过 HDL 产生器创建了系统模块的寄存器传输级( 于系统 PTF 文件的信息请查看 “ SOPC Builder 数据文档”( SOPC Builder DataSheet)和 “SOPC Builder PTF 文件参考手册” ( SOPC Builder PTF File Reference Manual ) __ RTL )描述。更多的关 Avalon 总线模块传输数据所需要的信号和 1.3 Avalon 总线传输 Avalon 总线规范定义了主端口和从端口之间通过 时序。构成 Avalon 总线模块和外设之间接口的信号随着传输模式的不同而不同。首先,主 传输与从传输的接口不同,使用主端口与从端口的信号定义不同。此外,通过系统 件的设置,所需信号的确切类型与数量也是可变的。 Avalon 总线规范提供了各种选项来剪裁总线信号和时序,以满足不同类型外设的需要。 Avalon 总线基本传输模式在一个主从端口对之间每次只传送一个单元的数据。可以通过插 入等待周期来延长一次总线传输的时间, 多主端口传输的能力满足高带宽外设的需要。所有 的基本传输模式。同样,主端口的基本传输模式是所有 Avalon 主传输的基础。 PTF 文 以满足低速外设的需要。 流传输模式以及支持并发 Avalon 从传输 的信号时序都源自 从端口 1.3.1 主端口接口与从端口接口 当讨论 Avalon 总线传输时,必须注意讨论的是总线的哪一边,是主端口接口还是从端口接 口。由主端口输出的信号与输入到目标外设的从端口的对应信号可能会有较大的差别。 口的信号活动总是主外设发起总线传输的结果。 主端口。 Avalon 总线模块传递来自主端口的信号,并对信号进行裁剪,以满足从外设的需 要。 由于以上原因,对 Avalon 总线传输 的介绍将分为 主传输类型 和 从传输类型 两个部分。 大多数用户只关心 从传输 ,因为他们设计的用户自定义外设一般都是从外设。 边时, 用户只 需考虑 Avalon 总线模块和用户自定义外设之间的信号。只有当用户创建主外设时才涉及到 主传输。 但是, 实际的从端口输入信号并非直接来自 从端 Avalon 总线 主时钟 定时,所有总线传输的信号都 1.3.2 Avalon 总线时序 Avalon 总线是一个同步总线接口,由一个 Avalon 总线信号都是锁存的。 比 与 Avalon 总线时钟同步。 同步总线接口并不意味着所有的 Avalon 总线时钟的 如, Avalon 的 chipselect 信号便是由组合逻辑产生的,其输入是同步于 寄存器的输出。 因此, 外设不能使用 Avalon 信号的边沿 ,因为 Avalon 信号在达到稳定前会 变化多次 。就像所有同步设计一样, Avalon 总线外设只能在时钟上升沿对稳定的信号作出 Avalon 总线模块也可以连接异步外设,例如 响应,且必须在时钟上升沿输出稳定的信号。 片外异步存储器。 但设计时需要考虑一些额外因素: 由于 Avalon 总线模块的同步操作, Avalon 信号只以 Avalon 总线时钟周期为间隔变化。此外,如果异步外设的输出直接连接到 Avalon 总线模块, 用户必须保证输出信号在时钟上升之前达到稳定 时钟上升沿之间信号是如何变化的。信号的变化由 。 Avalon 总线规范并不定义在 Avalon 总线时钟触发, 信号只要在捕获
Avalon 总线传输达到的 时钟上升沿之前达到稳定就可以了 ,因此,总线规范中的 Avalon 总线时序图中不会描绘精 确的时间信息。类似地, Avalon 总线没有规定固有的最高性能。系统模块在特定的器件上 综合布线之后,用户必须对系统模块进行标准的时序分析,以确定 最高速度。 1.3.3 Avalon 总线信号 由于 Avalon 总线是一个由 HDL 文件综合而来, 所以在连接 Avalon 总线模块和 Avalon 外设 .预先设计 时需要一些特别的考虑。对于传统的片外总线结构,所有外设都共享一组固定的 的金属线路,而 Avalon 总线与此不同: SOPC Builder 必须准确地了解每个外设提供了哪 些 Avalon 端口,以便连接外设与 Avalon 总线模块。它还需要了解每个端口的名称和类型, 这些信息定义在系统 PTF 文件中。 Avalon 总线规范不要求 Avalon 外设必须包含哪些信号。 (例如地址 .数据 .时钟等)。 外设的每一个信号都 它只定义了 外设可以包含的各种信号类型 要指定一个有效的 Avalon 信号类型,以确定该信号的作用,一个信号也可以是用户自定义 的。在这种情况下, SOPC Builder 不将该端口与 Avalon 总线模块连接。 Avalon 信号类型 首先分为 主端口信号和从端口信号 两类。 因而,外设使用的信号类型首先由端口的主从角色 决定。 每个独立的主端口或从端口使用的信号类型由外设的设计决定。 输出的 PIO 从外设只需要定义用于写的信号,而不需要定义用于读的信号。尽管中断请求 Avalon 总线规范不规定 Avalon 外设信 输出是从端口允许的信号类型,但也不是必须使用。 号的命名规则。 不同信号类型的作用是预先定义的, 而信号的名称则是由外设决定。 信号可 以按照它的信号类型来命名, 也可以遵照系统级的命名规范采用不同的名称。 下面章节中讨 论的 Avalon 总线传输时会涉及到一些 Avalon 信号,例如 readdata 信号和 irq 信号。在这里 信号类型的名称作为信号名称,但外设信号的实际名称可以与此不同。 作为一个例子,表 1.1 列举了部分 Avalon 从端口可用的信号类型。信号的方向是从外设的 角度定义的。例如时钟信号 clk(方向为 in )对于从外设来说是输入信号,而对于 线模块来说是输入信号。 例如, 设计一个只有 Avalon 总 表 1.1 中例举的信号类型都是高电平有效。 Avalon 总线还提供了各个信号类型的反向形式。 在
PTF 声明中,在信号类型名称加” _n”,便可将对应的端口声明为低电平有效。这对许多使 用低电平有效的片外外设非常有用。 1.3.4 并发多主端口的 Avalon 总线需要考虑的事项 Avalon 总线允许多个端口连接到 Avalon 总线模块。而且实现 Avalon 总线的并发多主端口 功能时, Avalon 总线模块不需要额外的特殊信号。当多个主外设试图同时访问同一个外设 时, Avalon 总线模块内部的从端口仲裁逻辑会被用来解决冲突。 外设完全是透明的。因而,不论是否使用了仲裁,应用于主端口和从端口的 输协议是相同的。换句话说,从端口不会意识到有多个主外设同时请求总线传输。类似地, 被仲裁逻辑强制等待的主外设也不会意识到另一个获胜的主外设的存在。 主端口 只是简单地 发现它的 等待请求信号 被置为有效, 并一直等待, 直到目标外设准备好处理总线传输。 将仲 裁的细节隐藏在 Avalon 总线模块内部极大简化了外设的设计, 任何 Avalon 外设在单主端口 和多主端口结构中都可以使 用。 仲裁机制对于 Avalon 总线 Avalon 总线传 1.4 Avalon 从端口传输 1.4.1 从传输的 Avalon 总线信号 表 2 列举了外设的从端口与 Avalon 总线间接口的信号类型。信号的方向是以外设的角度定 PTF 文件中的信号定义决定,不需要提供全部的信 义的。外设提供的信号由外设的设计和 号类型。
分享到:
收藏