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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Контроллер SDRAM, Готовый?
RHnd
сообщение Apr 26 2007, 20:52
Сообщение #1


Знающий
****

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



Я вот думаю, где бы взять готовый контроллер SDRAM? Если кто-нибудь уже сталкивался, не поделитесь?

Кстати, пришла в голову мысля: А если в SOPC собрать ниос с контроллером SDRAM, а потом взять сгенерированный файл контроллера SDRAM, то в нем можно будет разобраться и засунуть в свой проет? Или наткнусь на какую-нибудь бяку?

То же самое и на сет flash-контроллера.

Сообщение отредактировал RHnd - Apr 26 2007, 21:19
Go to the top of the page
 
+Quote Post
vetal
сообщение Apr 26 2007, 21:59
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Сделайте мастера для шины авалон-мм и подключайте к своему устройству. Лишите жизни сразу двух зайцев: и настройки будут делаться в sopc builder и доп. компоненты можно будет повесить.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Apr 26 2007, 22:14
Сообщение #3


Знающий
****

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



Цитата(vetal @ Apr 26 2007, 22:59) *
Сделайте мастера для шины авалон-мм и подключайте к своему устройству.

спасибо. Пойду попробую. 6)

Так, отставить, не пойду. А где его создавать, этот мастер? В SOPC он только как элемент cpu есть. Его нужно самому писать? Как? Какие мануалы читать? Или я чего-то недопонял? Совсем запутался. sad.gif

Сообщение отредактировал RHnd - Apr 26 2007, 22:21
Go to the top of the page
 
+Quote Post
CodeWarrior1241
сообщение Apr 26 2007, 22:17
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 496
Регистрация: 14-03-07
Из: In The District
Пользователь №: 26 165



Цитата(RHnd @ Apr 26 2007, 13:52) *
Я вот думаю, где бы взять готовый контроллер SDRAM?

Если по кокой-то причине не хотите пользоватся SOPC Builder, у Altera есть reference design для моста между параллельным портом процессора и SDRAM тут. По предыдущим постом модератора я тоже взглянул на avalon bus master док, и дествительно все выглядит очен просто в выполнение, и есть бесплатная avalon slave -> SDRAM ядро... Когда я писал ядро для PC100 SDRAM interface в уневере для Xilinx, я долго мучался, а здесь с Altera все так просто, и есть исходник с simulink для моделированя. Действительно, для начинающего Altera кажется проще.


--------------------
In Mozilla, you keep tabs on your browser. In the USSR, your browser keeps tabs on you.
Go to the top of the page
 
+Quote Post
Пушкин
сообщение Apr 26 2007, 23:27
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 66
Регистрация: 3-03-07
Пользователь №: 25 835



Цитата(RHnd @ Apr 26 2007, 23:14) *
Так, отставить, не пойду. А где его создавать, этот мастер? В SOPC он только как элемент cpu есть. Его нужно самому писать? Как? Какие мануалы читать? Или я чего-то недопонял? Совсем запутался. sad.gif

Читайте это http://altera.com/literature/quartus2/lit-qts-sopc.jsp
И в частности это http://altera.com/literature/manual/mnl_avalon_spec.pdf про мастера для авалон мм
Все что нужно к сопк билдеру прикрутите, и сдрам контроллер готовый
Go to the top of the page
 
+Quote Post
RHnd
сообщение Apr 26 2007, 23:40
Сообщение #6


Знающий
****

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



Ситуация выглядит так: Со скоростью 5 МГц на 10 пинов поступаю пиксели картинки. Сама картинка около 3 мегапикселей. Эту картинку надо записать в память (SDRAM, как мне кажется, - лучший выбор. Я прав?), после чего ниос эту картинку из памяти читает, особым образом обрабатывает и записывает обратно (либо на то же место, либо рядом). После обработки эту картинку надо скинуть на SD. Для начала хотя бы в bmp виде, jpeg буду потом делать. Соответственно, стоит вопрос - как записать в память и как потом скинуть на карточку. Вопрос с карточкой буду решать позже - ниос это будет делать или внешняя схемка, сейчас думаю над записью в SDRAM. Варианта, как мне видится, два: написать модуль для SOPC, что-то типа фифо, к которому при определенном заполнении подключается DMA и гонит данные в память. Второй вариант - записать в память внешней схемкой, а по окончании записи подать сигнал ниосу и переключить память на него.
Так как я в гораздо большей степени программер, чем разработчик цифровых устройств, то мне все равно куда начинать тыкаться - один фик все придется с нуля изучать. Вот и хотелось бы услышать от более опытных людей - какой вариант предпочтительней?

Цитата(Пушкин @ Apr 27 2007, 00:27) *
Читайте это http://altera.com/literature/quartus2/lit-qts-sopc.jsp
И в частности это http://altera.com/literature/manual/mnl_avalon_spec.pdf про мастера для авалон мм
Все что нужно к сопк билдеру прикрутите, и сдрам контроллер готовый

Спасибо, это все пока в очереди на прочтение. В данный момент осваиваю verilog.
Прежде чем я вчитаюсь в эти мануалы, скажите, пожалуйста, правильно ли я понимаю, что создается какой-то модуль для сопк, который внутри сопк является авалон мастером/слейвом, и при этом наружу имеет какие-то входы-выходы для общения с логикой?
Вы уж извините, если надоел. smile.gif
Go to the top of the page
 
+Quote Post
Пушкин
сообщение Apr 26 2007, 23:51
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 66
Регистрация: 3-03-07
Пользователь №: 25 835



Ну да, примерно так.
Делайте модуль для сопк и не мучайтесь, так все намного проще чем кажется. На одни контакты адрес, на другие данные, на третьи влючить запись. Описал его в билдере и присобачил к шине, вот и все дела. А все это без сопк билдера сделать...это только для мазахистов или из-за каких то причин.

Сообщение отредактировал Пушкин - Apr 26 2007, 23:54
Go to the top of the page
 
+Quote Post
vetal
сообщение Apr 27 2007, 09:56
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



RHnd: первый вариант лучше. в этом случае надо будет делать только слейва.
Метод приема данный примерно следущий:
1. Копим данные в фифо.
2. по заполнению фифо вырабатываем прерывание.
3. перекачиваем дынные из фифо в озу(источник прерывания в модуле сбрасывается циклом чтения)
4. п.1
Go to the top of the page
 
+Quote Post
mikki
сообщение Apr 27 2007, 15:58
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 28-03-07
Пользователь №: 26 559



Может я и не втему , но неплохой контроллера сделал для ксилинкса некто D. Vanden Bout.
Рекомендую глянуть.http://www.xess.com/ho03000.html

А я тут благодаря ответам наших знатоков запустил конторллер на микроблэйзе.
Разместил вектора данных там и вроде фурычит. Спаибо нашим пацанам.
Go to the top of the page
 
+Quote Post
Пушкин
сообщение Apr 27 2007, 20:33
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 66
Регистрация: 3-03-07
Пользователь №: 25 835



Цитата(vetal @ Apr 27 2007, 10:56) *
RHnd: первый вариант лучше. в этом случае надо будет делать только слейва.
Метод приема данный примерно следущий:
1. Копим данные в фифо.
2. по заполнению фифо вырабатываем прерывание.
3. перекачиваем дынные из фифо в озу(источник прерывания в модуле сбрасывается циклом чтения)
4. п.1

А зачем прерывание?И куда оно идет то?
По-моему надо так...
1. Копим данные в фифо.
2. По достижению некоторого количества байт в фиво, начинаем писать в озу, а фифо параллельно получает еще данные(чтоб записать сразу несколько байт в сдрам, а не по одному, быстрее будет)
3. п.1
Go to the top of the page
 
+Quote Post
RHnd
сообщение Apr 27 2007, 23:41
Сообщение #11


Знающий
****

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



Цитата(Пушкин @ Apr 27 2007, 21:33) *
А зачем прерывание?И куда оно идет то?
По-моему надо так...
1. Копим данные в фифо.
2. По достижению некоторого количества байт в фиво, начинаем писать в озу, а фифо параллельно получает еще данные(чтоб записать сразу несколько байт в сдрам, а не по одному, быстрее будет)
3. п.1

Я ни в коем случае не отвечаю за Vetal, но мое видение таково: Там же в сопк еще и ниос соберется (он один фик нужен будет для оброаботки изображения), вот в ниос прерывание и поступит, а он по этому прерыванию активизирует dma.
С нетерпением жду ответа Vetal - интересно, правильно ли я идею уловил. smile.gif
Go to the top of the page
 
+Quote Post
vetal
сообщение Apr 27 2007, 23:59
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
А зачем прерывание?И куда оно идет то?

Цитата
Вопрос с карточкой буду решать позже - ниос это будет делать или внешняя схемка, сейчас думаю над записью в SDRAM.

Оно идет на то, что будет эти данные обрабатывать и записывать на SD.
В сопс билдере есть средства, позволяющие решить этот вопрос минимальными усилиями - контроллер ПДП(DMA)

Цитата
С нетерпением жду ответа Vetal - интересно, правильно ли я идею уловил.

Да, правильно. опередили немного)))
Go to the top of the page
 
+Quote Post
Пушкин
сообщение Apr 28 2007, 09:06
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 66
Регистрация: 3-03-07
Пользователь №: 25 835



У вас же вся картинка в фифо не влезет, а значит вырабатывать прерывание ниосу надо не каждый раз по заполнению фифо, а когда вся картинка будет записано в озу.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Apr 28 2007, 09:54
Сообщение #14


Знающий
****

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



Цитата(Пушкин @ Apr 28 2007, 10:06) *
У вас же вся картинка в фифо не влезет, а значит вырабатывать прерывание ниосу надо не каждый раз по заполнению фифо, а когда вся картинка будет записано в озу.

Так, теперь я снова запутался. После того, как фифо почти заполнится, но картинка пришла еще далеко не вся, нам нужно срочно информацию из фифо перекинуть в сдрам, а делать это лучше всего дма. Пока вроде все понятно. Далее: когда я читал Nios II Reference Manual и Altera: Embbeded Periphery, у меня сложилось ощущение, что подключить дма и настроить его можно только из ниоса. Соответственно, надо подавать прерывание ниосу, дабы он включал дма. Это так? Или дма можно задействовать каким-то другим способом? Или предлагается переписать фифо -> сдрам другим способом?
Go to the top of the page
 
+Quote Post
vetal
сообщение Apr 28 2007, 10:15
Сообщение #15


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
У вас же вся картинка в фифо не влезет, а значит вырабатывать прерывание ниосу надо не каждый раз по заполнению фифо, а когда вся картинка будет записано в озу.

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

Цитата
оответственно, надо подавать прерывание ниосу, дабы он включал дма. Это так?

Да,так. Это наиболее простой способ.

RHnd: нарисуйте на бумаге структурную схему. Вам станет намного проще понимать что должна будет делать ваша система.
Go to the top of the page
 
+Quote Post

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

 


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


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