广告

Avalon Memory-Mapped Interfaces的寻址

2010-8-10 12:45 2403 0 分类: FPGA/CPLD

Avalon Memory-Mapped Interfaces的寻址


关于Avalon Memory-Mapped Interfaces的地址对齐,在《Avalon Interface Specifications.pdf》 中的3.6 Avalon Memory-Mapped Interfaces有一些简单的描述:


1.  主机比从机数据位宽大的情况下,主机会多次映射从机地址空间。例如,对于一个32位的主机需要读一个16位的从机端口,主机会连续两次读取从机连续地址空间的数据,从而获得32位的数据。


2.  主机比从机数据位宽小的情况下,主机使用从机低字节端的数据。主机写传输时,系统互连逻辑置位byteenable信号,使得数据写入相应地址空间。


在实际的应用中,外挂一个Avalon Memory-Mapped Slave Interfaces时,如果这个slave与master(主要指NIOS2处理器)的位宽不匹配,这个地址线的连接又是怎么回事呢?


例如下图中的Ethernet从机数据位宽为16,而主机位宽为32,在从机一端连接的地址线是A[10:0]即11位,而在主机一端连接的数据位宽为addr[11:1]也是11位,既然都是11位,为什么不都写成常见的[10:0]?实际的数据量到底是2048*32bit还是2048*16bit呢?另外,如果使用正常的IOWR_16DIRECT(BASE, OFFSET, DATA)函数来寻址这个Ethernet从机,其中的OFFSET到底是表示8位数据的地址偏移还是32位数据的地址偏移,或者说是16位数据的地址偏移呢?


 7f14161e-b87c-4916-8f14-5c01669296cf.JPG



    其实,特权同学是带着这些疑问来研究这个Avalon Memory-Mapped Interfaces的。如果翻阅一些官方的handbook,再有一些思考(将上述问题全都放到一块观察和比对)和尝试(板级调试,哈哈,必须有能跑NIOS2的板子哦),上面这些问题并不难解决。


    首先需要明确一个概念,就是NIOS2处理器的地址分配都是以字节(即8bit)为单位计算的。它的总的寻址空间是2的32次方个字节,表示为ADDR[31:0];换算成16位宽数据则寻址空间是2的31次方,习惯上表示为ADDR[31:1];换算成32位宽数据则寻址空间是2的30次方,习惯上表示为ADDR[31:2]。因此,上面提到的addr[11:1]也不是平白无故的出现的,它代表了2的10次方的16位数据寻址空间。下一个问题的答案也浮出水面:这里的数据量是2048*16bit。需要强调的一点是,在Avalon Memory-Mapped Slave于Master连接的时候,其地址是以主从机连接的数据位宽(比如这个例子的数据位宽是16)为单位寻址的。


    再来看下一个问题,也是特权同学曾经比较困惑的问题。IOWR_16DIRECT(BASE, OFFSET, DATA)函数表示写16位数据到基址为BASE、地址偏移量为OFFSET的地址空间。NIOS2处理器的基址是以8bit为单位寻址的,这一点毋庸置疑。那么由于前面地址问题的困扰,特权同学比较纳闷的是OFFSET也是以8bit为单位吗?还是以这里的写入数据位宽16bit为单位?实践证明,“NIOS2处理器的地址是以8bit为单位寻址”这句话还是适用的,这里的OFFSET也是以8bit为单位寻址。因此,就出现了动态寻址和静态寻址的概念,本文开始引用handbook的一些描述说的就是动态地址对齐的基本思路。因此,设计者必须注意的是在寻址非8bit数据位宽的时候,地址偏移量的计算必须纳入寻址的考虑之中。例如本例是16bit数据写入,如果要最小地址遍历写数据,写入第一个数据是IOWR_16DIRECT(BASE, 0, DATA),那么第二个数据就应该是IOWR_16DIRECT(BASE, 2, DATA)。24bit、32bit的都是类似的。

广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
ilove314_323192455 2016-06-30 21:16
例说FPGA连载6:FPGA开发所需的技能
例说FPGA连载6:FPGA开发所需的技能 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   前面的文字已经做了很多铺垫,相信读...
ilove314_323192455 2016-06-28 21:09
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
ilove314_323192455 2016-06-28 21:05
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
ilove314_323192455 2016-06-26 22:11
例说FPGA连载4:FPGA语言与厂商介绍
例说FPGA连载4:FPGA语言与厂商介绍 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   Verilog与VHDL 说到FP...
ilove314_323192455 2016-06-23 21:26
例说FPGA连载3:FPGA与其它主流芯片的比较
例说FPGA连载3:FPGA与其它主流芯片的比较 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   FPGA、ASIC和ASSP...
ilove314_323192455 2016-06-21 20:32
例说FPGA连载2:FPGA是什么
例说FPGA连载2:FPGA是什么 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   2015年伊始,Intel欲出资百亿美金收...
我要评论
0
0
广告