您的位置:首页 > 移动开发 > IOS开发

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

2018-01-15 21:17 176 查看
这节的内容比较少

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信号被置位。



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

1.3 主接口流读传输

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

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

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



图2 主设备流传输时序图
 

1.4 主接口突发传输

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

1.4.1 主接口突发写传输

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

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

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

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

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



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

1.4.2主接口突发读传输

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

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

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

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

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



图4 主接口突发读传输时序图
       从图中可以看出与写传输不同的是address和burstcount信号不需要在整个传输过程中保持不变。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  FPGA NIOSII