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

 
 
 
Reply to this topicStart new topic
> SDRAM через Avalon, Как ускорить?
RHnd
сообщение Apr 8 2008, 09:22
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Делаю модуль. Модуль должен читать данные из сдрам (стандартный контроллер сопс) и их обрабатывать. Данные читаются не подряд, а выбираются по определенному алгоритму из всего кадра. Делаю так: взвожу m_read в единицу, меняю m_address, жду спадания m_waitrequest и читаю данные. Так вот, как показал сигналтаб, после каждого изменения адреса m_waitrequest взводится тактов на 20. sad.gif Как можно убыстрить этот процесс? Память 16-ти битная, шина авалона - 32 бита.
Go to the top of the page
 
+Quote Post
des00
сообщение Apr 8 2008, 09:45
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(RHnd @ Apr 8 2008, 04:22) *
Делаю модуль. Модуль должен читать данные из сдрам (стандартный контроллер сопс) и их обрабатывать. Данные читаются не подряд, а выбираются по определенному алгоритму из всего кадра. Делаю так: взвожу m_read в единицу, меняю m_address, жду спадания m_waitrequest и читаю данные. Так вот, как показал сигналтаб, после каждого изменения адреса m_waitrequest взводится тактов на 20. sad.gif Как можно убыстрить этот процесс? Память 16-ти битная, шина авалона - 32 бита.


кхм, не вижу ничего удивительного. Если контроллер простой, адрес летит как попало, да еще и чтение одиночное, тактовая высокая, то :

открыть банк 3-4 такта, прочитать 1 слово, вставить выравнивающие нопы, выждать латентность 3 такта, закрыть банк 3-4такта. ну + еше латентность обработки контроллера и тактов 12-14 наберется в лет %))

Почитайте принципы работы сдрам памяти, многие вопросы отпадут сами собой.


--------------------
Go to the top of the page
 
+Quote Post
RHnd
сообщение Apr 8 2008, 12:08
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Блин, чего же делать. sad.gif Т.е. по ТЗ и так сойдет, но для души хочется большего smile.gif На сколько реально запустить всю систему на 50MHz, а сдрам и контроллер сдрам - на 100MHz? Какие могут возникнуть проблемы? Для 50MHz в настройках pll стоит сдвиг тактовки на 3ns. А для 100 эта величина изменится?
Go to the top of the page
 
+Quote Post
des00
сообщение Apr 11 2008, 05:58
Сообщение #4


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(RHnd @ Apr 8 2008, 07:08) *
Блин, чего же делать. sad.gif Т.е. по ТЗ и так сойдет, но для души хочется большего smile.gif На сколько реально запустить всю систему на 50MHz, а сдрам и контроллер сдрам - на 100MHz? Какие могут возникнуть проблемы? Для 50MHz в настройках pll стоит сдвиг тактовки на 3ns. А для 100 эта величина изменится?


дак у вас сдрам работает на 50МГц ? тогда что то тут не так.
мои оценки были на 133МГц, там времянка доступа будет приблизительно
3(act) + 3(read + nop + nop) + 3(pre) + CL = 3,

а времянка доступа на 50МГц это где то
1(act)+2(read+nop)+1(pre) + CL = 1.
итого на чтение слова 5 тактов. куда у вас уходят еще 15 мне не понятно.

Память сконфигурирована на работу с burst_length == 1 ?
С памяти читает только 1 абонент ? с рефрешем нигде не напортачили ?

Сдвиг тактовой нужен для выполнения требований по tsu/th, я запускал память на 133МГц вообще без PLL.

А при высокой тактовой - использовать другой контроллер, задействовать бурст режимы и перекрывающиеся транзакции ( но в Avalon SF поддержки их вроде нет), правильно уложить данные.


Удачи.


--------------------
Go to the top of the page
 
+Quote Post

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

 


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


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