|
MIG, DDR2 на Spartan 6, напрямую, без Microblaze |
|
|
|
Jan 28 2014, 14:09
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
У меня есть плата со Spartan 6 и DDR2, и через Microblaze мне было относительно просто заставить работать DDR2, т.е. железо рабочее. Но как то же самое сделать без микроба?
Я выполнил генерацию (coregen) с помощью MIG точно так же как я это делал когда-то для Microblaze, и вижу кучу файлов, а сгенерированных файлов - десятки, куча .v-файлов, десятки сотни линий... Как в этом сориентироваться? Ожидал что раз DDR2-контроллер есть - то он всё делает, а пользователю даёт простой интерфейс, чтобы он голову не ломал...
т.е. основной вопрос прост: как осознать результат, вываленный MIG-ом? Я просто в шоке и не верю что осознаю как это делать, а нормальный туториал гуглением не попался.
Другой вопрос состоит в том, а что если я возьму Microblaze с его работающим DDR2? Мне необходимо закачать несколько пару секунд потока "без единого разрыва" около 300 Мбит/с, напрямую в DDR2 я может и закачаю столько, но в случае Microblaze что может быть быстрым интерфейсом ввода от своей кастомной логики?
--------------------
|
|
|
|
|
 |
Ответов
|
Jan 28 2014, 15:29
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Да ничего сложного! Горздно легче чем собирать ядро линукса из исходников  Для начала посмотрите user guide для выбраного Вами контролера - среди всего ужаса описанного Вами найдется один top модуль который включает в себя все остальные и предоставляет для юзера очень простой интерфейс в пару-тройку сотен линий  Ткже в генерируемых файлах присутствует образец скрипта для синтеза корки. В EDK можно к существующей системе на Microblaze - подключить еще например DMA контроллер и записывать данные в память напрямую. Сам контрллер можно взять гоотовый из EDK, а можно и самому наваять - и подключить к контроллеру DDR через отдельный порт или к AXI interconnect шине. Но в любом случае придется повозится с подключением кучи сигналов - в FPGA без этого увы никак. Успехов! Rob. P.S. вот по теме http://electronix.ru/forum/index.php?showt...=116819&hl=
|
|
|
|
|
Jan 28 2014, 17:04
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(RobFPGA @ Jan 28 2014, 19:29)  Да ничего сложного! Горздно легче чем собирать ядро линукса из исходников  Собрать Linux это как чай заварить, а с DDR2 не похоже чтобы просто... Цитата В EDK можно к существующей системе на Microblaze - подключить еще например DMA контроллер и записывать данные в память напрямую. У меня мысль такая возникла - я могу ведь подключить к Microblaze двухпортовую BRAM? С внешней стороны подавать, а внутри микроба - считывать и класть в DDR2 (дальше хоть по UART слать, главное без разрывов несколько сот мегабит заглотить)? А может есть специальный компонент FIFO для шины AXI...
--------------------
|
|
|
|
|
Jan 28 2014, 17:07
|
Частый гость
 
Группа: Свой
Сообщений: 85
Регистрация: 5-07-06
Из: Барнаул
Пользователь №: 18 592

|
Цитата(AVR @ Jan 29 2014, 00:04)  У меня мысль такая возникла - я могу ведь подключить к Microblaze двухпортовую BRAM? С внешней стороны подавать, а внутри микроба - считывать и класть в DDR2 (дальше хоть по UART слать, главное без разрывов несколько сот мегабит заглотить)? А микроб успеет такой поток "перекидать"? Цитата А может есть специальный компонент FIFO для шины AXI... Дык вроде есть.
|
|
|
|
|
Jan 28 2014, 18:24
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(AVR @ Jan 28 2014, 19:28)  Примитивный рачет показывает мне что 300*10^6 / 32 бит = ~10 млн. операций "туда-сюда", около десяти тактов на каждое перемещение. Я опасаюсь что таки не хватит... На Spartan 6 я больше чем 100 МГц от микроба не выжму, поэтому наверное всё же лучше няпрямую с DDR2 разбираться... Тяга к знаниям похвальна но для получения результата Вы лучше с DMA разбирайтесь - подключите в EDK к рабочей системе на Miicroblaze axi_dma_* и будет Вам простой интерфейс для записи потока данных в память (и даже для чтения из оной). Успехов! Rob.
|
|
|
|
Сообщений в этой теме
AVR MIG, DDR2 на Spartan 6 Jan 28 2014, 14:09 lemorus Насколько я знаю, Вам нужен проект работы с DDR2 к... Jan 28 2014, 15:17 slawikg Цитатат.е. основной вопрос прост: как осознать рез... Jan 28 2014, 15:46 count_enable Сделайте систему на AXI4 DMA и свою корку на AXI ... Jan 28 2014, 18:25 lemorus Вот ссылка на референс дизайн буфера для видеопото... Jan 28 2014, 19:38 AVR Цитата(lemorus @ Jan 28 2014, 23:38) Вот ... Jan 28 2014, 19:59 AVR Докладываю, временно не было программатора, а тепе... Feb 13 2014, 12:54 RobFPGA Приветствую!
А кактус то оказался значительно... Feb 13 2014, 15:09 mr.alexeevas Цитата(AVR @ Jan 28 2014, 18:09) У меня е... Feb 14 2014, 05:33 Mad Makc А вот скажите- у вас DDR2 один корпус стоит на пла... Feb 14 2014, 07:05 mr.alexeevas Цитата(Mad Makc @ Feb 14 2014, 11:05) А в... Feb 14 2014, 07:34 Yuris Во первых, в корегенераторе в окне генерации xilin... Feb 14 2014, 14:03
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|