|
Подклюние PowerQUICC и FPGA, помогите определиться с шиной и логикой взаимодействия |
|
|
|
Jun 24 2011, 10:36
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 23-03-10
Пользователь №: 56 159

|
Приветствую всех форумчан! Вопрос пока чисто теоретический и комплексный. Не знаю к какому разделу ближе. Есть задача подключить коммуникационный процессор PowerQUICC, например, MPC8313E к FPGA Spartan-3(A,E). FPGA помимо процессора загружен своими задачами. В текущей разработке коэфф. использования ресурсов процентов 75%, почти задействованы все блоки памяти. Грозит заменой на FPGA (завидую тем кто работает с Virtex-5,6). Но при серьезной переделке логики можно сильно освободить блоки памяти, заменив на очереди. Определяюсь по какой шине вести взаимодействие с процессором. 1. У процессора есть шина PCI. Процессор будет работать в хост режиме. Для моих задач в 33/66 МГц пропускной способности шины будет достаточно. 2. Использовать шину eLBC. Шина однонаправленная со стороны процессора. Т.е. при получении данных FPGA должен сгенерировать прерывание на какой-либо линии процессора, и процессор сам забирает данные в UPM режиме пакетами по 32 слова. Во-вторых на этой шине будет также загрузка кода процессора через FPGA из SPI флеш-памяти. Взаимодействие вижу следующим образом. Может меня кто поправит, если что не так. 1. FPGA забирает данные из хост памяти по PCI Express шине своим каналом DMA и направляет их в FIFO буфер, сигнализирует процессору о получении данных. 2. Процессор обрабатывает прерывание и запускает свой канал DMA для забора данных. Извлекает все данные из FIFO. 3. Процессор какое-то время обрабатывает данные. 4. При передачи данных обратно процессор запускает DMA в другую очередь в FPGA. 5. FPGA по PCI Express складывает данные в хост память. Вопросы: 1. С PCI пока не довелось пока работать, т.е. есть возможность это попробовать  . Применим ли LogiCore PCI для данной задачи? И задача кажется сложнее чем с eLBC, но более универсальна. 2. C eLBC несколько проще, но после беглого прочтения пока сложно дается понимание настройки UPM режима. Но вроде в CodeWarrior есть визард. Нужно создать простой SRAM интерфейс. Кто-нибудь работал с такой задачей? 3. На данном этапе можно отказаться от этого процессора и навесить какой-то другой, без встроенного контроллера памяти c какой-нибудь нормальной процессорной шиной. Сложнее ли это? У кого какие варианты?
Сообщение отредактировал demonizer - Jun 24 2011, 10:50
--------------------
"Кто хочет работать — ищет средства, кто не хочет — причины"
|
|
|
|
|
 |
Ответов
(1 - 11)
|
Jun 24 2011, 10:49
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Цитата(demonizer @ Jun 24 2011, 14:36)  2. C eLBC несколько проще, но после беглого прочтения пока сложно дается понимание настройки UPM режима. Но вроде в CodeWarrior есть визард. Нужно создать простой SRAM интерфейс. Кто-нибудь работал с такой задачей? Ну я работал. Ничего там сложного нет, программируете UPM и все. Я не знаю что конкретно есть в упомянутой модели проца, но если есть UPM, то, скорее всего, есть и GPCM, его-то и надо испольовать для "обычной" памяти. Там вообще ничего программировать почти не надо. Остальное, извините, "ниасилил, многабукав". Выразите мысль яснее.
|
|
|
|
|
Jun 24 2011, 10:55
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата У процессора есть шина PCI Цитата FPGA забирает данные из хост памяти по PCI Express Так PCI или PCI Express? Это 2 большие разницы В любом случае и PCI и PCIe довольно навороченные шины. Если процессор может обращаться с очень custom устройством на PCI (которое не будет соответствовать PCI спецификации в плане PnP), то можно сделать довольно простой контролер для PCI Target
|
|
|
|
|
Jun 24 2011, 10:56
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 23-03-10
Пользователь №: 56 159

|
Цитата(vitan @ Jun 24 2011, 14:49)  Ну я работал. Ничего там сложного нет, программируете UPM и все. Я не знаю что конкретно есть в упомянутой модели проца, но если есть UPM, то, скорее всего, есть и GPCM, его-то и надо испольовать для "обычной" памяти. Там вообще ничего программировать почти не надо.
Остальное, извините, "ниасилил, многабукав". Выразите мысль яснее. vitan: Если через FPGA сделать доступ к SPI флеш, шину можно придержать на много N-тактов пока произойдет чтение с SPI?
--------------------
"Кто хочет работать — ищет средства, кто не хочет — причины"
|
|
|
|
|
Jun 24 2011, 11:01
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 23-03-10
Пользователь №: 56 159

|
Цитата(XVR @ Jun 24 2011, 14:55)  Так PCI или PCI Express? Это 2 большие разницы В любом случае и PCI и PCIe довольно навороченные шины. Если процессор может обращаться с очень custom устройством на PCI (которое не будет соответствовать PCI спецификации в плане PnP), то можно сделать довольно простой контролер для PCI Target FPGA уже висит на PCI Express. А PowerQUICC будет висеть на PCI, и будет подключен к плисине. Т.е. FPGA в неком роде является бриджем между PCI Express и PCI, и будет гонять данные между между хостом и памятью PowerQUICC.
--------------------
"Кто хочет работать — ищет средства, кто не хочет — причины"
|
|
|
|
|
Jun 24 2011, 11:13
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Цитата(demonizer @ Jun 24 2011, 15:01)  FPGA уже висит на PCI Express. А PowerQUICC будет висеть на PCI, и будет подключен к плисине. Т.е. FPGA в неком роде является бриджем между PCI Express и PCI, и будет гонять данные между между хостом и памятью PowerQUICC. Я, конечно, извиняюсь, но зачем такие сложности? Вы же сами сказали, что можете выбрать другой процессор. Ну и выберите такой же, только с PCI Express, там они есть. Или на худой конец поставтье покупной мост PCI-PCIE. Не видя Вашей схемы сложно что-то советовать, просто пока складывается впечатление, что Вы данные собрались пускать по маршруту (OЗУ)-(нечто на PCI-E)-(FPGA c PCIE)-(FIFO)-(нечто на PCI)-(CPU). При этом Вам еще надо куда-то впихнуть флеш на SPI? Не слишком ли мудрено? Что мешает поставить нормальный проц с контроллером ОЗУ и SPI, подключить туда ОЗУ и флеш и радоваться7
|
|
|
|
|
Jun 24 2011, 11:41
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 23-03-10
Пользователь №: 56 159

|
Цитата(vitan @ Jun 24 2011, 14:59)  Уже всех подробностей я не помню. Настройка длительности циклов, естественно, есть, а вот про сигнал готовности не помню, возможно тоже есть. Только это не выход, не надо держать шину (если только она не от DMA работает, да и то плохо это). Сигнал готовности есть - это LFRB#, он FMC режиме используется, пока NAND читает страницу. Пока не выяснил используется ли он в GPCM и UPM режиме, говоря вашими словами слишком "многабукв" в доке  Пока грузится прошивка процессора на шине никого не будет, так что думаю удерживать шину меня устроит. Вообще по загрузке прошивки вижу несколько вариантов: 1. Идеально процессору свой собственный NOR флеш. Для меня не вариант так как слишком много JTAGoв на плате и операций прошивания. 2. Тянуть последовательный интерфейс от процессора через FPGA на SPI флешку, и выделить в SPI область для прошивки процессора. 3. Воспользоваться eLBC. Цитата(vitan @ Jun 24 2011, 15:13)  Я, конечно, извиняюсь, но зачем такие сложности? Вы же сами сказали, что можете выбрать другой процессор. Ну и выберите такой же, только с PCI Express, там они есть. Или на худой конец поставтье покупной мост PCI-PCIE. Не видя Вашей схемы сложно что-то советовать, просто пока складывается впечатление, что Вы данные собрались пускать по маршруту (OЗУ)-(нечто на PCI-E)-(FPGA c PCIE)-(FIFO)-(нечто на PCI)-(CPU). При этом Вам еще надо куда-то впихнуть флеш на SPI? Не слишком ли мудрено? Что мешает поставить нормальный проц с контроллером ОЗУ и SPI, подключить туда ОЗУ и флеш и радоваться7 Я рассматривал вариант с MPC8308, у него встроен контроллер PCI Express. Но есть два важных ограничения: 1. Не поддерживается ROM BAR (как и в остальных процессорах семейства MPC83xx, MPC85xx). Это для меня критично. 2. Никак не организовать скоростной доступ к блоку NAND флеш. Конечно здесь можно поставить недорогой CPLD или самый дешевый FPGA и возложить на него эту задачу. Остальные коммуникационные процессоры имеют другой уровень цен. Если кто подскажет недорогой процессор с PCI Express 1x-4x, с поддержкой ROM BAR буду премного благодарен.
--------------------
"Кто хочет работать — ищет средства, кто не хочет — причины"
|
|
|
|
|
Jun 24 2011, 11:48
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Цитата В текущей разработке коэфф. использования ресурсов процентов 75%, почти задействованы все блоки памяти. Это в общем уже означает, что для существенного изменения функциональности надо менять плисину. Цитата С PCI пока не довелось пока работать, т.е. есть возможность это попробовать Может, и не надо уже?  Цитата Я рассматривал вариант с MPC8308, у него встроен контроллер PCI Express. Но есть два важных ограничения: Как вариант - поставить на процессор железный мост PCI-to-PCIE. И не заниматься организацией такого моста в и так забитой ПЛИСине в условиях, когда опыта работы с PCI нет.
|
|
|
|
|
Jun 24 2011, 12:04
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 23-03-10
Пользователь №: 56 159

|
Цитата(Koluchiy @ Jun 24 2011, 15:48)  Это в общем уже означает, что для существенного изменения функциональности надо менять плисину. Согласен, к тому и идет. Цитата(Koluchiy @ Jun 24 2011, 15:48)  Может, и не надо уже?  Может и не надо. Но не думаю, что на освоение уйдет много времени. Цитата(Koluchiy @ Jun 24 2011, 15:48)  Как вариант - поставить на процессор железный мост PCI-to-PCIE. И не заниматься организацией такого моста в и так забитой ПЛИСине в условиях, когда опыта работы с PCI нет. Пытаюсь продумать минимальное бюджетное решение. Не понял чем поможет мост? Мост поможет мне расшарить ROM Bar и перенаправить на другой адресный регистр процессора?
--------------------
"Кто хочет работать — ищет средства, кто не хочет — причины"
|
|
|
|
|
Jun 24 2011, 12:22
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Цитата(demonizer @ Jun 24 2011, 16:04)  Пытаюсь продумать минимальное бюджетное решение. Не понял чем поможет мост? Мост поможет мне расшарить ROM Bar и перенаправить на другой адресный регистр процессора? Мост поможет подключить на PCI Express тот проц, который Вам больше нравится. Дальнейший обмен с плисиной и прочими девайсами - через PCI-E.
|
|
|
|
|
Jun 24 2011, 12:34
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 23-03-10
Пользователь №: 56 159

|
Цитата(Koluchiy @ Jun 24 2011, 16:22)  Мост поможет подключить на PCI Express тот проц, который Вам больше нравится. Дальнейший обмен с плисиной и прочими девайсами - через PCI-E. Не кажется это вариантом. Так как у меня уже в плисине задействовано ядро PCI Express, которое занимает около 6000 Slices, точно не помню. Вторую кору точно не потянет, и тем более что Spartan3 использует еще железный физический уровень.
Сообщение отредактировал demonizer - Jun 24 2011, 12:47
--------------------
"Кто хочет работать — ищет средства, кто не хочет — причины"
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|