Avalon-MM接口与Avalon-ST接口(简介)
1. Avalon-MM接口:2006.11之前只有这一种接口,许多关于Nios的书里描述的都是这种接口。最早的一本SOPC书籍《挑战SOC》中Avalon总线一段,就是按照2003.7的《Avalon Bus Specification》翻译的。那时的Avalon还被称作总线。此后的相应文档被称作《Avalon InteRFace Specification》。2006.11之后,相应的文档更名为《Avalon Memory-Mapped Interface Specification》,以与《Avalon Streaming Interface Specification》区分。
2. Avalon-ST接口:2006.11之后引入的新的接口概念,即Avalon Streaming Interface。由于太新,在7.1版Component Editor中都还没有支持,只能通过Tcl文本进行声明;但是7.1版的SOPC Builder已经支持该类型接口的配置和互连生成。还有论坛上声称,Altera最新的DSP IP core都采用这种接口了。
3. 辨析:Stream(流控)的概念在Avalon-MM接口的早期版本中就已经提到了。在2006.11之后的Avalon-MM接口文档中,相应的说法变成了Flow Control(流控),Stream(流模式)的说法留给了Avalon-ST接口文档。Avalon-ST接口不是从Avalon-MM接口的流控形式派生出来的,与Avalon-MM接口没有继承关系,这是容易混淆的一个概念。Avalon-MM接口中仍然有流控形式的信号。
Avalon-ST接口虽然采用SOPC Builder连接,但是从本质上已经不同于Avalon-MM接口。它是一种非总线形式的连接,给设备之间提供了总线之外的点对点专用连接。这一接口更像是Atlantic接口。我在2003年评估Altera的一款FFT内核时用到过Atlantic接口,现在这些DSP内核都向Avalon-ST接口迁移了。
单独采用Avalon-MM接口可以构建一个隐式地包含控制通路和数据通路的完整的SOPC系统;但是采用Avalon-MM接口结合Avalon-ST接口构建系统,可以更充分地体现控制通路(Avalon-MM)和数据通路(Avalon-ST)分离的设计原则,可以充分发挥两类接口的优势。
这是Altera SOPC概念上的一大进步。