Avalon 总线 时序 介绍

 

Avalon 总线普遍应用于外设和软核或者硬核交互,其时序简单明了,也很是适合用来做为划分模块的接口信号。本文结合quartus 关于 avalon 总线英文原版作简单介绍,重点理解时序便可。欢迎你们一块儿交流,Q群:912014800。app

 

1.Avalon的时钟和复位异步

 这里没什么好讲的,时钟信号略,而对于复位信号,可能有三个选择:
ui

 

NONE: 复位是异步信号spa

DEASERT : 复位发生异步,复位释放同步3d

BOTH: 复位释放和发生都是同步信号blog

 

2.avalon M-M接口接口

这个接口比较重要,这个接口通常用于读写,可用在主从之间的元件上。全名,Avalon Memory-Mapped,阿瓦隆内存映射接口。事件

先看一个图:内存

如上图所示,Avalon MM mastet 经过内部桥链接Avalon MM slave,就是主链接从,其次下方有不少设备,好比uart来说,对于Avalon mm slave来说,一端链接到桥上,另外一端链接到真实的串口。其余外设均相似。文档

 

那么这个接口的时序是什么样子的呢?其实不一样的外设,其时序也少量差异,不过大同小异,如下举几个例子说明该接口的时序:

 E1:

如上所示:发出读请求read和地址address的同时须要看等待信号waitquest是否是高,如果高,则表示须要等待,如果低,则表示能够进行读操做。

以后过必定的时钟节拍,会返回读数据readdata和readdatavalid读数据信号。(比较简单,写也是如此,固然这只是咱们比较熟悉的状况。)

E2:基于以上基础,请看下图,改图表示读请求有效以后,固定两个clk的延迟出读数据,可自行理解。

 

 

 

E3: 写突发操做

 

如上所示,在发出第一个写请求有效的同时(waitquest=0),会有burstcount=4和beginbursttransfer=1,这里burstcount表示这次写突发操做写几个

数,而beginbursttransfer表示第一个数,其余信号定义和以前相似,此处再也不赘述,上图表示写突发操做为4个长度,这里须要注意的是,第一个数据在第一次waitquest=0,写第一个数据。

E4:读突发操做:和写相似。

 

E5:写容忍两个:

 

如上所示:即便waitquest信号等于1,因为设置能够容忍两个写数据,所以A1 和A2仍然能够写道slave里面。

就介绍这么多吧,还有一些信号没有介绍,笔者也没有遇到过,到时候在补充吧。

 

3.Avalon 中断接口

 

 

 中断接口相对简单一些,当发生什么事件时,拉高该信号便可,可是有时候可能会有几个中断同时来,那么就须要一个优先级。

4.AvalonStreaming Interfaces ,简称Avalon ST接口

E1:当ready信号准备好后,即可以传输数据,其中经过valid信号来指示信号的正确性,经过error和channel来选择那个通道以及是否错误。

 

 

 

E2:读准备好延迟=1,读准备容许=2

 

 

如上所示:单ready=1时,因为有一个clk的延迟,所以须要等待一个clk后在传输数据,因为其ready的容忍是2,所以即便ready已经为0了,

user仍然能够传输两个数据D2 和 D3.

E3:包传输,包传输就是在数据传输的过程当中,加入起始(start of packet)和结束指示信号(end of packet),其中也能够加入ready信号,

empty信号(有几个空,也就是无效),channel和错误信号,以下所示。

 

5.Avalon conduit 接口

用来导出做为和外部链接的接口或者给其余模块用。好比和外部sdram链接,或者和外部串口相链接。主要分为两类,好比给其余模块用的内部信号

和与外部真实物理器件相链接的信号。

 

6. Avalon 三态 conduit 接口,这里笔者也没怎么用过。。

 

总结:熟悉avalon MM和avalon ST总线的一些时序,不少IP核对user的接口都是基于avalon总线的,好比sdram ,ddr2,ddr3,uart,mac,方便user从另外一个角度理解和使用IP核,实际使用IP时,能够参考仿真,快速熟悉接口时序,从而将该IP核使用起来。本文并无将上述图中的信号的定义列出,如须要熟悉,请参考官方文档

相关文章
相关标签/搜索