【Avalon总线】2.avalon总线MM主设备

这节的内容比较少

1 Avalon内存映射主接口

       Avalon内存映射主接口是和Avalon内存映射从接口相对应的接口。

1.1 主接口信号类型

       由于主接口和从接口对应,因此在信号类型上也有对应关系。

信号类型

宽度

方向

描述

read

read_n

1

输出

读请求信号。如果该信号存在,那么需要readdata

write

write_n

1

输出

写请求信号。如果该信号存在。那么需要writedata

address

1-32

输出

指定byte地址。

readdata

8,16,32,

64,128,

256,512

1024

输入

读过程读出的数据

writedata

8,16,32,

64,128,

256,512

1024

输出

写过程从总线上传输过来的数据,数据的宽度需要和readdata的宽度相同。

byteenable

byteenable_n

1,2,4

8,16,32,

64,128

输出

读写过程中字节使能信号。在读过程中指定那些字节的信号能够被读取,在写过程中指定哪些字节能够被写入。

waitrequest

waitrequest_n

1

输入

使主接口等待总线完成工作。在等待过程中保持控制信号不变

arbiterlovk

arbiterlock_n

1

输出

该信号置位不能保证主接口赢得仲裁,不过一旦主接口赢得仲裁,确保能够和从接口建立联系。在最后一次read或write信号无效时无效。

突发传输不可以使用arbiterlock。

在有过的主接口访问同一个从接口时这个信号将起到很大的作用。

readdatavalid

readdatavalid_n

1

输入

用于流水式读取过程。表示在信号线上是否出现了需要的信号

flush

flush_n

1

输出

用于流水式读取过程。当主设备在新的read或write指令开始时置位flush,表示需要将之前的read过程放弃。

burstcount

1-32

输出

用于表示突发传输的次数。

resetrequest

resetrequest_n

1

输出

复位请求

1.2 典型传输过程

       典型的传输如下图所示。传输在第一个时钟上升沿开始,在第一个周期address,byteenable和read或者write信号有效,如果waitrequest信号被置位,那么主接口需要等待传输,并保持信号不变。传输在waitrequest信号失效后的第一个时钟上升沿结束。此时可以进行下一个传输。需要注意的是如果传输中没有byteenable信号,那么默认所有byteenable信号被置位。


【Avalon总线】2.avalon总线MM主设备

图1 主设备典型传输过程时序图

 

1.3 主接口流读传输

       支持流读传输的接口可以在接收到有效的data之前开始新一次的传输。支持流读传输的主设备需要有readdatavalid信号。

       传输地址阶段和典型的传输过程除了readdata信号都相同。主接口需要read,address和byteenable信号,并且需要保持恒定值直到readdatavalid被置位。

       流传输主接口能够使用flush信号来“重置”传输过程,即先前的传输都将会被抛弃。flush这个词有冲洗的意思,在这里十分形象,不论在“管道”中有多少等待读取的数据,一接到“冲洗”指令则什么都不管直接将这些数据清除。一旦flush被置位后,主接口能够重新开始读取传输。下图为流传输的时序图。

【Avalon总线】2.avalon总线MM主设备

图2 主设备流传输时序图

 

1.4 主接口突发传输

       一旦主从接口开始突发传输,那么从接口在突发传输结束前将不能被其他主接口访问。支持突发传输的主接口需要支持流传输。burstcount信号表示了突发传输的长度。主接口只给一次地址,其余地址由从借口进行推算。突发传输只有完成了规定次数的传输才能够停止。

1.4.1 主接口突发写传输

       主接口需要给address,writedata,write,byteenable和burstcount信号来开始突发写传输。writedata信号在在第一个时钟上升沿被获取。在整个传输过程中需要保持address和burstcount信号不变

       主接口突发写传输遵循如下约定:

1) 可以通过write信号来暂停读传输。

2) 当waitrequest信号被置位时,主接口需要保持address,writedata,write和byteenable不变。

主接口突发写传输的时序图如图所示。

【Avalon总线】2.avalon总线MM主设备

图3 主接口突发写传输时序图

 

1.4.2主接口突发读传输

       主接口突发读传输是流传输的一种形式。主接口需要给address,read和burstcount信号来开始突发读传输。当waitrequest信号无效时,地址读写结束。传输过程中,readdatavalid信号可以暂停传输。主接口没法停止突发读传输过程。主接口突发读传输遵循如下约定:

1) 与流传输不同的是flush信号无效(即不会清除为完成的传输)。

2) 在readdatavalid置位时,主接口需要读取readdata。

3) 在读写地址时,byteenable信号需保持不变。

主接口突发读传输的时序图如图所示。

【Avalon总线】2.avalon总线MM主设备

图4 主接口突发读传输时序图

       从图中可以看出与写传输不同的是address和burstcount信号不需要在整个传输过程中保持不变。