|
Работа с PCIe мостом GN4124, С чего начать разработу ПО? |
|
|
|
Jan 14 2010, 08:05
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 14-01-10
Пользователь №: 54 788

|
Здравствуйте. Поставила на PCIe плату мост GN4124. Установила стандартный драйвер под Windows, плата определилась в системе. Утилита для проверки работоспособности, предоставляемая производителем микросхемы, заточена под их отладочную плату и выдает ошибку на этапе загрузки ПЛИС (у меня ПЛИС грузится не через мост, а с флэшки). Я решила попробовать порезать эту прогрммку, чтобы обойти ошибку, но при компиляции оказалось, что не хватает файла (wdc_lib.h). Теперь думаю - то ли я что-то делаю не так, то ли этот путь вообще ошибочный. Подскажите, если у кого-то есть опыт, с чего начинать работу с этим мостом?
|
|
|
|
|
Jan 14 2010, 08:23
|

Lazy
     
Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76

|
Цитата(Airy_brn @ Jan 14 2010, 11:05)  Здравствуйте. Поставила на PCIe плату мост GN4124. Установила стандартный драйвер под Windows, плата определилась в системе. Утилита для проверки работоспособности, предоставляемая производителем микросхемы, заточена под их отладочную плату и выдает ошибку на этапе загрузки ПЛИС (у меня ПЛИС грузится не через мост, а с флэшки). Я решила попробовать порезать эту прогрммку, чтобы обойти ошибку, но при компиляции оказалось, что не хватает файла (wdc_lib.h). Теперь думаю - то ли я что-то делаю не так, то ли этот путь вообще ошибочный. Подскажите, если у кого-то есть опыт, с чего начинать работу с этим мостом? Здравствуйте! С этим мостом не работал, но возможно придется. Тут вопрос политический :-) Утилита предназначена для проверки ИМЕННО их платы. Зачем-же ее пускать для своей? Я бы обратился к производителю с этим вопросом (как модифицировать код для запуска утилиты на кастом платформе). -- Успехов
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
Jan 14 2010, 10:49
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 14-01-10
Пользователь №: 54 788

|
Цитата(jojo @ Jan 14 2010, 15:44)  Видимо, файл wdc_lib.h - из комплекта Jungo Windriver. Файла нет, сборка программы не выполняется. Для сборки нужно скачать и установить Windriver, исправить файл проекта с примером или makefile. Спасибо! Файл действительно оказался из Windriver. Правда теперь возникла проблема с конфликтом версий (кажется), но процесс пошел и это главное!
|
|
|
|
|
Feb 3 2010, 14:37
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 10-01-06
Пользователь №: 13 025

|
Цитата(Airy_brn @ Jan 14 2010, 11:05)  Здравствуйте. Поставила на PCIe плату мост GN4124. А не поделитесь Даташитом и инфой где и за сколько покупали?
|
|
|
|
|
Feb 16 2010, 17:51
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 14-01-10
Пользователь №: 54 788

|
Цитата(Бэд @ Feb 7 2010, 01:14)  Недавно решал подобную проблему. Windriver кроме официального сайта можно найти и в местных "закромах". Там же вроде и лицензия к нему валялась. У Вас впереди будет много проблем. Без отличного понимания как работает FPGA core (они называют это "DMA sequencer") будет Вам очень тяжко. Если же плата не от Gennum, то соответственно и ДМА машинка у Вас будет своя. А сделать и отладить такую машинку даже малость потруднее будет, чем софт написать. Но всё проходимо, проверено. Я сейчас заканчиваю возню с GN4121 - это "младший брат" GN4124. В общем всё победимо, но впереди - много трудностей... Плата у нас своя, но Gennum'овское ядро впихнуть туда все-таки получилось. Поковыряться пришлось основательно, но в итоге все получилось. Если кому интересно, могу рассказать о найденных интересных местах в версии для Xilinx.
|
|
|
|
|
Feb 17 2010, 03:24
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 14-01-10
Пользователь №: 54 788

|
Цитата(Dmitrij68 @ Feb 3 2010, 21:37)  А не поделитесь Даташитом и инфой где и за сколько покупали? Всю документацию можно получить у Gennum на сайте (gennum.com). Там надо зарегистрироваться и дня через 2 Вас активируют. Это лучше, т.к. кроме документации может еще понадобиться ядро, отладочная программка... Покупали микросхемку мы в ООО "Регион-Вирта" примерно за 2900 р/шт
|
|
|
|
|
Feb 26 2010, 11:44
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(Airy_brn @ Feb 17 2010, 09:24)  Покупали микросхемку мы в ООО "Регион-Вирта" примерно за 2900 р/шт Мне Геннумы сэмплы прислали бесплатно (4 шт. 4124 + 4 шт. 4121). Заявленная цена на 4124 - $20. Я фигею с наших торгашей...
|
|
|
|
|
May 27 2010, 16:18
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 10-01-06
Пользователь №: 13 025

|
Цитата(Airy_brn @ Feb 16 2010, 21:51)  Плата у нас своя, но Gennum'овское ядро впихнуть туда все-таки получилось. Поковыряться пришлось основательно, но в итоге все получилось. Если кому интересно, могу рассказать о найденных интересных местах в версии для Xilinx. Так получилось или нет? Использовали ли исходники от Gennum?
|
|
|
|
|
Jul 2 2010, 11:59
|
Частый гость
 
Группа: Свой
Сообщений: 114
Регистрация: 10-05-05
Пользователь №: 4 893

|
Цитата(призрак @ Jun 30 2010, 20:26)  Может выложите datasheet? Просто регистрация прошла но пишет что у вас нет прав на чтение этой документации.. И где заказывали если в Москве? Аналогичная просьба. Запрос неделю как прошел и тишина.
|
|
|
|
|
Jul 7 2010, 09:01
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 14-01-10
Пользователь №: 54 788

|
Цитата(Dmitrij68 @ May 27 2010, 23:18)  Так получилось или нет? Использовали ли исходники от Gennum? В итоге все заработало так, как нам хотелось. Исходники от Геннума пришлось править под используемую микросхему (у них сделано под Spartan-3, у меня был Virtex-5): переподключать DCM (и в одном варианте его вообще убирать, т.к. p2lclk была заведена на cc-вход), менять DDR-регистры. В одном из модулей у них явная ошибка - проходят только те пакеты, у которых младший бит StreamID равен 0. Цитата(призрак @ Jul 1 2010, 00:26)  Может выложите datasheet? Просто регистрация прошла но пишет что у вас нет прав на чтение этой документации.. Я, чтобы получить доступ, им еще напрямую в саппорт написала. Информации у них на сайте давольно много, но если очень надо, то могу выслать на почту.
|
|
|
|
|
Jul 9 2010, 15:18
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 10-01-06
Пользователь №: 13 025

|
Цитата(Airy_brn @ Jul 7 2010, 13:01)  В итоге все заработало так, как нам хотелось. Исходники от Геннума пришлось править под используемую микросхему (у них сделано под Spartan-3, у меня был Virtex-5): переподключать DCM (и в одном варианте его вообще убирать, т.к. p2lclk была заведена на cc-вход), менять DDR-регистры. В одном из модулей у них явная ошибка - проходят только те пакеты, у которых младший бит StreamID равен 0. а память DDR2 в проекте pinto заработала? Проект развелся? А то у меня 5 констрейнов не выполняется. И после Очистки проекта в ISE10.1 (с копированием fifo*.ngc в корень проекта) разводится, но не работает. У меня тоже будет Virtex5. Не моглибы выслать последние версии IP cores на почтовый ящик? И поделиться опытом.
Сообщение отредактировал Dmitrij68 - Jul 9 2010, 15:20
|
|
|
|
|
Jul 12 2010, 14:05
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 14-01-10
Пользователь №: 54 788

|
Я проект как есть не компилировала - сразу вставляла кусок кода в свой. Взяла модуль Lambo и App_csr, подключила с одной стороны к ногам, с другой к фифо интерфейсу и регистрам управления. Цитата(Dmitrij68 @ Jul 9 2010, 22:18)  Не моглибы выслать последние версии IP cores на почтовый ящик? Давайте адрес, вышлю
|
|
|
|
|
Jul 14 2010, 01:54
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 10-01-06
Пользователь №: 13 025

|
Цитата(Airy_brn @ Jul 13 2010, 02:05)  Я проект как есть не компилировала - сразу вставляла кусок кода в свой. Взяла модуль Lambo и App_csr, подключила с одной стороны к ногам, с другой к фифо интерфейсу и регистрам управления. Давайте адрес, вышлю  Dmitrij68@mail.ru Ихний проект lambo после "очистки" не работает. Но если создать свой и подсунуть ихнее ядро, все нормально. И даже разводиться чуть быстрее. А вот pinto никак. А не поскажите где ошибка с StreamID. И зачем убрали DCM, что это дало? И еще, как я понял, Вы не использовали ихний DDR контроллер? Кстати на какой ISE работаете?
Сообщение отредактировал Dmitrij68 - Jul 14 2010, 01:58
|
|
|
|
|
Jun 27 2011, 07:44
|
Местный
  
Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832

|
Цитата(Airy_brn @ Feb 16 2010, 21:51)  Плата у нас своя, но Gennum'овское ядро впихнуть туда все-таки получилось. Поковыряться пришлось основательно, но в итоге все получилось. Если кому интересно, могу рассказать о найденных интересных местах в версии для Xilinx. Расскажите пожалуйста. Особенно интересно узнать, есть ли баги в проекте Pinto и работают ли их драйвера под WIN7? Цитата(Бэд @ Feb 6 2010, 23:14)  Недавно решал подобную проблему. Windriver кроме официального сайта можно найти и в местных "закромах". Там же вроде и лицензия к нему валялась. У Вас впереди будет много проблем. Без отличного понимания как работает FPGA core (они называют это "DMA sequencer") будет Вам очень тяжко. Если же плата не от Gennum, то соответственно и ДМА машинка у Вас будет своя. А сделать и отладить такую машинку даже малость потруднее будет, чем софт написать. Но всё проходимо, проверено. Я сейчас заканчиваю возню с GN4121 - это "младший брат" GN4124. В общем всё победимо, но впереди - много трудностей... В чём основные проблемы и трудности? Удалось ли в проекте Pinto реализовать одновременно capture и playback?
|
|
|
|
|
Jul 26 2011, 10:23
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(FLTI @ Jun 27 2011, 14:44)  В чём основные проблемы и трудности? Удалось ли в проекте Pinto реализовать одновременно capture и playback? 1. Их машинка для работы с памятью была заточена на работу с фифошками, то есть адрес "протянуть" на память было невероятно сложно. В моём приложении (туча разных буферов для видео и аудио) адрес был необходим как воздух, пришлось вникнуть и всё переписать. Добавил механизм так называемых "локальных дескрипторов", то есть небольшая табличка для каждого ДМА движка (на запись и на чтение), которая описывает начальный адрес ДМА и размер ДМА в страничках со стороны локальной памяти ДДР. 2. Крайне неэффективно использовалась память для SG таблиц внутри FPGA (3*32 bit на каждую SG страничку, переделал - у меня всего 32 бита на каждую страничку таблички, при этом всё пашет под 64 битными системами). Память BRAM в моём проекте была в большом дефиците (специфика многочисленных переходов из домена в домен и большое число фифошек). 3. Механизм перехода из 32bit * 200MHz в 64bit * 100MHz мне очень не понравился, исключил все DCMки и сделал всё на 32bit 200 МГц. После некоторой оптимизации по скорости всё разводится на ура, все констрейны выполняются. 4. Всю работу с видео выкинул, вставил свои куски (так было нужно для моей задачи). 5. Для улучшения производительности между памятью DDR и DMA движком вставил фифошки (они там в любом случае были необходимы, ибо клоки - разные). Возложил на этот кусок функции кэширования - сильно помогает поднять производительность системы в целом. 6. В дальнейшем перетащил дизайн под архиетктуру Спартана6, но это уже отдельная история. 7. Да, капчур с плейбеком в моём дизайне естественно живут независимо и одновременно. Нельзя сказать что они друг на друга не влияют, так как обращаются они в итоге к одной и той же ДДР памяти. Но если скорости записи и чтения далеки от предельных это влияние минимально.
|
|
|
|
|
Jul 28 2011, 08:02
|
Местный
  
Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832

|
Цитата(Bad0512 @ Jul 26 2011, 14:23)  1. Их машинка для работы с памятью была заточена на работу с фифошками, то есть адрес "протянуть" на память было невероятно сложно. В моём приложении (туча разных буферов для видео и аудио) адрес был необходим как воздух, пришлось вникнуть и всё переписать. Добавил механизм так называемых "локальных дескрипторов", то есть небольшая табличка для каждого ДМА движка (на запись и на чтение), которая описывает начальный адрес ДМА и размер ДМА в страничках со стороны локальной памяти ДДР. 2. Крайне неэффективно использовалась память для SG таблиц внутри FPGA (3*32 bit на каждую SG страничку, переделал - у меня всего 32 бита на каждую страничку таблички, при этом всё пашет под 64 битными системами). Память BRAM в моём проекте была в большом дефиците (специфика многочисленных переходов из домена в домен и большое число фифошек). 3. Механизм перехода из 32bit * 200MHz в 64bit * 100MHz мне очень не понравился, исключил все DCMки и сделал всё на 32bit 200 МГц. После некоторой оптимизации по скорости всё разводится на ура, все констрейны выполняются. 4. Всю работу с видео выкинул, вставил свои куски (так было нужно для моей задачи). 5. Для улучшения производительности между памятью DDR и DMA движком вставил фифошки (они там в любом случае были необходимы, ибо клоки - разные). Возложил на этот кусок функции кэширования - сильно помогает поднять производительность системы в целом. 6. В дальнейшем перетащил дизайн под архиетктуру Спартана6, но это уже отдельная история. 7. Да, капчур с плейбеком в моём дизайне естественно живут независимо и одновременно. Нельзя сказать что они друг на друга не влияют, так как обращаются они в итоге к одной и той же ДДР памяти. Но если скорости записи и чтения далеки от предельных это влияние минимально. Bad0512,благодарю за столь обстоятельный рассказ. Скажите, а насколько проект pinto в исходном виде, если не вносить в него никакие изменения, решает свою задачу по риал-тайм капчуру и плейбеку для HD-video?
|
|
|
|
|
Jul 28 2011, 08:44
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(FLTI @ Jul 28 2011, 15:02)  Bad0512,благодарю за столь обстоятельный рассказ. Скажите, а насколько проект pinto в исходном виде, если не вносить в него никакие изменения, решает свою задачу по риал-тайм капчуру и плейбеку для HD-video? В принципе решает, но насколько я помню (давно это было...) полный дуплекс в этом проекте не реализован. То есть невозможно одновременно капчурить и плейбечить HD. Что-то там надо допиливать вручную. А вообще pinto - это демонстрационный проект, поэтому в нём немало глюков, и он ограничен в функциональности. Не стОит ждать от него высокой надёжности и широкой функциональности. Цель этого проекта - показать, что в принципе капчурить и плейбечить HD на дешёвом спартанчике возможно. Всё остальное - как раз и задача разработчика, допилить этот дизайн до продажного состояния. Ещё, насколько я помню, там нет поддержки 3G форматов. Сам код тоже местами вызывает у меня рвотные рефлексы, но это у всех по-разному.
|
|
|
|
|
Jul 29 2011, 12:13
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(FLTI @ Jul 29 2011, 16:45)  Bad0512, а Вы не пробовали вообще без DDR обойтись для капчура и плейбека? А что полезного вообще есть в pinto если Вы столько оттуда повыбрасывали? Какие впечатления от самой GN4124, так ли всё работает как в доках описано, нет ли каких явных багов? Без ДДР - невозможно. Внутренней памяти мало, в реальной жизни необходимо буферировать минмум 1 секунду потока для того, чтобы всё работало без дропов. Полезного в дизайне от геннума - сама концепция полностью дуплексной системы, когда все три задачи (запись в ДДР, чтение из ДДР и работа с регистрами target) пашут одновременно и независисмо. Сама структура всего дизайна весьма правильная у них. Ну а реализация конечно индусская... Багов явных в GN4124 я не нашёл, вроде всё пашет как заявлено.
|
|
|
|
|
Aug 1 2011, 06:02
|
Местный
  
Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832

|
Цитата(Bad0512 @ Jul 28 2011, 12:44)  Без ДДР - невозможно. Внутренней памяти мало, в реальной жизни необходимо буферировать минмум 1 секунду потока для того, чтобы всё работало без дропов. Буферировать минмум 1 секунду потока - это Вы имели в виду для какого видео, SD или 3G-HD? Буфер на секунду для капчура+ буфер на секунду для плейбека = транспортная задержка между вх. и вых. видео получется 2 секунды. Не многовато ли? Цитата(Bad0512 @ Jul 26 2011, 14:23)  6. В дальнейшем перетащил дизайн под архиетктуру Спартана6, но это уже отдельная история. Вы имеете в виду, что на Спартане-6 всё проще получается и без GN4124? Хотя , конечно не надо забывать, что в Спартане-6 только PCIe x1, а в GN4124 - PCIe x4 и поэтому 3G-HD через Спартан уже не пролезет.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|