Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SoC: скорость FPGA<->HPS и простой пример пользования
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
iiv
Добрый день,

так еще не сложилось попробовать SoC, а сейчас возникла реальная задача - на FPGA генерятся данные, которые необходимо обработать и вернуть туда же, исходные и конечные данные целочисленные, а решение можно организовать только в плавающей арифметике с помощью вызовов библиотеки Lapack. На раз ARM-Neon c этой задачей справляется, только надо 3-4ГБита/с на Неон загнать и 50МБит/с с него на FPGA перетащить.

Хочу для этого попользовать DE0-Nano-SoC или SoCKit, первый вариант предпочтительнее, из-за размеров.

Скажите, пожалуйста:

1. какая реально достигаемая пропускная способность между FPGA и HPS частями в этих циклонах? Курил документацию, но кроме того, что ширина шины 128 бит так и не понял, с какой скоростью можно по этой шине что-то посылать и есть ли при посылке какие-то скрытые подводные камни, тормозящие трафик?

2. если есть у кого, или знаете где лежит, поделитесь, пожалуйста, если не жалко, простым и понятным примером посылки массива слов из verilog модуля FPGA с забором в С-ной функции на HPS и то же самое в обратную сторону. Примеры на СD к этим бордам качал, понятного решения не нашел, может не там искал?

Очень хочется во-первых, купить то, что реально подойдет по скорости (DE0 - предпочтительнее из-за габаритов), и максимально быстрому освоению, чтобы сразу использовать, а не танцевать с бубном, пожалуйста, посоветуйте!

Спасибо!

ИИВ
goodsoul
Цитата(iiv @ Jun 4 2015, 13:23) *
Добрый день,

так еще не сложилось попробовать SoC, а сейчас возникла реальная задача - на FPGA генерятся данные, которые необходимо обработать и вернуть туда же, исходные и конечные данные целочисленные, а решение можно организовать только в плавающей арифметике с помощью вызовов библиотеки Lapack. На раз ARM-Neon c этой задачей справляется, только надо 3-4ГБита/с на Неон загнать и 50МБит/с с него на FPGA перетащить.

Хочу для этого попользовать DE0-Nano-SoC или SoCKit, первый вариант предпочтительнее, из-за размеров.

Скажите, пожалуйста:

1. какая реально достигаемая пропускная способность между FPGA и HPS частями в этих циклонах? Курил документацию, но кроме того, что ширина шины 128 бит так и не понял, с какой скоростью можно по этой шине что-то посылать и есть ли при посылке какие-то скрытые подводные камни, тормозящие трафик?

ИИВ



Альтера гоняла бенчмарки на своих SoC'ах. Конфигурация примерно следующая: CPU 800MHz, FPGA 200MHz, AXI 400 MHz.

Числа указываю примерные, по памяти. Для шины 128 бит. Скорость чтения и записи примерно одинаковые были.
HPS -> FPGA : ~1000 MB/s (мегабайт в секунд)
FPGA -> HPS: ~1600 MB/s
FPGA -> HPS SRAM controller: ~3000MB/s

Есть еще reference design на HWLIB для этого бенчмарка. Если нужно - пишите в личку.

+ терасик обещает скоро запустить на rocketboards.org страницу DE0-Nano-SoC. Думаю, там должны появиться примеры проектов.

Я конечно не знаю, какой у вас бюджет и сроки, но если нужна обработка плавающей точки, то может есть смысл глянуть на Arria 10/Arria 10 SoC. Там в FPGA плавающая точка IEEE754 в аппаратном виде в DSP блоках поддерживается. Но это так, к сведению.
serjj
Цитата
Числа указываю примерные, по памяти. Для шины 128 бит. Скорость чтения и записи примерно одинаковые были.
HPS -> FPGA : ~1000 MB/s (мегабайт в секунд)
FPGA -> HPS: ~1600 MB/s
FPGA -> HPS SRAM controller: ~3000MB/s

А не подскажете, это через DMA или так?
Цитата
так еще не сложилось попробовать SoC, а сейчас возникла реальная задача - на FPGA генерятся данные, которые необходимо обработать и вернуть туда же, исходные и конечные данные целочисленные, а решение можно организовать только в плавающей арифметике с помощью вызовов библиотеки Lapack. На раз ARM-Neon c этой задачей справляется, только надо 3-4ГБита/с на Неон загнать и 50МБит/с с него на FPGA перетащить.

50 Мбит/с - это запросто на обычном Авалоне, а на 3-4 Гбит/с думаю есть смысл с DMA заморочиться. Сама шина Авалон такую скорость позволит без проблем, но могут быть проблемы именно с приёмом этих данных процессором..
Kuzmi4
Цитата(serjj @ Jun 5 2015, 08:35) *
А не подскажете, это через DMA или так?

Это DMA, гонял тут ради прикола так, полу-ногодрыгом - цифра в среднем десятки мегабайт.
johan
Цитата(iiv @ Jun 4 2015, 13:23) *
2. если есть у кого, или знаете где лежит, поделитесь, пожалуйста, если не жалко, простым и понятным примером посылки массива слов из verilog модуля FPGA с забором в С-ной функции на HPS и то же самое в обратную сторону. Примеры на СD к этим бордам качал, понятного решения не нашел, может не там искал?

des333 писал пару статей на хабре про SoC, и даже есть примеры кода.
Возможно, это то, что Вы ищите:
http://habrahabr.ru/post/235707/
http://habrahabr.ru/post/248145/
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.