реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> делаю контроллер DDR, новичок, прошу помочь советом
Farsch
сообщение Nov 8 2010, 09:59
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 2-11-10
Из: СПб
Пользователь №: 60 600



в наличие имеется: плата с Cyclone III, двумя чипами DDR SAMSUNG EP3C16F484C7N, два кварца, на 27 и 66 МГц, для SDI и DDR соответственно. задача стоит - сделать так чтобы Альтера закидывала 10-разрядное видео в DDR и, накопив несколько кадров, начинала выдавать обратно в ПЛИС, а там уже преобразуется обратно в последовательный поток...

сам я не являюсь опытным разработчиком, но мне помогли, дали код, где человек делал контроллер DDR в связке с общением устройства по PCI (использовалась эта же плата с разводкой).

Буду крайне признателен, если кто-то знающий и добрый поможет определиться хотя бы с первыми вопросами издалека, для начала.

  • где можно в подробностях узнать алгоритм обращения к ддр-памяти со стороны контроллера? допустим, у меня есть блок инициализации моей ДДР. как мне организовать конвейер загрузки-выгрузки слов, чтобы от меня только требовалось следить за указателем памяти например?
  • на что влияет величина BURST LENGTH? уважаемый разработчик, с чьим кодом я разбираюсь, пользовался B.Length=1, встречал в проектах и 2. какой смысл, если можно по 4 и даже 8? объясните, пожалуйста. ведь, как я понял, у каждого BURST приамбула и постамбула занимают полезное время
  • есть ли какие-то открытые контролееры, которые можно было бы почитать или дерзко поюзать? к сожалению, с налёта читаю только AHDL


Заранее благодарю.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Nov 8 2010, 10:08
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Farsch
1) в ДШ на мелкосхему памяти
2) BURST LENGTH - грубо говоря длинна загружаеммых данных, цифры (1/2...) варьируются в зависимости от DDR1/2/3
3) У альтры есть контроллеры, но нужна лицензия, а так советую пошариться на http://opencores.org там вроде есть безплатные
Go to the top of the page
 
+Quote Post
Farsch
сообщение Nov 8 2010, 10:26
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 2-11-10
Из: СПб
Пользователь №: 60 600



у меня тут непонимание происходит - в объяснении про Mode Register Fields для DDR SDRAM указано, что биты А0-А2 в MRS отвечают за установку длины этого самого BURST. как это понимать? там доступны 2, 4 и 8. а предыдущий программист вообще использовал 1. как так?
Go to the top of the page
 
+Quote Post
Gothard
сообщение Nov 8 2010, 10:54
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 16-02-07
Из: Долгопрудный
Пользователь №: 25 406



Цитата(Farsch @ Nov 8 2010, 13:26) *
у меня тут непонимание происходит - в объяснении про Mode Register Fields для DDR SDRAM указано, что биты А0-А2 в MRS отвечают за установку длины этого самого BURST. как это понимать? там доступны 2, 4 и 8. а предыдущий программист вообще использовал 1. как так?

что значит 1? если грузил в [2:0] значение "001" то это соответствует длине 2. Учите матчасть

а насчет влияния величины BURST_LENGTH - то в общем зависит от характера обмена с памятью. Если требуется гонять большие объемы, а не произвольно раскидывать по байту внутри ОДНОЙ СТРОКИ (ROW т.е.), то оптимальнее выбрать длину 8 слов - накладные расходы протокола интерфейса с памятью практически скроются.

Сообщение отредактировал Gothard - Nov 8 2010, 10:56
Go to the top of the page
 
+Quote Post
Farsch
сообщение Nov 8 2010, 11:13
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 2-11-10
Из: СПб
Пользователь №: 60 600



так, это понял. уважаемые, подскажите - а кроме даташита есть источники где можно узнать непосредственно про цикл записи/чтения? из чего он состоит, как переключаться..
Go to the top of the page
 
+Quote Post
Gothard
сообщение Nov 8 2010, 11:43
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 16-02-07
Из: Долгопрудный
Пользователь №: 25 406



Цитата(Farsch @ Nov 8 2010, 14:13) *
так, это понял. уважаемые, подскажите - а кроме даташита есть источники где можно узнать непосредственно про цикл записи/чтения? из чего он состоит, как переключаться..

А чего вам непонятно? Есть два документа которых мне хватило с головой - спецификация JEDEC (тут http://www.jedec.org/sites/default/files/docs/JESD79F.pdf) и даташит на любую микроновскую микросхему памяти (там картинки по-красивее smile.gif).
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Nov 8 2010, 12:53
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(Farsch @ Nov 8 2010, 14:13) *
...где можно узнать непосредственно про цикл записи/чтения? из чего он состоит, как переключаться..

Посмотрите страницу Дмитрия Иоффе "Описание работы SDRAM от фирмы Micron ":
http://www.dsioffe.narod.ru/mysdram/MyMicronSDRAM.htm

еще полезности
http://www.dsioffe.narod.ru/stuff/stuff.htm#datasheets
Go to the top of the page
 
+Quote Post
Farsch
сообщение Nov 8 2010, 14:35
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 2-11-10
Из: СПб
Пользователь №: 60 600



Gothard, благодарю за помощь!!!

Serhiy_UA, очень признателен за ссыль, люблю такие сайты)))
Go to the top of the page
 
+Quote Post
Farsch
сообщение Nov 9 2010, 11:36
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 2-11-10
Из: СПб
Пользователь №: 60 600



Всё-таки непонимание относительно BURST LENGTH осталось. если у меня входной поток данных непрерывный и мне постоянно нужно повторять цикл закидывания нового пакета данных в память, то мне выгоднее будет использовать длинные пакеты, правильно я понимаю?

заранее благодарен
Go to the top of the page
 
+Quote Post
Gothard
сообщение Nov 9 2010, 11:52
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 16-02-07
Из: Долгопрудный
Пользователь №: 25 406



Цитата(Farsch @ Nov 9 2010, 14:36) *
Всё-таки непонимание относительно BURST LENGTH осталось. если у меня входной поток данных непрерывный и мне постоянно нужно повторять цикл закидывания нового пакета данных в память, то мне выгоднее будет использовать длинные пакеты, правильно я понимаю?

заранее благодарен

Да - в таком случае выгодно длинные пакеты. (Я так понимаю, что короткие вообще используются в очень специфических случаях).
Просто сначала копите данных на пакет и потом шлете их все залпом.
За одну операцию чтения соответственно вычитывается вся пачка целиком.
Go to the top of the page
 
+Quote Post
Farsch
сообщение Nov 12 2010, 11:16
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 2-11-10
Из: СПб
Пользователь №: 60 600



Уважаемые! а задержку tDQSS между WRITE и началом BURST я сам выбиравть волен из диапазона приведённого в спецификации ДДР? там от 0.7 клока до 1.2. так могу ли я выбрать номинальное значение 1 clk как в описании JEDEC?

и обязательно ли использовать DATA MASK (DM) signal?

Сообщение отредактировал Farsch - Nov 12 2010, 11:20
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 18:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01435 секунд с 7
ELECTRONIX ©2004-2016