реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Шина PLB, Вопрос о производительности
Cont
сообщение Oct 15 2008, 06:01
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



Доброго времени суток. Вопрос к специалистам по Xilinx. Решил использовать Microblaze в системе сбора данных. Добавил в проект EDK свое периферийное устройство с интерфейсом PLB, суть которого получать данные с параллельного ацп. На другой строне у меня стоит контроллер памяти. Еще к шине, помимо проца, подключен контроллер BRAM, в которой храниться моя программа и UART, для передачи данных на PC. По логике вещей когда память заполнится, проц может приступить к обработке. Вроде в даташите написано, что шина мультиплексируемая, но когда я посмотрел что творится с шиной в Modelsim, пришел в ужас. Судя по диаграммам шина обычная, разделяемая, и если проц обращается к BRAM, то данные из ацп в Sdram уже не поступают. Но более того, меня поразила низкая производительность шины. Сначала 10 тактов - цикл адреса, потом еще 10 - цикл данных, потом еще 10 тактов ждем непонятно что. Вообщем с 8-битного 100Mhz ацп непрерывно данные получать невозможно. Работать напрямую тоже не хочется, проц нужен однозначно. Реализовывать пакетные передачи по шине пробовал, потратил уйму времени, не помогло (хотя и стало работать быстрее). Кто-нибудь сталкивался с этой шиной. Может быть я где-то косячу, не понимаю, почему такая низкая производительность. Работал с Альтерой, там шина Avalon куда шустрее была.
Заранее спасибо!

Может быть существует возможность подключения проца напрямую, но тогда нужно реализовать собственную шину. Есть ли реализация чего-нибудь подобного. Хотелось бы так же найти информация по шинам, принципам реализации на HDL
Go to the top of the page
 
+Quote Post
des00
сообщение Oct 15 2008, 06:34
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 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 работали

Удачи !!!


--------------------
Go to the top of the page
 
+Quote Post
Alex77
сообщение Oct 15 2008, 08:11
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695



Цитата(Cont @ Oct 15 2008, 10:01) *
и если проц обращается к BRAM, то


А почему BRAM подключен к процессору через PLB ? Ведь для этого есть отдельная шины LMB.
А посмотреть к примеру DMA ?
Go to the top of the page
 
+Quote Post
Дмитрий Мазунин
сообщение Oct 15 2008, 09:15
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 259
Регистрация: 19-09-05
Из: Екатеринбург
Пользователь №: 8 715



Самое быстрое - сделать ядро, работающее с АЦП и подключенное к отдельному NPI порту MPMC и качать напрямую в память. Мы так и делаем.
Go to the top of the page
 
+Quote Post
Cont
сообщение Oct 15 2008, 14:17
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



Всем большое спасибо за ответы

Дмитрий Мазунин
Подключить АЦП к NPI порту MPMC: такая идея уже возникла, да вот только на плату память поставили такую, что MPMC с ней неработает. Вот пришлось делать свой контроллер.

Теперь передо мной задача, либо использовать вариант предложенный des00 с FSL-линками, либо попытаться реализовать свой MPMC(к счастью в EDK нашел его исходники!).
Go to the top of the page
 
+Quote Post
Дмитрий Мазунин
сообщение Oct 16 2008, 07:24
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 259
Регистрация: 19-09-05
Из: Екатеринбург
Пользователь №: 8 715



Что значит - MPMC не работает с Вашей памятью ?
Ее нет в списке MPMC ? Или уже собранный проект не работает в железе ? Какая память у Вас ?
Go to the top of the page
 
+Quote Post
axalay
сообщение Oct 16 2008, 09:36
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 388
Регистрация: 27-02-06
Из: Москва
Пользователь №: 14 759



Цитата(Дмитрий Мазунин @ Oct 16 2008, 11:24) *
Что значит - MPMC не работает с Вашей памятью ?
Ее нет в списке MPMC ? Или уже собранный проект не работает в железе ? Какая память у Вас ?


МПМС чето с СДРАМ не желает работать. Я решил эту проблему переходником на ОПБ и ОПБ_СДРАМ контроллером. Если У Вас с МПМС работает СДРАМ - я был бы благодарен за совет. Версия сапра 9.2, а плиска виртекс5
Go to the top of the page
 
+Quote Post
Alex77
сообщение Oct 16 2008, 10:45
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 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.
Go to the top of the page
 
+Quote Post
axalay
сообщение Oct 16 2008, 11:12
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 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 нет. Просто чего то не желает работать
Go to the top of the page
 
+Quote Post
zherdiy
сообщение Oct 29 2008, 13:44
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 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
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Alex77
сообщение Oct 30 2008, 07:26
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 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. (или я ошибаюсь ?)
Go to the top of the page
 
+Quote Post
zherdiy
сообщение Nov 3 2008, 10:06
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 93
Регистрация: 8-01-08
Из: Запорожье
Пользователь №: 33 895



1) У меня ISE 9.2.04i и то со Spartan3AN "сыроват" - урезана практическии вся база в создавалке корок IP(Coregen&ArhitectureWizard).
2) какого еще кеша?
4) полного проекта нигде не нашел
5) а как пользоваться отладчиком SDK? В общем?
7) пробовал задавать даже так:
pMem[32] = 33264;
pMem[132] = 44332211; - не помогло.
Go to the top of the page
 
+Quote Post
Alex77
сообщение Nov 5 2008, 08:13
Сообщение #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.htm
5) Дык в хелпе написано

А посмотреть можно ?
*.mhs
*.mss
*.xmp
Go to the top of the page
 
+Quote Post
Alex77
сообщение Nov 5 2008, 11:18
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695



Цитата(Alex77 @ Nov 5 2008, 11:13) *
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.
Go to the top of the page
 
+Quote Post
zherdiy
сообщение Nov 6 2008, 09:37
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 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, но соответствуют им функционально.
Прикрепленные файлы
Прикрепленный файл  test92_03.rar ( 4.85 килобайт ) Кол-во скачиваний: 31
 
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th August 2025 - 17:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01489 секунд с 7
ELECTRONIX ©2004-2016