Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-iMX53-XC6SLX
Скорость обмена данными с ПЛИС
LightBasic
Добавлено 31.10.2012 19:28
0
Сообщение: 1
LightBasic
0

Пункты: 362
Регистрация: 05.04.2012
Добрый день! Никогда не занимался программированием АРМов, поэтому вопрос соответствующего уровня)
Итак, АРМ завязан с ПЛИСом через шину EIM. Просматривая исходник утилиты fpga_test, я обнаружил следующую конфигурацию:

SMC0_Reg = my_map(0x63FDA000); //CS0 config
SMC0_Reg->CSXGCR1 = (1<<16 | 1<<20 | 3<<4 | 1<<3 | 7 | 1<<12 | 0<<14);
SMC0_Reg->CSXGCR2 = (0<<12 | 0);
SMC0_Reg->CSXRCR1 = (3<<24 | 0<<20 | 1<<16);
SMC0_Reg->CSXRCR2 = (0);
SMC0_Reg->CSXWCR1 = (3<<24 | 1<<18 | 2<<9);
SMC0_Reg->CSXWCR2 = (0);

Используя эту конфигурацию, я написал бенчмарк, который измеряет скорость чтения и записи по EMI, примерно так:
for (j = 0; j < 1000000; j++)
{
n = *CS1_ptr;
n = *CS1_ptr;
... //много раз, каждый раз по шине передается в режиме мультиплексирования по 1му и 2му BCLK 2х16бит адреса, по 3му и 4му BCLK 2х16 бит данных, ПЛИСка просто записывает в DA магическое число.
}

Измеренная скорость чтения составила примерно 15 мегайбайт в секунду. Скорость записи немного больше.

Вопрос. Можно ли сделать быстрее? Пропускной способности в 15 мб/с мне катастрофически не хватает. Я пытался менять конфигурацию, но безуспешно, т.к. 5000-страничный мануал содержит слишком лаконичное для меня описание назначения битов.
В частности, изменение битов BCD (Burst clock divisor) с 01 на 00 (деление на 1 вместо деления на 2) не дало вообще никакого изменения быстродействия.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 31.10.2012 20:27 Редактировалось 31.10.2012 20:28 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 92805
Регистрация: 24.03.2009
Пол: Мужчина
Цитата
Вопрос. Можно ли сделать быстрее?

Можно, вот только как все выстроить чтоб повысить быстродействие, боюсь, что кроме Вас этим вряд ли кто озадачится (тем более, какие биты регистров конфигурации за что отвечают).
Моя задача была показать функциональнось, часть таймингов явно завышены, рвзбираться с тем как их уменьшить я не стал.
1) подредактировать FPGA автомат взаимодействия с шиной - разместить входные триггеры в IOPAD области, в противном случае будет слабоконтроллируемый путь пин-триггер с величиной до нескольких наносекунд, только не ждите того, что прописав констрайны регистры туда лягут, нужно перепроверять после PAR
2) после этого можно увеличивать частоту шины, уменьшать тайминги задержек и установок
3) испоьзовать burst режим - передается только один адрес и несколько слов данных подряд
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-iMX53-XC6SLX