|
Контроллер SDRAM, Готовый? |
|
|
|
Apr 26 2007, 22:17
|
Местный
  
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Apr 26 2007, 23:27
|
Участник

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

|
Цитата(RHnd @ Apr 26 2007, 23:14)  Так, отставить, не пойду. А где его создавать, этот мастер? В SOPC он только как элемент cpu есть. Его нужно самому писать? Как? Какие мануалы читать? Или я чего-то недопонял? Совсем запутался.  Читайте это http://altera.com/literature/quartus2/lit-qts-sopc.jspИ в частности это http://altera.com/literature/manual/mnl_avalon_spec.pdf про мастера для авалон мм Все что нужно к сопк билдеру прикрутите, и сдрам контроллер готовый
|
|
|
|
|
Apr 26 2007, 23:40
|
Знающий
   
Группа: Свой
Сообщений: 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. Прежде чем я вчитаюсь в эти мануалы, скажите, пожалуйста, правильно ли я понимаю, что создается какой-то модуль для сопк, который внутри сопк является авалон мастером/слейвом, и при этом наружу имеет какие-то входы-выходы для общения с логикой? Вы уж извините, если надоел.
|
|
|
|
|
Apr 26 2007, 23:51
|
Участник

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

|
Ну да, примерно так. Делайте модуль для сопк и не мучайтесь, так все намного проще чем кажется. На одни контакты адрес, на другие данные, на третьи влючить запись. Описал его в билдере и присобачил к шине, вот и все дела. А все это без сопк билдера сделать...это только для мазахистов или из-за каких то причин.
Сообщение отредактировал Пушкин - Apr 26 2007, 23:54
|
|
|
|
|
Apr 27 2007, 15:58
|
Участник

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

|
Может я и не втему , но неплохой контроллера сделал для ксилинкса некто D. Vanden Bout. Рекомендую глянуть.http://www.xess.com/ho03000.html
А я тут благодаря ответам наших знатоков запустил конторллер на микроблэйзе. Разместил вектора данных там и вроде фурычит. Спаибо нашим пацанам.
|
|
|
|
|
Apr 27 2007, 20:33
|
Участник

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

|
Цитата(vetal @ Apr 27 2007, 10:56)  RHnd: первый вариант лучше. в этом случае надо будет делать только слейва. Метод приема данный примерно следущий: 1. Копим данные в фифо. 2. по заполнению фифо вырабатываем прерывание. 3. перекачиваем дынные из фифо в озу(источник прерывания в модуле сбрасывается циклом чтения) 4. п.1 А зачем прерывание?И куда оно идет то? По-моему надо так... 1. Копим данные в фифо. 2. По достижению некоторого количества байт в фиво, начинаем писать в озу, а фифо параллельно получает еще данные(чтоб записать сразу несколько байт в сдрам, а не по одному, быстрее будет) 3. п.1
|
|
|
|
|
Apr 27 2007, 23:41
|
Знающий
   
Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997

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

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

|
Цитата А зачем прерывание?И куда оно идет то? Цитата Вопрос с карточкой буду решать позже - ниос это будет делать или внешняя схемка, сейчас думаю над записью в SDRAM. Оно идет на то, что будет эти данные обрабатывать и записывать на SD. В сопс билдере есть средства, позволяющие решить этот вопрос минимальными усилиями - контроллер ПДП(DMA) Цитата С нетерпением жду ответа Vetal - интересно, правильно ли я идею уловил. Да, правильно. опередили немного)))
|
|
|
|
|
Apr 28 2007, 09:06
|
Участник

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

|
У вас же вся картинка в фифо не влезет, а значит вырабатывать прерывание ниосу надо не каждый раз по заполнению фифо, а когда вся картинка будет записано в озу.
|
|
|
|
|
Apr 28 2007, 09:54
|
Знающий
   
Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997

|
Цитата(Пушкин @ Apr 28 2007, 10:06)  У вас же вся картинка в фифо не влезет, а значит вырабатывать прерывание ниосу надо не каждый раз по заполнению фифо, а когда вся картинка будет записано в озу. Так, теперь я снова запутался. После того, как фифо почти заполнится, но картинка пришла еще далеко не вся, нам нужно срочно информацию из фифо перекинуть в сдрам, а делать это лучше всего дма. Пока вроде все понятно. Далее: когда я читал Nios II Reference Manual и Altera: Embbeded Periphery, у меня сложилось ощущение, что подключить дма и настроить его можно только из ниоса. Соответственно, надо подавать прерывание ниосу, дабы он включал дма. Это так? Или дма можно задействовать каким-то другим способом? Или предлагается переписать фифо -> сдрам другим способом?
|
|
|
|
|
Apr 28 2007, 10:15
|

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

|
Цитата У вас же вся картинка в фифо не влезет, а значит вырабатывать прерывание ниосу надо не каждый раз по заполнению фифо, а когда вся картинка будет записано в озу. Вся картинка и не должна в фифо влезать - фифо это промежуточный буфер перед озу, размер которого определяется скоростью поступления данных и скоростью записи в память + накладные расходы. Цитата оответственно, надо подавать прерывание ниосу, дабы он включал дма. Это так? Да,так. Это наиболее простой способ. RHnd: нарисуйте на бумаге структурную схему. Вам станет намного проще понимать что должна будет делать ваша система.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|