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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Ядро DDR SDRAM, Посоветуйте ядро
AlphaMil
сообщение Dec 25 2010, 18:12
Сообщение #1


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

Группа: Участник
Сообщений: 135
Регистрация: 1-01-10
Из: Минск, Беларусь
Пользователь №: 54 588



Замучился и запутался в бурстах, авторефреше и т.д. Очень сложно увязать все с адресацией и данными. Устал тыркаться сам.
Посоветуйте ядро...
Проект такой: два буффера строк изображения поочередно заполняются и должны поочередно скидываться в DDR. Одновременно с этим из DDR читаются данные и пишется результат (вобщем обработка изображений).
Go to the top of the page
 
+Quote Post
Methane
сообщение Dec 25 2010, 18:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(AlphaMil @ Dec 25 2010, 23:12) *
Замучился и запутался в бурстах, авторефреше и т.д. Очень сложно увязать все с адресацией и данными. Устал тыркаться сам.
Посоветуйте ядро...
Проект такой: два буффера строк изображения поочередно заполняются и должны поочередно скидываться в DDR. Одновременно с этим из DDR читаются данные и пишется результат (вобщем обработка изображений).

Я работал с SDRовским Альтеровским ядром. Чтобы не путаться, очень рекомендую моделсимом пользоваться. Гораздо все проще и быстрее получается. Модели брал на сайхтах производителя.
Go to the top of the page
 
+Quote Post
AlphaMil
сообщение Dec 26 2010, 04:56
Сообщение #3


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

Группа: Участник
Сообщений: 135
Регистрация: 1-01-10
Из: Минск, Беларусь
Пользователь №: 54 588



Цитата(Methane @ Dec 25 2010, 23:54) *
Я работал с SDRовским Альтеровским ядром. Чтобы не путаться, очень рекомендую моделсимом пользоваться. Гораздо все проще и быстрее получается. Модели брал на сайхтах производителя.

Ч пользуюсь моделсимом, но управлять ядром надо же... Как Вы управляете? С помощью FSM? Мне сложно увязать бурсты, авторефреш и адресацию.
Go to the top of the page
 
+Quote Post
Methane
сообщение Dec 26 2010, 05:02
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(AlphaMil @ Dec 26 2010, 09:56) *
Ч пользуюсь моделсимом, но управлять ядром надо же... Как Вы управляете? С помощью FSM? Мне сложно увязать бурсты, авторефреш и адресацию.

Я просто корку взял, дальше оно рефрешем само занималось. Бурсты я одинакогой длинны использовал, в страницу целиком.
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Dec 26 2010, 05:32
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



А стандартной что, нету?
Какое семейство микросхем?
Go to the top of the page
 
+Quote Post
AlphaMil
сообщение Dec 26 2010, 14:32
Сообщение #6


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

Группа: Участник
Сообщений: 135
Регистрация: 1-01-10
Из: Минск, Беларусь
Пользователь №: 54 588



Использую корку, сгенерированную MIG-ом для Spartan-3E. Как раз это стандартное ядро и есть (ессесно не аппаратное ядро). Вот оно и требует при установке сигнала необходимости авторефреша закончить текущий бурст и ждать сигнала окончания авторефреша. При этом трудно (надеюсь только мне) увязать адресацию (сброс адреса или приостановка его инкремента).
Подскажите, что значит бурст длиной в страницу? Я вроде везде читал, что бурст может быть длиной 2, 4 или 8????
Сейчас есть уже мысль использовать три FSM для сигналов управления, для установки и снятия команд и общий автомат, отвечающий за выполняемую операция на уровне буффера (про буфферы выше писал).
Go to the top of the page
 
+Quote Post
Methane
сообщение Dec 26 2010, 14:42
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(AlphaMil @ Dec 26 2010, 19:32) *
Использую корку, сгенерированную MIG-ом для Spartan-3E. Как раз это стандартное ядро и есть (ессесно не аппаратное ядро). Вот оно и требует при установке сигнала необходимости авторефреша закончить текущий бурст и ждать сигнала окончания авторефреша. При этом трудно (надеюсь только мне) увязать адресацию (сброс адреса или приостановка его инкремента).

Вы закончили бруст. Смотрите на флаг авторефреша. Если 1, то ничего не делаете. Если (на очередном такте) там 0, то начинаете новый бруст.


Цитата
Подскажите, что значит бурст длиной в страницу? Я вроде везде читал, что бурст может быть длиной 2, 4 или 8????

Деградация общего интеллектуального развития.... Раньше можно было поставить начало страницы и вычитать ее всю. Самый наибыстрый режим был.

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


Делайте все на satate -машинах.
posedge.....

case(state)
IDLE: begin end
PREPARE_BURST: begin end
GET_DATA_FROM_BURST: begin.... end
WAIT_REFRESH_PROCESSIGNG: ..
....
...
..

endcase

Go to the top of the page
 
+Quote Post
AlphaMil
сообщение Dec 26 2010, 14:50
Сообщение #8


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

Группа: Участник
Сообщений: 135
Регистрация: 1-01-10
Из: Минск, Беларусь
Пользователь №: 54 588



Цитата(Methane @ Dec 26 2010, 19:42) *
Деградация общего интеллектуального развития.... Раньше можно было поставить начало страницы и вычитать ее всю. Самый наибыстрый режим был.


case(Это Вы про мое интеллектуальное развитие?)
ДА: begin ОСКОРБЛЕНИЕ end
НЕТ: begin NOP end
endcase

Вы под страницей понимаете банк? И если раньше можно было, то как сейчас с этим?
Go to the top of the page
 
+Quote Post
Methane
сообщение Dec 26 2010, 14:54
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(AlphaMil @ Dec 26 2010, 19:50) *
case(Это Вы про мое интеллектуальное развитие?)
ДА: begin ОСКОРБЛЕНИЕ end
НЕТ: begin NOP end
endcase

Я про вселенную. Она расширяется а кол-во интеллекта остается прежним.

Цитата
Вы под страницей понимаете банк? И если раньше можно было, то как сейчас с этим?

ХЕЗ, Page называлось. В зависимости от битности оно было или 1024, или там 512 слов.
Go to the top of the page
 
+Quote Post
Sergey_Bekrenyov
сообщение Jan 4 2011, 16:23
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599



Пользовал Mig в Виртекс-4. Не обращал ровно никакого внимания на рефреши и прочие заморочки. Страничная запись не нужна - Mig умеет склеивать burst'ы при наличии данных в FIFO. Работал кстати тоже с изображением
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Jan 6 2011, 11:48
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(AlphaMil @ Dec 26 2010, 00:12) *
Замучился и запутался...

Так вроде в MIG-е только данные надо засовывать/забирать по готовности... ну и окончания инициализации дождаться после POR-а. В чём мука-то?

А... Spartan3... тогда да... советую перейти на Virtex4 и далее, там всё именно так просто, как я описал. sm.gif

Сообщение отредактировал o_khavin - Jan 6 2011, 12:24
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Jan 8 2011, 09:17
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(o_khavin @ Jan 6 2011, 20:48) *
Так вроде в MIG-е только данные надо засовывать/забирать по готовности... ну и окончания инициализации дождаться после POR-а. В чём мука-то?

А... Spartan3... тогда да... советую перейти на Virtex4 и далее, там всё именно так просто, как я описал. sm.gif

Возня с авторефрешем - это конкретная фича реализации MIG под Spartan3.
Для виртексов таких заморочек нет.
У Xilinx есть и другой вариант контроллера памяти - MPMC.
Он входит в состав EDK, однако эго можно использовать и отдельно.
Главное отличиче от MIG - встроенная конфигурируемая "многопортовость".
Рано или поздно перед автором встанет такая проблема. Городить самодельные арбитры в наше время уже наверное
смысла не имеет, а в этом контроллере всё уже реализовано. Есть и некоторые недостатки - уж больно он до BRAMок прожорлив.
Но за всё в этой жизни, как известно, приходится платить...
Go to the top of the page
 
+Quote Post
AlphaMil
сообщение Jan 8 2011, 09:57
Сообщение #13


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

Группа: Участник
Сообщений: 135
Регистрация: 1-01-10
Из: Минск, Беларусь
Пользователь №: 54 588



Spartan-3 использую для снижения цены конечного устройства. Конечно, можно было бы использовать и Spartan-6 и Virtex какой-нибудь, но это путь западных разработчиков. Я пока верю, что мы способны победить по-другому... Практически все получилось. Использую три машины состояний. Сейчас работают восемь каналов записи/чтения. Разумеется используется буферизация. Сейчас ядро оптимизировано для записи/чтения больших последовательных блоков данных. Как все окончательно запущу - отпишусь.
Go to the top of the page
 
+Quote Post
AlphaMil
сообщение Jan 12 2011, 16:38
Сообщение #14


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

Группа: Участник
Сообщений: 135
Регистрация: 1-01-10
Из: Минск, Беларусь
Пользователь №: 54 588



Народ... Пытаюсь запустить получившийся контроллер в девайсе. Пока не получилось. Подскажите, насколько кретичны констрейны, генерируемые MIG-ом? По констрейнам, задаваемым на клоки все бъет. Но вот от памяти по моим представлениям ничего не приходит... Пока работаю без программатора, поэтому только догадки...
В силу того, что работаю с изображениями "ничего не приходит" выглядит полностью черной картинкой. Если напрямую - без памяти, то проблем нет....
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Jan 12 2011, 18:03
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Генерируемые MIG-ом конктрейны:
1. важны;
2. не должны быть проигнорированы по какой-либо причине;
3. не достаточны при смене размещения выводов, так как не покрывают пару критических сигналов, но при предлагаемой ядром конфигурации выводов само собой получается выполнение времянок.

Советую помоделировать после place&route с подключенным SDF-файлом и моделью памяти с сайта производителя.
Для spartan3 ядро написано с парой неприятных моментов из-за которых во-первых, не всегда корректно работает функциональная симуляция, во-вторых, быстрый клок используется как данные. Когда я ел свою собаку, то тупо переписал эти места в своем стиле.
И еще важно прочитать список чего там не работает в этом ядре в разныч версиях, он там пополняется понемногу.
Go to the top of the page
 
+Quote Post

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

 


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


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