Недавно я задумался об изучении новой области IT, которая бы соответствовала моим интересам и могла быть применима в карьере. У меня появилась концепция, о которой я хотел бы спросить - постараться объяснить свое видение, спросить, насколько оно реалистично, и описать предполагаемый план обучения.
Но прежде всего хотел бы отметить, что я студент и еще не достаточно хорошо знаком с FPGA, физикой и некоторыми другими областями, необходимыми для достижения моей цели. Именно поэтому я хочу получить немного больше информации заранее. Теперь к сути.
Я рассматриваю симуляцию физических процессов (например, кинематики, термодинамики, аэродинамики и т.д.) на базе FPGA. Например, использование FPGA для прогнозирования и регулирования энерции манипулятора. Подобное вполне возможно реализовать с помощью классического программирования, однако HDL может предложить более быстрое время отклика и меньшее энергопотребление.
В общем, я представляю набор дифференциальных уравнений, которые каким-то образом переносятся в HDL. Теоретически такая система могла бы ускорить предсказание поведения системы, предобработку сигналов, предсказать износ аппаратуры и, возможно, иметь другие применения.
Вероятно, подобное обычно реализуется с помощью систем наподобие PXI от National Instruments. Их ПО LabView предоставляет графический интерфейс для проектирования процессорной логики. Однако использование PXI приводит к некоторым проприетарным ограничениям (дорогое оборудование, лицензирование и пр.). Поэтому я хотел бы придерживаться базового VHDL/Verilog и какой-нибудь платы с чипом FPGA подходящей для обучения.
Как я представляю себе процесс ознакомления со всем этим:
* Достаточно хорошо освоить FPGA (например, пройти онлайн курс и реализовать процессор или средне-продвинутое GUI-приложение).
* Изучить конкретную область физики (возможно, стоит начать с простой кинематики - закончить курс, запомнить важные уравнения, решить набор задач и пр.)
* Найти способ объединить цифровую логику FPGA с непрерывными дифференциальными уравнениями. (пока не знаю, как)
* Реализовать первый проект - для начала достаточно подходящей может быть симуляция маятника (предсказать его положение в случае многосоставного маятника или попытаться стабилизировать его в случае простого маятника).
* После этого я бы занялся другой областью физики в зависимости от интереса, наличия спроса и т.д. (не знаю, сколько времени это может занять).
Это мое, в некоторой степени наивное, видение процесса достижения цели. Теперь я бы хотел задать несколько вопросов:
* Возможна ли апроксимация дифференциальных уравнений с помощью простого HDL после достаточного ознакомления с ним?
* Какая плата FPGA может подойти для первого подобного проекта (например моделирования/прогнозирования маятника)?
* Есть ли какие-нибудь руководства/репозитории или, может быть, литература по подобным проектам для начинающих? Пока не смог найти ничего подходящего.
* Приветствуются любые поправки к вышеописанной концепции.
Для старта вполне пойдет любой недорогой набор для начинающих. Мануалов и статей в сети полно. На Форт-форуме есть раздел FPGA, а так же опытнейшие FPGA разработчики - вполне можете спросить совета там. Там же много тем и даже есть обучающие материалы по FPGA. Учтите, что вам потребуется топовый ПК с максимальным объёмом памяти и быстрыми SSD - и чем мощнее ПЛИС, тем более серьёзная машина вам потребуется. Время моделирования вполне может идти многие часы и сутки. А для чего-то более-менее серьезного потребуется еще и разное дополнительное оборудование по типу осциллографа и прочего. Ибо моделирование моделированием, а на практике всякое случается и приходится дебажить на самой железке.
Если есть финансы, то лучше пройти платное обучение у специалистов. Начальный курс FPGA разработки стоит от $5-10к. Вот тут смотрите: https://plis2.ru/training.html
Большое спасибо за литературу и ссылки!
Заинтриговало такое большое время компиляции)
Ну а с курсами проблем не будет - в своё время сумел наскачивать курсов с Udemy :)
Call_me_Utka, не компиляции, а моделирования. Там идёт моделирование физических процессов в самом чипе. Просто для понимания сложности процесса: например, там надо учитывать скорость света, точнее - скорость распространения сигнала по кремниевым и медным проводникам на миллиметровых расстояниях, а то и меньше, ибо в одну часть чипа сигнал придёт, а до второй ещё не успеет. А так же всякие наносекунды. Поэтому там всё сложна ) Но очень-очень интересно.
FPGA - это можно сказать передний край разработки вычислительной техники. Они отлично подходят для отладки и проверки всяких вычислительных блоков и архитектур, которые потом уже можно запекать в кремнии. Ну и для всяких узкоспециализированных вычислений. Например, FPGA широко применяется в ускорителях как первичные фильтры для данных от детекторов - там реально терабайты данных сыпятся от столкновений частиц. И всё лишнее надо фильтровать, а наружу выдавать только самое важное.
В общем, регистрируйтесь на форт-форуме и вперёд на амбразуру )
VoidVolker, как-то давно пробовал проектировать пару простых счётчиков и триггеров (на Altera Cyclone IV, если не ошибаюсь).
Однако тогда не придумал достаточно интересного проекта для изучения.
(Не хотелось собирать абстрактный процессор или игровую приставку без особой цели).
Тема с физикой однако заинтересовала. - Скоро заканчивается бакалавриат и охота поскорее взяться за дело :)