我在 ARM 的 AHB 规范中看到了这张图片。这基本上是我们如何使用 AHB 结构与更窄的从站连接的示例。在这里,我无法理解 haddr[2] 作为多路复用器选择的用法。该位将如何帮助我们确定是否需要选择数据总线的上半部分或下半部分。请帮助我理解这一点。
问问题
72 次
1 回答
0
Define: Quadword=QW=a 64-bit word.
Define: Dword=DW=a 32-bit word.
Define: Byte= an 8-bit word.
地址总线 HADDR[] 指的是字节。
地址 0 指的是字节 0,地址 1 指的是字节 1,...
内存是 64 位的,因此地址的 3 个最低有效位对于 64 位宽的内存没有意义。
0-7 之间的任何地址都会从内存中产生第一个 QW。
8-15 中的任何地址都会从内存中产生第二个 QW。
...
如何读取内存以方便从 64->32 位转换的示例。
首先,在第一个时钟周期内用地址 0 驱动内存,内存将呈现第一个 QW,地址 [2] 将为 0,因此第一个 QW 的低 DW (data[31:0]) 将被选择多路复用器。
其次,在第二个时钟周期内用地址 4 驱动内存,内存将继续呈现第一个 QW,地址 [2] 将为 1,因此将选择第一个 QW 的高 DW(数据 [63:32])由多路复用器。
第三,在第三个时钟周期用地址 8 驱动内存,内存将呈现第二个 QW,地址[2]将为 0,因此第二个 QW 的低 DW (data[31:0]) 将被选择多路复用器。
重复该模式,每个时钟将地址增加 4 以读取 64 位存储器并使用所示电路转换为 32 位。
于 2021-07-19T23:26:50.410 回答