|
SoC: скорость FPGA<->HPS и простой пример пользования |
|
|
|
Jun 4 2015, 10:23
|
вопрошающий
    
Группа: Свой
Сообщений: 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 - предпочтительнее из-за габаритов), и максимально быстрому освоению, чтобы сразу использовать, а не танцевать с бубном, пожалуйста, посоветуйте! Спасибо! ИИВ
|
|
|
|
|
 |
Ответов
(1 - 4)
|
Jun 4 2015, 12:05
|
Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
Jun 5 2015, 06:35
|
Знающий
   
Группа: Участник
Сообщений: 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 заморочиться. Сама шина Авалон такую скорость позволит без проблем, но могут быть проблемы именно с приёмом этих данных процессором..
|
|
|
|
|
Jun 7 2015, 10:23
|
Частый гость
 
Группа: Свой
Сообщений: 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/
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|