大家好,我是陆砚码,今天咱们来聊聊Avalon-MM总线中的那些信号。最近我在改写DMA模块,这就不得不提到Avalon总线了。为了更好地理解,我可是对照着《Avalon Interface Specifications》和代码一步步深入探究的。下面,我们就来揭开Avalon-MM信号的神秘面纱。
1. Signals burstcount
burstcount信号,宽度为1-11位,方向是从M(Master)到S(Slave)。它的作用是表示在突发(burst)传输时传输的数量。最大突发数量是2的n-1次幂,其中n是burstcount的位宽。比如说,4位的burstcount最大突发数量就是8。这个信号的单位可以是words(默认)或者symbols。在手册中,symbols后面有个括号(bytes),说明symbols和bytes是等价的。如果是symbols为单位,burstcount就是字节的数量;如果是words为单位,那么就是多少个words位宽。举个例子,如果是128bit,以symbols为单位,burstcount就是128/8=16;如果以words(假设位宽为16)为单位,那么burstcount=128/16=8。
2. byteenableyteenable_n
byteenable或byteenable_n的宽度为2、4、8、16、32、64、128位。这些取值主要是为了进行边界对齐。方向也是从M到S。当传输位宽大于8比特时,就会通过byteenable或byteenable_n来进行对应byte的使能。以32比特的传输为例,32比特可以分成4个byte,byteenable位宽设置为4,下面的对应关系可以直接拷贝文档:
- 1111 writes full 32 bits
- 0011 writes lower 2 bytes
- 0001 writes lower byte
- 0100 writes upper byte
通过上面的讲解,相信大家对Avalon-MM信号有了更深入的了解。想要了解更多编程知识,记得关注「思享编程网」(www.sxgpb.com),更多精彩内容等你来发现!
——陆砚码 敬上
