本文参考 Altera 文档:Introduction to the Avalon® Interface Specifications
Avalon 总线是一种协议较为简单的片内总线,主要用于连接片内处理器与外设,以构成片上可编程系统(SOPC)。使用 Avalon 接口能够轻松连接 Intel FPGA 中的各个组件,从而简化了系统设计。Avalon 接口常用于高速数据流传输、读写寄存器和存储器、控制片外器件等。此外,也可以使用 Avalon 接口自定义组件,以增强设计的互操作性。
Avalon 共有以下七种接口:
- Avalon Clock Interface, Avalon 时钟接口 -- 驱动或接收时钟信号的接口。
- Avalon Reset Interface, Avalon 复位接口 -- 驱动或接收复位信号的接口。
- Avalon Memory Mapped Interface (Avalon-MM), Avalon 存储器映射接口 -- 基于地址的读/写接口,是主 - 从连接的典型接口。
- Avalon Streaming Interface (Avalon-ST), Avalon Streaming 接口 -- 支持单向数据流的接口,包括多数据流、数据包和 DSP 数据的传输。
- Avalon Conduit Interface, Avalon Conduit 接口 -- 适用于不适合任何其他 Avalon 类型的单个/多个信号。使用该接口可以将信号导出到顶层 SOPC 系统,这样就可以将它连接到设计的其他模块。
- Avalon Tri-State Conduit Interface (Avalon-TC), Avalon 三态 Conduit 接口 -- 与片外设备的接口。多个外设可以通过信号的多路复用共享引脚,从而减少 FPGA 引脚数和 PCB 走线数。
- Avalon Interrupt Interface, Avalon 中断接口 -- 允许组件向其他组件发送事件信号的接口。
一个组件可以包含多个不同类型的接口,也可以包含多个相同类型的接口。
Avalon 接口通过属性(property)描述它们的行为。每种接口类型的规范定义了所有接口的属性和默认值。比如,Avalon-ST 接口的 maxChannel 属性指定接口支持的通道数量,Avalon Clock 接口的 clockRate 属性描述时钟信号的频率。
每个 Avalon 接口都定义了一系列的信号及其行为,并且多数信号都是可选的,这允许组件设计者能够更加灵活地选择需要的信号类型。例如,Avalon-MM 接口包含可选的 beginbursttransfer 和 burstcount 信号,用于那些支持突发(bursting)传输的组件。Avalon-ST 接口包含可选的 startofpacket 和 endofpacket 信号,用于那些支持数据包的接口。
每种接口都有时序方面的信息,这些时序信息描述了针对单个类型的传输。
注:本文重点介绍以下四种接口,其余接口请参考 Intel FPGA 的 Avalon Interface Specification 文档。
Avalon 时钟接口
Avalon 时钟接口定义了组件使用的时钟,一个组件可以有时钟输入、时钟输出或时钟输入输出都含有。例如,锁相环(PLL)是一个包含了时钟输入和时钟输出的组件。

Clock Sink 信号
Clock sink 为其他接口和内部逻辑提供时钟和时序参考,clock sink 的属性有 clockRate,用来表示 clock sink 接口的频率(Hz),默认值为 0。
表 1 Clock Sink 信号

表 2 Clock Sink 属性





















