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

 
 
> Шина 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
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 21)
Alex77
сообщение Nov 6 2008, 11:54
Сообщение #16


Местный
***

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



Цитата(zherdiy @ Nov 6 2008, 12:37) *
Число IP-core что в 9.2.2 и 10.1.3 практически одно и тоже.
Не для всех вариантов Плис. Для Spartan3AN с чипом XC3S700AN FGG484 они (разрабы) зачем-то закрыли кучу полезного, но это полезное перенесенное из другого проекта под другую ПЛИС работает и в S3AN. Спращивается - зачем мне лишние головняки?

В примерах нету нормального проекта для Microblaze+MMPC. Что-то близко к теме есть в проекте с Web-сервером, попробую что-то выудить оттуда. Никто не в курсе что за шина XCL?

Файлы прикрепил. В *.ucf у меня названия выводов соответствуют выводам проекта верхнего уровня (ISE), так что они немного отличаются от тех выводов, что в *.mhs, но соответствуют им функционально.


Я так понял что используется ISE вместо EDK ?
По мне если есть демо плата то лучше всего использовать EDK. потренироваться, а потом и в бой.

В этом *.ucf задаются только типы интерфейсов, а распределение выводов отсутствует. Можно увидеть все *.ucf ?

Это была лирика. теперь к делу.

1) внешний тактовый генератор на 50 мгц. Зачем умножителем задано 66.666666 и 133,333333 мгц. Более прощее 62.5 и 125 тогда в mpmc можно будет точнее указать 8 нсек в место 7.499. C_MPMC_CLK0_PERIOD_PS
2) ECC используется ? Это о сигналах DDR2_SDRAM_DDR2_DQS_n итд. По мне они здесь явно лишние.
3) шина XCL? читать в описании cpu. в двух словах: это более быстрая шина чем plb ( как вариант используется между cpu и mpmc).
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Nov 6 2008, 13:47
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(Alex77 @ Nov 6 2008, 14:54) *
2) ECC используется ? Это о сигналах DDR2_SDRAM_DDR2_DQS_n итд. По мне они здесь явно лишние.
Какая связь между DQS и ECC? DQS - это строб байта данных.
Go to the top of the page
 
+Quote Post
Alex77
сообщение Nov 6 2008, 14:32
Сообщение #18


Местный
***

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



Цитата(DmitryR @ Nov 6 2008, 16:47) *
Какая связь между DQS и ECC? DQS - это строб байта данных.

Снимаю шляпу...
Видать слишком сильно задумался о насущном...

Да. Ошибся.
Go to the top of the page
 
+Quote Post
zherdiy
сообщение Nov 10 2008, 06:44
Сообщение #19


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

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



Цитата(Alex77 @ Nov 6 2008, 14:54) *
Я так понял что используется ISE вместо EDK ?

Почему сразу "вместо"? У меня ISE - проект верхнего уровня, а EDK - нижнего.

Цитата(Alex77 @ Nov 6 2008, 14:54) *
В этом *.ucf задаются только типы интерфейсов, а распределение выводов отсутствует. Можно увидеть все *.ucf ?

А это что, к примеру: NET "led_out<7>" LOC = W21;? А UCF от EDK я вообще не использую.

Цитата(Alex77 @ Nov 6 2008, 14:54) *
1) внешний тактовый генератор на 50 мгц. Зачем умножителем задано 66.666666 и 133,333333 мгц. Более прощее 62.5 и 125 тогда в mpmc можно будет точнее указать 8 нсек в место 7.499. C_MPMC_CLK0_PERIOD_PS
3) шина XCL? читать в описании cpu. в двух словах: это более быстрая шина чем plb ( как вариант используется между cpu и mpmc).

1) 66.666666 попробую обратно на 62.5, но 133 - это не умножитель, у меня на ките это внешний генератор.
3) попробовать что ли шину XCL под ДДР2?
Go to the top of the page
 
+Quote Post
Alex77
сообщение Nov 11 2008, 09:16
Сообщение #20


Местный
***

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



Цитата(zherdiy @ Nov 10 2008, 09:44) *
Почему сразу "вместо"? У меня ISE - проект верхнего уровня, а EDK - нижнего.
А это что, к примеру: NET "led_out<7>" LOC = W21;? А UCF от EDK я вообще не использую.
1) 66.666666 попробую обратно на 62.5, но 133 - это не умножитель, у меня на ките это внешний генератор.
3) попробовать что ли шину XCL под ДДР2?



1) По вопросу частоты:
В system.mhs указано что внешняя частота 50 МГц ( PARAMETER C_CLKIN_FREQ = 50000000 )
а вы утверждаете что используете 133 МГц с внешнего генератора. Это так ?

BEGIN clock_generator
PARAMETER INSTANCE = clock_generator_0
PARAMETER HW_VER = 1.00.a
PARAMETER C_EXT_RESET_HIGH = 1
PARAMETER C_CLKIN_FREQ = 50000000
PARAMETER C_CLKOUT0_FREQ = 66666667
PARAMETER C_CLKOUT0_PHASE = 0
PARAMETER C_CLKOUT0_GROUP = NONE
PARAMETER C_CLKOUT1_FREQ = 133333334
PARAMETER C_CLKOUT1_PHASE = 0
PARAMETER C_CLKOUT1_GROUP = GROUP0
PARAMETER C_CLKOUT2_FREQ = 133333334
PARAMETER C_CLKOUT2_PHASE = 90
PARAMETER C_CLKOUT2_GROUP = GROUP0
PORT CLKOUT0 = sys_clk_s
PORT CLKOUT1 = DDR2_SDRAM_mpmc_clk_s
PORT CLKOUT2 = DDR2_SDRAM_mpmc_clk_90_s
PORT CLKIN = dcm_clk_s
PORT LOCKED = Dcm_all_locked
PORT RST = net_gnd
END

3) это можно будет использовать когда заработает связка mpmc+ddr. (для ускорения выполнения программы процессором)
Go to the top of the page
 
+Quote Post
zherdiy
сообщение Nov 12 2008, 06:49
Сообщение #21


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

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



50MGz - от внешнего генератора - для clk процессора;
133MGz - от внешнего генератора через DCM для получения прямых и смещенных на 90град тактовых импульсов - для MIG. Внутренний dcm MIGа не использую.

Предыдущий мой пост не читать - это я не проснулся еще, а так как предыдущие два дня пробовал разбираться с коркой MIG, то...

На самом деле у меня на ките есть и 50 и 133МГц, но моя связка Microblaze+MPMC использует только 50. Остальное - уже преобразование внутренними умножителями через ClockGenerator.

3) А если не заработает? Я что, не смогу сейчас шину XCL попробовать? Щас попробую переделать проектик.

p.s.: а на MIGе память заработала, значит не глючная.
Go to the top of the page
 
+Quote Post
zherdiy
сообщение Nov 12 2008, 14:34
Сообщение #22


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

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



Переделал на XCL - те же пироги, ничего не поменялось. Я правда MPMC прицепил только к DXCL. Наверное, я как-то не так к этой памяти обращаюсь, а шины тут ни при чем.

Alex77, не черкнете пару строк кода как вы в память пишете и читаете несколько раз подряд?

Сообщение отредактировал zherdiy - Nov 12 2008, 14:37
Go to the top of the page
 
+Quote Post

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

 


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


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