RHnd 0 26 апреля, 2007 Опубликовано 26 апреля, 2007 (изменено) · Жалоба Я вот думаю, где бы взять готовый контроллер SDRAM? Если кто-нибудь уже сталкивался, не поделитесь? Кстати, пришла в голову мысля: А если в SOPC собрать ниос с контроллером SDRAM, а потом взять сгенерированный файл контроллера SDRAM, то в нем можно будет разобраться и засунуть в свой проет? Или наткнусь на какую-нибудь бяку? То же самое и на сет flash-контроллера. Изменено 26 апреля, 2007 пользователем RHnd Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 26 апреля, 2007 Опубликовано 26 апреля, 2007 · Жалоба Сделайте мастера для шины авалон-мм и подключайте к своему устройству. Лишите жизни сразу двух зайцев: и настройки будут делаться в sopc builder и доп. компоненты можно будет повесить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 26 апреля, 2007 Опубликовано 26 апреля, 2007 (изменено) · Жалоба Сделайте мастера для шины авалон-мм и подключайте к своему устройству. спасибо. Пойду попробую. 6) Так, отставить, не пойду. А где его создавать, этот мастер? В SOPC он только как элемент cpu есть. Его нужно самому писать? Как? Какие мануалы читать? Или я чего-то недопонял? Совсем запутался. :( Изменено 26 апреля, 2007 пользователем RHnd Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CodeWarrior1241 0 26 апреля, 2007 Опубликовано 26 апреля, 2007 · Жалоба Я вот думаю, где бы взять готовый контроллер SDRAM? Если по кокой-то причине не хотите пользоватся SOPC Builder, у Altera есть reference design для моста между параллельным портом процессора и SDRAM тут. По предыдущим постом модератора я тоже взглянул на avalon bus master док, и дествительно все выглядит очен просто в выполнение, и есть бесплатная avalon slave -> SDRAM ядро... Когда я писал ядро для PC100 SDRAM interface в уневере для Xilinx, я долго мучался, а здесь с Altera все так просто, и есть исходник с simulink для моделированя. Действительно, для начинающего Altera кажется проще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пушкин 0 26 апреля, 2007 Опубликовано 26 апреля, 2007 · Жалоба Так, отставить, не пойду. А где его создавать, этот мастер? В SOPC он только как элемент cpu есть. Его нужно самому писать? Как? Какие мануалы читать? Или я чего-то недопонял? Совсем запутался. :( Читайте это http://altera.com/literature/quartus2/lit-qts-sopc.jsp И в частности это http://altera.com/literature/manual/mnl_avalon_spec.pdf про мастера для авалон мм Все что нужно к сопк билдеру прикрутите, и сдрам контроллер готовый Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 26 апреля, 2007 Опубликовано 26 апреля, 2007 · Жалоба Ситуация выглядит так: Со скоростью 5 МГц на 10 пинов поступаю пиксели картинки. Сама картинка около 3 мегапикселей. Эту картинку надо записать в память (SDRAM, как мне кажется, - лучший выбор. Я прав?), после чего ниос эту картинку из памяти читает, особым образом обрабатывает и записывает обратно (либо на то же место, либо рядом). После обработки эту картинку надо скинуть на SD. Для начала хотя бы в bmp виде, jpeg буду потом делать. Соответственно, стоит вопрос - как записать в память и как потом скинуть на карточку. Вопрос с карточкой буду решать позже - ниос это будет делать или внешняя схемка, сейчас думаю над записью в SDRAM. Варианта, как мне видится, два: написать модуль для SOPC, что-то типа фифо, к которому при определенном заполнении подключается DMA и гонит данные в память. Второй вариант - записать в память внешней схемкой, а по окончании записи подать сигнал ниосу и переключить память на него. Так как я в гораздо большей степени программер, чем разработчик цифровых устройств, то мне все равно куда начинать тыкаться - один фик все придется с нуля изучать. Вот и хотелось бы услышать от более опытных людей - какой вариант предпочтительней? Читайте это http://altera.com/literature/quartus2/lit-qts-sopc.jsp И в частности это http://altera.com/literature/manual/mnl_avalon_spec.pdf про мастера для авалон мм Все что нужно к сопк билдеру прикрутите, и сдрам контроллер готовый Спасибо, это все пока в очереди на прочтение. В данный момент осваиваю verilog. Прежде чем я вчитаюсь в эти мануалы, скажите, пожалуйста, правильно ли я понимаю, что создается какой-то модуль для сопк, который внутри сопк является авалон мастером/слейвом, и при этом наружу имеет какие-то входы-выходы для общения с логикой? Вы уж извините, если надоел. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пушкин 0 26 апреля, 2007 Опубликовано 26 апреля, 2007 (изменено) · Жалоба Ну да, примерно так. Делайте модуль для сопк и не мучайтесь, так все намного проще чем кажется. На одни контакты адрес, на другие данные, на третьи влючить запись. Описал его в билдере и присобачил к шине, вот и все дела. А все это без сопк билдера сделать...это только для мазахистов или из-за каких то причин. Изменено 26 апреля, 2007 пользователем Пушкин Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 27 апреля, 2007 Опубликовано 27 апреля, 2007 · Жалоба RHnd: первый вариант лучше. в этом случае надо будет делать только слейва. Метод приема данный примерно следущий: 1. Копим данные в фифо. 2. по заполнению фифо вырабатываем прерывание. 3. перекачиваем дынные из фифо в озу(источник прерывания в модуле сбрасывается циклом чтения) 4. п.1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mikki 0 27 апреля, 2007 Опубликовано 27 апреля, 2007 · Жалоба Может я и не втему , но неплохой контроллера сделал для ксилинкса некто D. Vanden Bout. Рекомендую глянуть.http://www.xess.com/ho03000.html А я тут благодаря ответам наших знатоков запустил конторллер на микроблэйзе. Разместил вектора данных там и вроде фурычит. Спаибо нашим пацанам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пушкин 0 27 апреля, 2007 Опубликовано 27 апреля, 2007 · Жалоба RHnd: первый вариант лучше. в этом случае надо будет делать только слейва. Метод приема данный примерно следущий: 1. Копим данные в фифо. 2. по заполнению фифо вырабатываем прерывание. 3. перекачиваем дынные из фифо в озу(источник прерывания в модуле сбрасывается циклом чтения) 4. п.1 А зачем прерывание?И куда оно идет то? По-моему надо так... 1. Копим данные в фифо. 2. По достижению некоторого количества байт в фиво, начинаем писать в озу, а фифо параллельно получает еще данные(чтоб записать сразу несколько байт в сдрам, а не по одному, быстрее будет) 3. п.1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 27 апреля, 2007 Опубликовано 27 апреля, 2007 · Жалоба А зачем прерывание?И куда оно идет то? По-моему надо так... 1. Копим данные в фифо. 2. По достижению некоторого количества байт в фиво, начинаем писать в озу, а фифо параллельно получает еще данные(чтоб записать сразу несколько байт в сдрам, а не по одному, быстрее будет) 3. п.1 Я ни в коем случае не отвечаю за Vetal, но мое видение таково: Там же в сопк еще и ниос соберется (он один фик нужен будет для оброаботки изображения), вот в ниос прерывание и поступит, а он по этому прерыванию активизирует dma. С нетерпением жду ответа Vetal - интересно, правильно ли я идею уловил. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 27 апреля, 2007 Опубликовано 27 апреля, 2007 · Жалоба А зачем прерывание?И куда оно идет то? Вопрос с карточкой буду решать позже - ниос это будет делать или внешняя схемка, сейчас думаю над записью в SDRAM. Оно идет на то, что будет эти данные обрабатывать и записывать на SD. В сопс билдере есть средства, позволяющие решить этот вопрос минимальными усилиями - контроллер ПДП(DMA) С нетерпением жду ответа Vetal - интересно, правильно ли я идею уловил. Да, правильно. опередили немного))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пушкин 0 28 апреля, 2007 Опубликовано 28 апреля, 2007 · Жалоба У вас же вся картинка в фифо не влезет, а значит вырабатывать прерывание ниосу надо не каждый раз по заполнению фифо, а когда вся картинка будет записано в озу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 28 апреля, 2007 Опубликовано 28 апреля, 2007 · Жалоба У вас же вся картинка в фифо не влезет, а значит вырабатывать прерывание ниосу надо не каждый раз по заполнению фифо, а когда вся картинка будет записано в озу. Так, теперь я снова запутался. После того, как фифо почти заполнится, но картинка пришла еще далеко не вся, нам нужно срочно информацию из фифо перекинуть в сдрам, а делать это лучше всего дма. Пока вроде все понятно. Далее: когда я читал Nios II Reference Manual и Altera: Embbeded Periphery, у меня сложилось ощущение, что подключить дма и настроить его можно только из ниоса. Соответственно, надо подавать прерывание ниосу, дабы он включал дма. Это так? Или дма можно задействовать каким-то другим способом? Или предлагается переписать фифо -> сдрам другим способом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 28 апреля, 2007 Опубликовано 28 апреля, 2007 · Жалоба У вас же вся картинка в фифо не влезет, а значит вырабатывать прерывание ниосу надо не каждый раз по заполнению фифо, а когда вся картинка будет записано в озу. Вся картинка и не должна в фифо влезать - фифо это промежуточный буфер перед озу, размер которого определяется скоростью поступления данных и скоростью записи в память + накладные расходы. оответственно, надо подавать прерывание ниосу, дабы он включал дма. Это так? Да,так. Это наиболее простой способ. RHnd: нарисуйте на бумаге структурную схему. Вам станет намного проще понимать что должна будет делать ваша система. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться