Cont 0 15 октября, 2008 Опубликовано 15 октября, 2008 · Жалоба Доброго времени суток. Вопрос к специалистам по Xilinx. Решил использовать Microblaze в системе сбора данных. Добавил в проект EDK свое периферийное устройство с интерфейсом PLB, суть которого получать данные с параллельного ацп. На другой строне у меня стоит контроллер памяти. Еще к шине, помимо проца, подключен контроллер BRAM, в которой храниться моя программа и UART, для передачи данных на PC. По логике вещей когда память заполнится, проц может приступить к обработке. Вроде в даташите написано, что шина мультиплексируемая, но когда я посмотрел что творится с шиной в Modelsim, пришел в ужас. Судя по диаграммам шина обычная, разделяемая, и если проц обращается к BRAM, то данные из ацп в Sdram уже не поступают. Но более того, меня поразила низкая производительность шины. Сначала 10 тактов - цикл адреса, потом еще 10 - цикл данных, потом еще 10 тактов ждем непонятно что. Вообщем с 8-битного 100Mhz ацп непрерывно данные получать невозможно. Работать напрямую тоже не хочется, проц нужен однозначно. Реализовывать пакетные передачи по шине пробовал, потратил уйму времени, не помогло (хотя и стало работать быстрее). Кто-нибудь сталкивался с этой шиной. Может быть я где-то косячу, не понимаю, почему такая низкая производительность. Работал с Альтерой, там шина Avalon куда шустрее была. Заранее спасибо! Может быть существует возможность подключения проца напрямую, но тогда нужно реализовать собственную шину. Есть ли реализация чего-нибудь подобного. Хотелось бы так же найти информация по шинам, принципам реализации на HDL Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 15 октября, 2008 Опубликовано 15 октября, 2008 · Жалоба Может быть существует возможность подключения проца напрямую, но тогда нужно реализовать собственную шину. Есть ли реализация чего-нибудь подобного. Хотелось бы так же найти информация по шинам, принципам реализации на HDL а что вы хотите, все таки это PLB от самой IBM, а не Avalon от какой то альтеры %))) если вам нужно быстро и в одну сторону, почему бы вам не воспользоваться FSL линками + DWC с 8 ми до 36 бит. они как раз для этого и были придуманы. Или как вариант MPMC и качать данные через один из его портов в память. Шина реализуется просто, основных архитектур 2 shared bus / cross bar switch + арбитр с вашим алгоритмом. Ну а дальше берете стандарт на шину и делаете. Кстати у альтеры про это очень хорошо написано в доках, зачем же искать чего то более, тем более что вы с Avalon Switch Fabric работали Удачи !!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex77 4 15 октября, 2008 Опубликовано 15 октября, 2008 · Жалоба и если проц обращается к BRAM, то А почему BRAM подключен к процессору через PLB ? Ведь для этого есть отдельная шины LMB. А посмотреть к примеру DMA ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DM1206 0 15 октября, 2008 Опубликовано 15 октября, 2008 · Жалоба Самое быстрое - сделать ядро, работающее с АЦП и подключенное к отдельному NPI порту MPMC и качать напрямую в память. Мы так и делаем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Cont 0 15 октября, 2008 Опубликовано 15 октября, 2008 · Жалоба Всем большое спасибо за ответы Дмитрий Мазунин Подключить АЦП к NPI порту MPMC: такая идея уже возникла, да вот только на плату память поставили такую, что MPMC с ней неработает. Вот пришлось делать свой контроллер. Теперь передо мной задача, либо использовать вариант предложенный des00 с FSL-линками, либо попытаться реализовать свой MPMC(к счастью в EDK нашел его исходники!). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DM1206 0 16 октября, 2008 Опубликовано 16 октября, 2008 · Жалоба Что значит - MPMC не работает с Вашей памятью ? Ее нет в списке MPMC ? Или уже собранный проект не работает в железе ? Какая память у Вас ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axalay 0 16 октября, 2008 Опубликовано 16 октября, 2008 · Жалоба Что значит - MPMC не работает с Вашей памятью ? Ее нет в списке MPMC ? Или уже собранный проект не работает в железе ? Какая память у Вас ? МПМС чето с СДРАМ не желает работать. Я решил эту проблему переходником на ОПБ и ОПБ_СДРАМ контроллером. Если У Вас с МПМС работает СДРАМ - я был бы благодарен за совет. Версия сапра 9.2, а плиска виртекс5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex77 4 16 октября, 2008 Опубликовано 16 октября, 2008 · Жалоба МПМС чето с СДРАМ не желает работать. Я решил эту проблему переходником на ОПБ и ОПБ_СДРАМ контроллером. Если У Вас с МПМС работает СДРАМ - я был бы благодарен за совет. Версия сапра 9.2, а плиска виртекс5 Что значит не работает ? В 10.sp3 есть MPMC v4. Так в ней есть sdram & ddr. В свой проект заложил MPMC + sdram + spartan3e. Проект собирается. Будет печать посмотрим на результат. Да и в 9.2 MPMC + sdram тоже было. см в pdf. А opb шина мне видится ещё более тормознее чем plb. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axalay 0 16 октября, 2008 Опубликовано 16 октября, 2008 · Жалоба Что значит не работает ? В 10.sp3 есть MPMC v4. Так в ней есть sdram & ddr. В свой проект заложил MPMC + sdram + spartan3e. Проект собирается. Будет печать посмотрим на результат. Да и в 9.2 MPMC + sdram тоже было. см в pdf. А opb шина мне видится ещё более тормознее чем plb. А я и не говорил, что МПМС+СДРАМ в 9.2 нет. Просто чего то не желает работать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zherdiy 0 29 октября, 2008 Опубликовано 29 октября, 2008 (изменено) · Жалоба Я вот думаю, может и у меня mpmc не коректно работает с DDR2 по PLB из-за ее глючности? Не пойму в чем причина: пишу - читаю из памяти, и получаю "немного не то" что писал. Менял и частоту шины и размер загружаемых данных (32,16 бит), - ничего не помагает. На картинке приведена BlockDiagram моей системы. Может память нельзя так подключать? В моей ветке о проблеме немного подробнее: http://electronix.ru/forum/index.php?showtopic=50288 Изменено 29 октября, 2008 пользователем zherdiy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex77 4 30 октября, 2008 Опубликовано 30 октября, 2008 · Жалоба Я вот думаю, может и у меня mpmc не коректно работает с DDR2 по PLB из-за ее глючности? Не пойму в чем причина: пишу - читаю из памяти, и получаю "немного не то" что писал. Менял и частоту шины и размер загружаемых данных (32,16 бит), - ничего не помагает. На картинке приведена BlockDiagram моей системы. Может память нельзя так подключать? В моей ветке о проблеме немного подробнее: http://electronix.ru/forum/index.php?showtopic=50288 Несколько замечаний: 1) У меня сложилось ощущение что s3an + EDK10.2 сыроват. Я пытался сделать один и тот же проект на s3an и на s3e. Так вот на s3an компиляция не прошла (а может у меня руки кривые). 2) возможны глюки при использовании кеша. (если его не правильно сконфигурить) 3) Было много исправлений в mpmc с версии 3 по 4 4) Я так думаю, что если есть демо плата то где-то должен быть заведомо исправный проект. 5) Воспользоваться отладчиком в SDK ? 6) Если пользоваться "волшебником" в EDK 9 почему-то не всегда правильно формируется C_MEM_DM_WIDTH в MPMC 7) кроме всего прочего доступ к памяти должен быть выравнен на границу данных. Если писать / читать слово (4 байта) то и адрес должен быть кратен 4. (или я ошибаюсь ?) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zherdiy 0 3 ноября, 2008 Опубликовано 3 ноября, 2008 · Жалоба 1) У меня ISE 9.2.04i и то со Spartan3AN "сыроват" - урезана практическии вся база в создавалке корок IP(Coregen&ArhitectureWizard). 2) какого еще кеша? 4) полного проекта нигде не нашел 5) а как пользоваться отладчиком SDK? В общем? 7) пробовал задавать даже так: pMem[32] = 33264; pMem[132] = 44332211; - не помогло. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex77 4 5 ноября, 2008 Опубликовано 5 ноября, 2008 · Жалоба 1) У меня ISE 9.2.04i и то со Spartan3AN "сыроват" - урезана практическии вся база в создавалке корок IP(Coregen&ArhitectureWizard). 2) какого еще кеша? 4) полного проекта нигде не нашел 5) а как пользоваться отладчиком SDK? В общем? 7) пробовал задавать даже так: pMem[32] = 33264; pMem[132] = 44332211; - не помогло. 2) в процессоре 4) К примеру http://www.xilinx.com/products/boards/s3as...nce_designs.htm 5) Дык в хелпе написано А посмотреть можно ? *.mhs *.mss *.xmp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex77 4 5 ноября, 2008 Опубликовано 5 ноября, 2008 · Жалоба 2) в процессоре 4) К примеру http://www.xilinx.com/products/boards/s3as...nce_designs.htm 5) Дык в хелпе написано А посмотреть можно ? *.mhs *.mss *.xmp В догонку: *.ucf Число IP-core что в 9.2.2 и 10.1.3 практически одно и тоже. Может пригодится http://www.xilinx.com/support/answers/29221.htm Я пользуюсь только EDK/SDK. ISE я не использую т.к. хватает возможностей EDK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zherdiy 0 6 ноября, 2008 Опубликовано 6 ноября, 2008 · Жалоба Число IP-core что в 9.2.2 и 10.1.3 практически одно и тоже. Не для всех вариантов Плис. Для Spartan3AN с чипом XC3S700AN FGG484 они (разрабы) зачем-то закрыли кучу полезного, но это полезное перенесенное из другого проекта под другую ПЛИС работает и в S3AN. Спращивается - зачем мне лишние головняки? В примерах нету нормального проекта для Microblaze+MMPC. Что-то близко к теме есть в проекте с Web-сервером, попробую что-то выудить оттуда. Никто не в курсе что за шина XCL? Файлы прикрепил. В *.ucf у меня названия выводов соответствуют выводам проекта верхнего уровня (ISE), так что они немного отличаются от тех выводов, что в *.mhs, но соответствуют им функционально. test92_03.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться