Я застрял с этой проблемой уже месяц и не могу ее понять. У меня есть xilinx kc705 с 1 ГБ памяти, организованной как (128 МБ x 8), то есть один [R] анк из 8, 8-битных устройств. поэтому интерфейс памяти составляет 64 бита. Каждое устройство или чип имеет (128 МБ) и имеет 8 банков (16 МБ), каждый имеет 14 [R] потоков и 10 [C] столбцов. как на картинке ниже: таким образом, существует 8 чипов.
организация памяти
Объем памяти равен 8. Когда я использую vivado для генерации MIG, он производит Пользовательский интерфейс с 28-разрядной шириной адреса и 512-разрядной шириной данных.
в ширине адреса документации MIG: Ранжирование + Банк + Строка + Столбец = 1 + 3 + 14 + 10 = 28 бит. (B = 3, так как в каждом устройстве по 8 банков).
Мои вопросы: 1 - поскольку объем памяти равен 8, когда я предоставляю один адрес одной командой (запись или чтение) в пользовательском интерфейсе сторона, MIG будет выдавать 8 команд в сторону ddr3, поэтому ширина данных составляет 512 бит (64 * 8 = 512) ПРАВИЛЬНО ЛИ ЭТО ПОНИМАНИЕ?
2 - В 28-битном адресе каждый адрес соответствует 1-байтовому, 8-байтовому (64-битному) или 64-байтовому (512-битному) и как мне увеличить его для достижения следующего местоположения?
Насколько я понимаю, каждому адресу соответствует 1 байт, хотя ширина данных ddr3 составляет 64 бита, и это потому, что имеется 8 чипов, и все получают один и тот же адрес, но каждый получает 8-битную часть 64-битный. и когда каждый из чипов выполняет 8-разрядную передачу, выполняется 512-битная передача. поэтому я запутался в том, как увеличить адрес.
, должно ли оно быть увеличено на 8, так как оно соответствует 1 байту и 8 байтов записано на каждый чип?
или
должно быть увеличено на 64, поскольку в ddr3 записано 64 байта?