【发布时间】:2020-05-09 16:37:54
【问题描述】:
我已经被这个问题困扰了一个月了,我无法理解它。 我有 xilinx kc705,它有一个 1GB 内存,组织为 (128 MB x 8),它是 8 个 8 位设备的 [R]ank。所以内存接口是64位的。每个设备或芯片为 (128 MB) 并具有 8 个存储库 (16 MB),每个存储库具有 14 [R] 行和 10 [C] 列。如下图:所以这个芯片有8个。
内存突发为 8。 当我使用 vivado 生成 MIG 时,它会生成一个 28 位地址宽度和 512 位数据宽度的用户界面。
在 MIG 文档中地址宽度为:Rank+Bank+Row+Column = 1+3+14+10 = 28 bits。 (B=3,因为每个设备中有 8 个库)。
我的问题是: 1-由于内存突发为8,当我在用户界面侧提供一个地址和一个命令(写入或读取)时,MIG将向ddr3发出8个命令,这就是数据宽度为512位(64位)的原因*8=512) 这样理解正确吗?
2- 在 28 位地址中,每个地址对应 1 字节、8 字节(64 位)还是 64 字节(512 位)以及如何增加它以达到下一个地点?
我的理解是,即使 ddr3 数据宽度是 64 位,每个地址对应 1 个字节,那是因为有 8 个芯片并且都获得相同的地址,但每个都获得 64 位的 8 位部分.当每个芯片执行 8 个突发时,就完成了 512 位传输。所以我对如何增加地址感到困惑。
对应1个字节,每个芯片写入8个字节,是不是应该加8?
或
是否应该增加 64,因为总共 64 个字节已写入 ddr3?
【问题讨论】:
标签: memory fpga ram memory-address xilinx