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

 
 
 
Reply to this topicStart new topic
> Основы работы с SoC, C какой стороны подходить к этому зверю.
Flip-fl0p
сообщение Feb 17 2017, 06:48
Сообщение #1


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Добрый день уважаемые форумчане. Недавно дали поиграться такой вот платой: DE1-SOC-MTL2, TERASIC TECHNOLOGIES. Данная плата содержит богатый набор периферии на стороне FPGA и на стороне HPS. Если с доступом к периферии на стороне FPGA у меня вопросов не возникает, то как получить доступ к периферии на стороне HPS я на данный момент не имею ни малейшего понятия. Поскольку раньше я никогда не работал с SoC (системами на кристалле) появились затруднения в изучении этого вопроса. В частности не знаю с какой стороны подойти к изучению основ работы с SoC. Многие примеры, которые есть в сети, показывают как делать достаточно сложные и непонятные вещи для новичка, например запуск Linux и пр. А начать хочется с каких-нибудь простых вещей. К примеру на стороне HPS есть приёмник UART. Я хочу получить доступ со стороны FPGA к данным принимаемым этим приемником. Иными словами я хочу научиться общаться со стороны FPGA с периферий на стороне HPS.
К чему я хочу придти в итоге: в итоге я хочу создать собственный контроллер ЖК дисплея, принимающий данные по DVI, и выводящий этот видеопоток на LCD дисплей. Для этого я хочу использовать память DDR3 на стороне HPS в качестве кадрового буфера. На данный момент я на более простой плате МАРСОХОД2 смог реализовать: прием данных изображения по UART, запись этого изображения в SDRAM память, и вывод изображения из памяти на LVDS матрицу. Для принятия видеопотока по DVI на плате МАРСОХОД2 не хватает LVDS входов.
Очень прошу помощи в подсказке, с чего начать изучение базовых вещей для работы с SoC.
Go to the top of the page
 
+Quote Post
alxkon
сообщение Feb 17 2017, 08:32
Сообщение #2


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

Группа: Участник
Сообщений: 90
Регистрация: 16-11-10
Пользователь №: 60 920



Цитата(Flip-fl0p @ Feb 17 2017, 09:48) *
Добрый день уважаемые форумчане. Недавно дали поиграться такой вот платой: DE1-SOC-MTL2, TERASIC TECHNOLOGIES. Данная плата содержит богатый набор периферии на стороне FPGA и на стороне HPS. Если с доступом к периферии на стороне FPGA у меня вопросов не возникает, то как получить доступ к периферии на стороне HPS я на данный момент не имею ни малейшего понятия. Поскольку раньше я никогда не работал с SoC (системами на кристалле) появились затруднения в изучении этого вопроса. В частности не знаю с какой стороны подойти к изучению основ работы с SoC. Многие примеры, которые есть в сети, показывают как делать достаточно сложные и непонятные вещи для новичка, например запуск Linux и пр. А начать хочется с каких-нибудь простых вещей. К примеру на стороне HPS есть приёмник UART. Я хочу получить доступ со стороны FPGA к данным принимаемым этим приемником. Иными словами я хочу научиться общаться со стороны FPGA с периферий на стороне HPS.
К чему я хочу придти в итоге: в итоге я хочу создать собственный контроллер ЖК дисплея, принимающий данные по DVI, и выводящий этот видеопоток на LCD дисплей. Для этого я хочу использовать память DDR3 на стороне HPS в качестве кадрового буфера. На данный момент я на более простой плате МАРСОХОД2 смог реализовать: прием данных изображения по UART, запись этого изображения в SDRAM память, и вывод изображения из памяти на LVDS матрицу. Для принятия видеопотока по DVI на плате МАРСОХОД2 не хватает LVDS входов.
Очень прошу помощи в подсказке, с чего начать изучение базовых вещей для работы с SoC.

В SoC главное, как в танке - не дрейфить. С Альтеровскими не работал. Только с ксалинксовыми Зинками. Процес обучения получился ступеньчатым.
FPGA в SoC есть обычный FPGA, а CPU есть обычный CPU. Нужно изучить как их связать, т.е. axi интерконнект и разобрать настройки АРМа. Написать самый простой модуль для FPGA который будет писать даные в память. Написать простую програму для АРМа, советую до линукса - bare-metal, легче разбирать собственные ошибки.
Cначала могут испугать толстые мануалы, которые в один присест не скурить. От простого к сложному, ничего сложного там нет.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Feb 17 2017, 08:39
Сообщение #3


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(alxkon @ Feb 17 2017, 11:32) *
В SoC главное, как в танке - не дрейфить. С Альтеровскими не работал. Только с ксалинксовыми Зинками. Процес обучения получился ступеньчатым.
FPGA в SoC есть обычный FPGA, а CPU есть обычный CPU. Нужно изучить как их связать, т.е. axi интерконнект и разобрать настройки АРМа. Написать самый простой модуль для FPGA который будет писать даные в память. Написать простую програму для АРМа, советую до линукса - bare-metal, легче разбирать собственные ошибки.
Cначала могут испугать толстые мануалы, которые в один присест не скурить. От простого к сложному, ничего сложного там нет.

Вот сейчас и тыкаюсь. Пытаюсь понять с чего начать. Пытаюсь понять как работает инструмент Qusys . Поскольку, как я понял, это основной инструмент для разработки FPGA <==> HPS
Go to the top of the page
 
+Quote Post
hsoft
сообщение Feb 17 2017, 09:29
Сообщение #4


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

Группа: Участник
Сообщений: 190
Регистрация: 13-02-17
Пользователь №: 95 415



Альтера выкладывает тонны документации, полно вебинаров и аппликух. www.altera.com
На ютубе видео выложили как писать приложения под Soc https://www.youtube.com/watch?v=iyEZOx1YwmM
Обучалка на Вашу плату https://www.youtube.com/watch?v=52cMPKlrn28
Видео на несколько уроков как программировать Вашу плату от Altera
Конкретно по UART https://www.youtube.com/watch?v=fMmcSpgOtJ4
Полагаю в комплекте с платой документация и куча примеров.


Сообщение отредактировал hsoft - Feb 17 2017, 10:48
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Feb 17 2017, 10:06
Сообщение #5


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(hsoft @ Feb 17 2017, 12:29) *
Как то не верится в то, что Вы тыкаетесь...
Альтера выкладывает тонны документации, полно вебинаров и аппликух. www.altera.com
На ютубе видео выложили как писать приложения под Soc https://www.youtube.com/watch?v=iyEZOx1YwmM
Обучалка на Вашу плату https://www.youtube.com/watch?v=52cMPKlrn28
Видео на несколько уроков как программировать Вашу плату от Altera
Конкретно по UART https://www.youtube.com/watch?v=fMmcSpgOtJ4
Полагаю в комплекте с платой документация и куча примеров.
Может пора проинсталлировать кит и заглянуть в папку getting started.

Вы серьезно думаете, что человек, который ни разу не работал с SoC будет сходу писать приложения под SoC ?
Плату мне передали без всякой документации. CD диск, скачанный с сайта-производителя платы не содержит информации с чего начать. Да там есть пример работы с тачскрином. Но новичку типа меня далеко до работы с тачскрином....
Видео, которые мне Вы выложили я посмотрел. Чему я должен был с них научиться ? Более того DE1 и DE1-SOC это разные платы.... Приемопередатчик UART на стороне ПЛИС я уже давно реализовал. И он давно успешно работает.
А вот как UART сигнал приходящий на ножку HPS словить словить при помощи FPGA - для меня загадка. Та-же самая мигалка светодиодом потребует создания моста между FPGA <==> HPS поскольку светодиод расположен на стороне FPGA.
Вот я и задал вопрос, с чего начать, чтобы познать совсем базовые вещи.


Go to the top of the page
 
+Quote Post
AVR
сообщение Feb 17 2017, 11:14
Сообщение #6


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Flip-fl0p @ Feb 17 2017, 13:06) *
Вы серьезно думаете, что человек, который ни разу не работал с SoC будет сходу писать приложения под SoC ?

Не переживайте так, это извечная проблема обвинений в недостаточности изучения вопроса перед созданием темы, я бы на такое не реагировал в принципе.

Чтобы понять эти современные SoC, выше уже правильно написано что "FPGA в SoC есть обычный FPGA, а CPU есть обычный CPU". Иными словами, можно смотреть на то что у Вас на столе как просто ПЛИСину и как просто отдельный ARM проц, просто они в одном корпусе очутились, а так бы их соединяли линиями на плате по какой-то шине. Соответственно, дрыгать ножкой HPS части из массива FPGA нет возможности, как и наборот. Там есть, если я всё верно понимаю, относительно узкая шина между FPGA и ARM - вот через нее можно связывать две части.

Так что HPS это тупо обычный ARM с Linux. Мне приходилось работать с SoC Altera, точнее тестировать FPGA-часть имитируя HPS в тестах, и если я не ошибаюсь, я увидел там примитивную 32-битную шину. Был написан специальный драйвер для ОС Linux для возможности такого взаимодействия.

Если мои представления неверны, допускаю, то прошу знающих нежно поправить мои слова sm.gif


--------------------
Go to the top of the page
 
+Quote Post
goodsoul
сообщение Feb 17 2017, 11:40
Сообщение #7


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

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



Цитата(AVR @ Feb 17 2017, 14:14) *
Соответственно, дрыгать ножкой HPS части из массива FPGA нет возможности, как и наборот. Там есть, если я всё верно понимаю, относительно узкая шина между FPGA и ARM - вот через нее можно связывать две части.

Если мои представления неверны, допускаю, то прошу знающих нежно поправить мои слова sm.gif


Поправляю - из HPS можно дрыгать FPGA'шными пинами, и из FPGA можно дрыгать ногами HPS. Но это не является основной ценностью SoC и на практике мало кому нужно.
Типичный сценарий - в FPGA размещают специфическую периферию или акселераторы (ЦОС всякий). Для ARM'а эти блоки выглядят как обычная процессорная периферия и программисты могут со всем этим делом работать, писать драйвера и пр.

Вот пример референсный для Atlas-SoC:https://rocketboards.org/foswiki/pub/Documentation/AtlasSoCDevelopmentPlatform/System-Block-Diagram.jpg?t=1449696813
Он наглядно показывает, что "железный" FFT на FPGA быстрее программного.

В общем, youtube и rocketboards вам в помощь

Сообщение отредактировал goodsoul - Feb 17 2017, 11:42
Go to the top of the page
 
+Quote Post
Kopart
сообщение Feb 17 2017, 15:08
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(Flip-fl0p @ Feb 17 2017, 11:39) *
Вот сейчас и тыкаюсь. Пытаюсь понять с чего начать. Пытаюсь понять как работает инструмент Qusys . Поскольку, как я понял, это основной инструмент для разработки FPGA <==> HPS

Почитайте статьи des333 на Хабре про SoC Altera (в частности конфигурирование шин между fpga и HPS).
По шине fpga2hps можно залезть по Avalon в любой IP блок HPS (UART, EMAC, ...) и управлять им напрямую.
Единственное, что может понадобится "разблокировать внешний доступ к IP-блоку HPS", тк он может после ресета быть залочен "только для HPS" или отключен.


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
AVR
сообщение Feb 17 2017, 18:20
Сообщение #9


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(goodsoul @ Feb 17 2017, 14:40) *
Поправляю - из HPS можно дрыгать FPGA'шными пинами, и из FPGA можно дрыгать ногами HPS

Вот прям напрямую и непосредственно??? Не вешая вплисную периферию на общую шину с процом? Если CPU->FPGA я еще представляю, то обратное не очень. В любом случае, спасибо за пояснение sm.gif


--------------------
Go to the top of the page
 
+Quote Post
0xFFFF
сообщение Feb 19 2017, 13:21
Сообщение #10





Группа: Участник
Сообщений: 14
Регистрация: 19-02-17
Пользователь №: 95 510



https://embeddedcentric.com/zynq-training-course/
по ссылке жменька Lab
Go to the top of the page
 
+Quote Post
bugdesigner
сообщение Feb 19 2017, 14:09
Сообщение #11


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

Группа: Участник
Сообщений: 123
Регистрация: 12-06-15
Из: Земля
Пользователь №: 87 133



Мне rocketboards.org сильно помог в своё время. Там есть альтеровские семинары с примерами.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Feb 28 2017, 11:44
Сообщение #12


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(alxkon @ Feb 17 2017, 11:32) *
В SoC главное, как в танке - не дрейфить. С Альтеровскими не работал. Только с ксалинксовыми Зинками. Процес обучения получился ступеньчатым.
FPGA в SoC есть обычный FPGA, а CPU есть обычный CPU. Нужно изучить как их связать, т.е. axi интерконнект и разобрать настройки АРМа. Написать самый простой модуль для FPGA который будет писать даные в память. Написать простую програму для АРМа, советую до линукса - bare-metal, легче разбирать собственные ошибки.
Cначала могут испугать толстые мануалы, которые в один присест не скурить. От простого к сложному, ничего сложного там нет.

Как я понял bare-metal - это ПО, которое работает без операционной системы. Т.е программа где-то храниться, и процессор её исполняет. А вот можно поподробнее про это узнать ?
Примеров для DE1-SOC вообще не нашёл.

Сообщение отредактировал Flip-fl0p - Feb 28 2017, 11:45
Go to the top of the page
 
+Quote Post
sonycman
сообщение Feb 28 2017, 13:10
Сообщение #13


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(Flip-fl0p @ Feb 28 2017, 15:44) *
Как я понял bare-metal - это ПО, которое работает без операционной системы. Т.е программа где-то храниться, и процессор её исполняет.

Да, к примеру - программа для ARM и прошивка для FPGA хранятся на SD карте, загрузчик их загружает по очереди и передаёт управление ARMу.

Примеры для DE1-SoC есть на сайте Terasic в виде образа CD-ROM на этой страничке.

Попробуйте всё же ознакомиться с документацией на SoC - здесь.
Подраздел Cyclone V Device Handbook, Volume 3: Hard Processor System Technical Reference Manual, и конкретно Booting and Configuration.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Feb 28 2017, 13:35
Сообщение #14


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(sonycman @ Feb 28 2017, 16:10) *
Да, к примеру - программа для ARM и прошивка для FPGA хранятся на SD карте, загрузчик их загружает по очереди и передаёт управление ARMу.

Примеры для DE1-SoC есть на сайте Terasic в виде образа CD-ROM на этой страничке.

Попробуйте всё же ознакомиться с документацией на SoC - здесь.
Подраздел Cyclone V Device Handbook, Volume 3: Hard Processor System Technical Reference Manual, и конкретно Booting and Configuration.

Спасибо ! Оказалось, что содержимое образов дисков для платы DE1-SoC-MTL2, которая у меня, и для платы DE1-SoC, сильно отличается. В частности для платы DE1-SoC UserManual содержит гораздо больше примеров. А я всё думал, почему для платы DE1-SoC-MTL2 нет никаких примеров даже на диске...

Сообщение отредактировал Flip-fl0p - Feb 28 2017, 13:37
Go to the top of the page
 
+Quote Post

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

 


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


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