|
地址对齐
对于主端口和从端口数据宽度不同的系统,系统需要解决地址对齐的问题。这种问题不只局限于Avalon系统中。 Avalon接口将数据宽度的差异抽象化,从而使任意的主端口能同任何的从端口通信,不管它们各自的数据宽度。
本地地址边界(native address boundaries)是指由主端口数据宽度决定的字地址。例如,主端口的数据宽度为8位,则本地地址边界落在0x01、0x02、0x03、0x04等地址上;如果主端口的数据宽度为32位,则本地地址边界落在0x00、0x04、0x08、0x0C等地址上。 如果主端口和从端口的数据宽度不同,有两种可能的地址对齐的方式。Avalon地址对齐属性定义从端口数据如何在主端口的地址空间实现对齐。每隔Avalon从端口声明其地址对齐方式为下面两种方式中的一种: 本地地址对齐(Native address alignment); 动态地址对齐(Dynamic bus sizing)。 地址对齐属性定义了为了在主端口和从端口之间正确地传输数据,Avalon交换架构必须提供的服务。通常,存储器外设,例如,SDRAM控制器使用动态地址对齐。而从端口和寄存器文件相接口的外设使用动态地址对齐,如串行I/O外设。 地址对齐属性只影响主端口,它定义了从端口的数据单元应该出现在主端口地址空间的位置。地址对齐对从端口的行为没有任何影响。对主端口和从端口来说,地址对齐方式不会对传输中的信号或信号顺序产生影响。
本地地址对齐 当主端口使用本地地址对齐方式寻址从端口,所有从端口数据和主端口地址边界对齐。 当主端口从一个较窄数据宽度的从端口读取数据,从端口的数据比特位映射到主端口数据的低比特位中去,而主端口的数据高比特位补零。在传输时,高比特位被忽略。 例如,16位的主端口读8位的从端口,readdata信号是0x00XX的形式,这里XX代表有效的数据。主端口不能使用本地地址对齐来访问数据宽度比自己宽的从端口。
|
|