Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DDR2 и HPCII
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
nmurzin
Здравствуйте.

Делаю общение с DDR2 на Cyclon3.

Создаю HPC2 мегафункцию, смотрю настройки.


На первой вкладке визарда есть кнопочка <<Modify Parameters>> которая открывает диалог <<Preset Editor>>
В этом диалоге показана таблица с параметрами памяти и там присутствует параметр Memory burst length.

Для HPC2 мегафункции этот Memory burst length может быть равен только 4.

На последней вкладке визарда есть параметр Local Maximum Burst Count.
Local Maximum Burst Count рекомендовано ставить равным 64.

Кто такие Memory burst length и Local Maximum Burst Count ?
Как они между собой соотносятся ?
Cordroy
Цитата(nmurzin @ Feb 7 2011, 17:09) *
Кто такие Memory burst length и Local Maximum Burst Count ?
Как они между собой соотносятся ?


Memory burst - это сколько слов передаются подряд на шине памяти, физической, к чипу памяти; считая подьем и спад клока.

Local Maximum Burst Count - это сколько слов подряд (без пропусков) вы можете передать из своей логики (со своим клоком) в контроллер памяти (чтобы он потом их ресинхронизовал и отправил в чип памяти).
Значение зависит от глубины буффера контроллера, который синхронизирует локальное обращение (из логики) к частоте внешней шины (частота клока чипа памяти).
nmurzin
Правильно ли я понял, что прочитать из памяти например целиком строку
за одну транзакцию невозможно ?
Cordroy
Цитата(nmurzin @ Feb 8 2011, 10:29) *
Правильно ли я понял, что прочитать из памяти например целиком строку
за одну транзакцию невозможно ?


Прочитать "как есть", целиком - нельзя, потому как после команд чтения память требует precharge на тот же банк откуда было чтение.
см.:
датащит Микрона , страница 89 и далее.

Но можно перемежать банки и делать precharge заранее на следующий банк, читая из текущего - получаем непрерывный burst, вплоть до какого-нибудь глобального события (запись или рефреш на всю память).

см. также:
страница Вики о DRAM.

В принципе, всем этим должен заниматься низкоуровневый контроллер (тот же HPC2).
На верхнем, локальном, уровне важно только стараться не делать коротких транзакций - т.е. если читать откуда-то, то много.
nmurzin
Кажется понял.

В DataSheet на временной диаграмме записи они дергают burstbegin
через каждые два слова двойной разрядности.
В результате за один строб burstbegin чипу памяти будет передано 4 слова.
Наверное эти 4 слова и есть Memory burst length.

Те Memory burst length = 4 означает, что я должен дергать burstbegin через каждые два слова двойной разрядности.
Значит значение сигнала local_size всегда должно быть равно 2.

Но ведь мне ни кто не запрещает дергать burstbegin столько раз сколько мне нужно,
судя по временной диаграмме обмен с памятью в этом случае будет не прерывным,
а длина этого обмена будет гораздо болше чем 4.
Cordroy
Цитата(nmurzin @ Feb 8 2011, 11:18) *
Те Memory burst length = 4 означает, что я должен дергать burstbegin через каждые два слова двойной разрядности.
Значит значение сигнала local_size всегда должно быть равно 2.


Да; зависит еще от типа контроллера: Full / Half.

Цитата(nmurzin @ Feb 8 2011, 11:18) *
Но ведь мне ни кто не запрещает дергать burstbegin столько раз сколько мне нужно,
судя по временной диаграмме обмен с памятью в этом случае будет не прерывным,
а длина этого обмена будет гораздо болше чем 4.


Да, непрерывным (до рефреша) - при обращении к последовательным адресам.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.