关于AVALON总线动态地址对齐

     
 在NIOS的运用中,大家反复要用到自定义外设,然后通过AVALON交流架构和NIOSII举办通信。 
 

       
AVALON总线,其实是一种交流架构的合计,在自定义外设挂在AVALON总线上时,一定要留意地址对齐。
  

       
AVALON总线要求自定义外设数据位宽必须为8、16、32,这样假若拔取位宽为32,那么就不需要考虑对齐了。 假诺选择数据位宽为8,也就是外设数据总线位宽是8,而NIOS

数量总线位宽是32,这样就要考虑地方对齐了。这一个地点对齐就是内存地址对齐。在NIOS写多少到从外设时,由于位宽不对等,NIOS会实施4次写操作,将一个32位数分成4个8位

数据写到从外设。NIOS读取从外设数据时同样道理,在读使能使得后的下一个时钟从外设必须将数据放到总线上,而且应当是4个数据,假若只有一个字节有效,其他3个字节补零

即可。       

       
举个例子,在QSYS下挂外设时,常常系统分配好了内存映射地址,比如0x3322,那么外设的地方就从此间开端,对于8位数据位宽,那么连续4个数据在内存中蕴藏的地方分

别是0x3322,0x3323,0x3320,0x3321,这一个是由内存决定的。调试过SDRAM的冤家应该领会。特别是NIOS读取外设数据的时候,很容易失误。比如当NIOS读数据时,外设的连日4个

多少是0xaa,0x00,0x00,0x00,也就是说只有0xaa是行得通的,那么按照上述地址,依据小端存储模式,地址对应的数额为0x3322->0xaa,0x3323->0x00,0x3320->0x00,0x3321-

>0x00,这样我们在NIOS中操作的时候,由于NIOS是32位的,地址对齐的是0x3320,所以就应运而生了读取数据的荒唐。 假设利用位宽是16位的,那么NIOS读写外设的时候会暴发两

次读写过程。同样和方面一样,也要留心地址对齐问题。

图片 1

转载请注脚出处:alifpga

原稿地址:bbs.alifpga.com

版权:卿萃科技