|
Шина PLB, Вопрос о производительности |
|
|
|
Oct 15 2008, 06:01
|
Частый гость
 
Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176

|
Доброго времени суток. Вопрос к специалистам по Xilinx. Решил использовать Microblaze в системе сбора данных. Добавил в проект EDK свое периферийное устройство с интерфейсом PLB, суть которого получать данные с параллельного ацп. На другой строне у меня стоит контроллер памяти. Еще к шине, помимо проца, подключен контроллер BRAM, в которой храниться моя программа и UART, для передачи данных на PC. По логике вещей когда память заполнится, проц может приступить к обработке. Вроде в даташите написано, что шина мультиплексируемая, но когда я посмотрел что творится с шиной в Modelsim, пришел в ужас. Судя по диаграммам шина обычная, разделяемая, и если проц обращается к BRAM, то данные из ацп в Sdram уже не поступают. Но более того, меня поразила низкая производительность шины. Сначала 10 тактов - цикл адреса, потом еще 10 - цикл данных, потом еще 10 тактов ждем непонятно что. Вообщем с 8-битного 100Mhz ацп непрерывно данные получать невозможно. Работать напрямую тоже не хочется, проц нужен однозначно. Реализовывать пакетные передачи по шине пробовал, потратил уйму времени, не помогло (хотя и стало работать быстрее). Кто-нибудь сталкивался с этой шиной. Может быть я где-то косячу, не понимаю, почему такая низкая производительность. Работал с Альтерой, там шина Avalon куда шустрее была. Заранее спасибо!
Может быть существует возможность подключения проца напрямую, но тогда нужно реализовать собственную шину. Есть ли реализация чего-нибудь подобного. Хотелось бы так же найти информация по шинам, принципам реализации на HDL
|
|
|
|
|
Oct 15 2008, 06:34
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Cont @ Oct 15 2008, 01:01)  Может быть существует возможность подключения проца напрямую, но тогда нужно реализовать собственную шину. Есть ли реализация чего-нибудь подобного. Хотелось бы так же найти информация по шинам, принципам реализации на HDL а что вы хотите, все таки это PLB от самой IBM, а не Avalon от какой то альтеры %))) если вам нужно быстро и в одну сторону, почему бы вам не воспользоваться FSL линками + DWC с 8 ми до 36 бит. они как раз для этого и были придуманы. Или как вариант MPMC и качать данные через один из его портов в память. Шина реализуется просто, основных архитектур 2 shared bus / cross bar switch + арбитр с вашим алгоритмом. Ну а дальше берете стандарт на шину и делаете. Кстати у альтеры про это очень хорошо написано в доках, зачем же искать чего то более, тем более что вы с Avalon Switch Fabric работали Удачи !!!
--------------------
|
|
|
|
|
Oct 15 2008, 08:11
|
Местный
  
Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695

|
Цитата(Cont @ Oct 15 2008, 10:01)  и если проц обращается к BRAM, то А почему BRAM подключен к процессору через PLB ? Ведь для этого есть отдельная шины LMB. А посмотреть к примеру DMA ?
|
|
|
|
|
Oct 16 2008, 09:36
|
Местный
  
Группа: Свой
Сообщений: 388
Регистрация: 27-02-06
Из: Москва
Пользователь №: 14 759

|
Цитата(Дмитрий Мазунин @ Oct 16 2008, 11:24)  Что значит - MPMC не работает с Вашей памятью ? Ее нет в списке MPMC ? Или уже собранный проект не работает в железе ? Какая память у Вас ? МПМС чето с СДРАМ не желает работать. Я решил эту проблему переходником на ОПБ и ОПБ_СДРАМ контроллером. Если У Вас с МПМС работает СДРАМ - я был бы благодарен за совет. Версия сапра 9.2, а плиска виртекс5
|
|
|
|
|
Oct 16 2008, 10:45
|
Местный
  
Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695

|
Цитата(axalay @ Oct 16 2008, 13:36)  МПМС чето с СДРАМ не желает работать. Я решил эту проблему переходником на ОПБ и ОПБ_СДРАМ контроллером. Если У Вас с МПМС работает СДРАМ - я был бы благодарен за совет. Версия сапра 9.2, а плиска виртекс5 Что значит не работает ? В 10.sp3 есть MPMC v4. Так в ней есть sdram & ddr. В свой проект заложил MPMC + sdram + spartan3e. Проект собирается. Будет печать посмотрим на результат. Да и в 9.2 MPMC + sdram тоже было. см в pdf. А opb шина мне видится ещё более тормознее чем plb.
|
|
|
|
|
Oct 16 2008, 11:12
|
Местный
  
Группа: Свой
Сообщений: 388
Регистрация: 27-02-06
Из: Москва
Пользователь №: 14 759

|
Цитата(Alex77 @ Oct 16 2008, 14:45)  Что значит не работает ? В 10.sp3 есть MPMC v4. Так в ней есть sdram & ddr. В свой проект заложил MPMC + sdram + spartan3e. Проект собирается. Будет печать посмотрим на результат. Да и в 9.2 MPMC + sdram тоже было. см в pdf. А opb шина мне видится ещё более тормознее чем plb. А я и не говорил, что МПМС+СДРАМ в 9.2 нет. Просто чего то не желает работать
|
|
|
|
|
Oct 29 2008, 13:44
|
Частый гость
 
Группа: Участник
Сообщений: 93
Регистрация: 8-01-08
Из: Запорожье
Пользователь №: 33 895

|
Я вот думаю, может и у меня mpmc не коректно работает с DDR2 по PLB из-за ее глючности? Не пойму в чем причина: пишу - читаю из памяти, и получаю "немного не то" что писал. Менял и частоту шины и размер загружаемых данных (32,16 бит), - ничего не помагает. На картинке приведена BlockDiagram моей системы. Может память нельзя так подключать? В моей ветке о проблеме немного подробнее: http://electronix.ru/forum/index.php?showtopic=50288
Сообщение отредактировал zherdiy - Oct 29 2008, 13:46
Эскизы прикрепленных изображений
|
|
|
|
|
Oct 30 2008, 07:26
|
Местный
  
Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695

|
Цитата(zherdiy @ Oct 29 2008, 16:44)  Я вот думаю, может и у меня 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. (или я ошибаюсь ?)
|
|
|
|
|
Nov 5 2008, 08:13
|
Местный
  
Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695

|
Цитата(zherdiy @ Nov 3 2008, 13:06)  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.htm5) Дык в хелпе написано А посмотреть можно ? *.mhs *.mss *.xmp
|
|
|
|
|
Nov 6 2008, 09:37
|
Частый гость
 
Группа: Участник
Сообщений: 93
Регистрация: 8-01-08
Из: Запорожье
Пользователь №: 33 895

|
Число IP-core что в 9.2.2 и 10.1.3 практически одно и тоже.Не для всех вариантов Плис. Для Spartan3AN с чипом XC3S700AN FGG484 они (разрабы) зачем-то закрыли кучу полезного, но это полезное перенесенное из другого проекта под другую ПЛИС работает и в S3AN. Спращивается - зачем мне лишние головняки? В примерах нету нормального проекта для Microblaze+MMPC. Что-то близко к теме есть в проекте с Web-сервером, попробую что-то выудить оттуда. Никто не в курсе что за шина XCL? Файлы прикрепил. В *.ucf у меня названия выводов соответствуют выводам проекта верхнего уровня (ISE), так что они немного отличаются от тех выводов, что в *.mhs, но соответствуют им функционально.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|