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

 
 
> SoC: скорость FPGA<->HPS и простой пример пользования
iiv
сообщение Jun 4 2015, 10:23
Сообщение #1


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Добрый день,

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

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

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

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

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

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

Спасибо!

ИИВ
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
goodsoul
сообщение Jun 4 2015, 12:05
Сообщение #2


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

Группа: Участник
Сообщений: 136
Регистрация: 3-09-09
Пользователь №: 52 178



Цитата(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 блоках поддерживается. Но это так, к сведению.

Сообщение отредактировал goodsoul - Jun 4 2015, 12:16
Go to the top of the page
 
+Quote Post
serjj
сообщение Jun 5 2015, 06:35
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Числа указываю примерные, по памяти. Для шины 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 заморочиться. Сама шина Авалон такую скорость позволит без проблем, но могут быть проблемы именно с приёмом этих данных процессором..
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jun 5 2015, 06:53
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Цитата(serjj @ Jun 5 2015, 08:35) *
А не подскажете, это через DMA или так?

Это DMA, гонял тут ради прикола так, полу-ногодрыгом - цифра в среднем десятки мегабайт.
Go to the top of the page
 
+Quote Post
johan
сообщение Jun 7 2015, 10:23
Сообщение #5


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

Группа: Свой
Сообщений: 78
Регистрация: 3-09-12
Пользователь №: 73 371



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

des333 писал пару статей на хабре про SoC, и даже есть примеры кода.
Возможно, это то, что Вы ищите:
http://habrahabr.ru/post/235707/
http://habrahabr.ru/post/248145/


--------------------
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 14:51
Рейтинг@Mail.ru


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