В воскресенье состоялась встреча в хакерском клубе Hacker Dojo в Silicon Valley. Встреча была анонсирована в украинской фейсбук-группе U4U Uniting for Ukraine USA и русскоязычной группе Russian Speaking US QA Network. Заявленная тема была "Учимся паять", но, так как участники спрашивали "и какое это имеет отношение к трудоустройству", то под конец я показал:
Как компроненты, к которым мы паяли хедеры (микрофоны и аудио декодеры) - применяются в упражнениях c FPGA платами.
К каким типам работ ведут упражнения на FPGA платах: проектировщик логики блоков микросхем (RTL Design Engineer), тестировщик/верификатор (Design Verification Engineer) и инженер для работы с клиентами (Application Engineer).
Вообще я провожу в этом клубе встречи по языку описания аппаратуры SystemVerilog. На встречи ходят люди, которые хотят дополнить или сместить карьеру в эту область. Они обучаются, помогая мне в разработке учебных материалов. Материалы я использую на семинарах в разных странах (в этом году это был Азербайджан, в прошлом году - Грузия, в позапрошлом - Киргизия).
Кроме этого, так совпало, что в субботу нашему сообществу Verilog Meetup одобрили заявку на участие в большой выставке самоделкиных Maker Faire в Вальехо, Калифорния. Для этого и других планируемых мероприятий нужно не только напаять хедеры к сотне компонент, но и подготовить большое количество демонстраций с FPGA платами. Подготовка таких демо с ревью от уже опытных инженеров - это отличный способ набить руку в основах верилога. Помимо адаптации примеров к платам разного типа (для этого нужна в основном смекалка и аккуратность), есть и задачи уровня собеседования на работу в электронные компании (демонстрации микроархитектурных приемов с конвейерами и очередями FIFO). Если кто хочет в этом участвовать - заходите в любое воскресенье в 11 утра в Hacker Dojo, и мы с вами этим займемся.
Но вернемся в прошедшей встрече по пайке. На ней было около пятнадцати человек, причем из знакомых мест: киевский мехмат и КПИ, казанский Иннополис, Москва, Гугл. Главным специалистом по пайке был американец Эндрю, другим спецом был мой приятель Алекс, родом из белорусского БГУИРа, который сейчас проектирует блок работы с кэшем (load-store unit) в процессоре AMD.
Я тоже помогал процессу, правда у меня вышел косяк: только под конец я обнаружил, что на одном из паяльников, Pinecil - открутился винтик, и жало постоянно сдвигалось вниз, отчего паяльник то паял, то не паял.
После этого мы зашли в другую комнату, где я показал, как используются компоненты, хедеры к которым мы припаяли:
Разумеется участников заинтересовало, для какого рода работ нужна тренировка на FPGA платах.
Сперва скажу, что лабы на FPGA - это не экзотика, они используются в Америке давно и сейчас проникли даже в провинцию типа Монтаны и техникумы типа San Francisco City College. Самый крутой курс такого рода - это курс MIT 6.111 Массачуссетского Технологического Института. Крутость этого курса не в материалах - слайды у него достаточно банальны - а в студенческих проектах по обработке звука, видео, графики итд - см. Memorable Project по такой ссылке.
В России продвижением верилога и ПЛИС в вузовское образование занимается Школа Синтеза Цифровых Схем, с которой кооперируются более 20 университетов: МИЭТ, МИЭМ, ИТМО, Иннополис итд - от Москвы и Питера до Севастополя и Алтая.
На Украине тоже есть например преподаватель-активист Евгений Короткий, который сначала продвигал ASIC и FPGA в Киевском Политехническом Институте, а потом заявил, что в КПИ к студентам предъявляются недостаточно высокие требования, и ушел делать то же самое в Киевскую Школу Экономики, причем, в духе евроинтеграции, в партнерстве c швейцарским политехом ETH Zürich.
При этом что россияне, что Короткий, что ETH Zürich используют вводный учебник Харрис & Харрис, который я тоже рекомендую: Digital Design and Computer Architecture, RISC-V Edition by David Harris and Sarah Harris. В русском переводе Цифровая Схемотехника и Архитектура Компьютера. При этом у Короткого сдвинут акцент в область аналоговой и mixed signal электроники, а в российской школе - в область микроархитектуры и верификации. Харрис & Харрис действительно идет не очень глубоко в микроархитектуру, что можно компенсировать по моим рекомендациям для митапа в Маунтин-Вью.
Да, так насчет работ. Пример работы с Verilog и FPGA я приводил в заметке про преподавание FPGA на Донбассе, а именно позиция FPGA инженер в Apple:
Переведу это в более понятную форму: непосредственно навыки с верилогом и ПЛИС/FPGA ведут к трем профессиям:
Разработчик цифровых микросхем ASIC (application-specific integreated circuits) на уровне регистровых передач (register-transfer-level RTL) с использованием языка описания аппаратуры Verilog. Это массовые микросхемы, которые стоят в телефонах, бытовой тезнике, автомобилях и т.д. Названия позиций: RTL Design Engineer, Logic Design Engineer, ASIC Digital Design Engineer итд.
То же самое, но для микросхем FPGA, которые используются в малосерийных приборах (например в музыкальных установках для концертов или в космической технике). Это называется FPGA Design Engineer.
Тестировщика для (1) и (2), который пишет тесты и модели на языке SystemVerilog. Такая позиция называется Design Verification Engineer или сокращенно DV. В некоторых компаниях, например Blue Origin, которая использует FPGA для полетов на Луну, позиции (2) и (3) совмещены, называются типа FPGA Design & Verification Engineer.
Для митапов в Hacker Dojo, в (1) я в основном ориентируюсь на студентов, в (2) на желающих переучиться или расширить область навыков програмистов встроенных систем и микроконтроллеров, а в (3) на людей с опытом в автоматическом софтверном QA, которые хотят переучиться на вот такой специализированый хардверный QA.
Также навыки с верилогом и FPGA могут быть использованы для работы как Application Engineer, который помогает компаниям-производителям микросхем и плат обслуживать их клиентов.
В конце встречи по пайке я немного поделился техническими основами этих технологий, показал как работает синтез и конфигурация:
Теперь что я собственно хочу сейчас от посетителей митапа в Hacker Dojo. В связи с наступлением нового учебного года нужно срочно адаптировать новую версию разнообразных учебных примеров к примерно 40 платам. Потому что начинается новый учебный год и разные вузы используют разные платы: в Волгограде используют Terasic DE2-115, в Минске - Digilent Nexys4, в Сан-Паулу (Бразилия) - Tang Nano 9K, а в Найроби (Кения) - DE10-Lite.
Для работы для адаптации примеров под платы не требуется понимание микроахитектуры и даже понимания концепций последовательностной логики. Достаточно понять, как соединять провода в коде на верилоге, а также уметь гуглить информацию от вендоров.
Например возмем новую плату с FPGA от компании GoWin Semiconductor - Tang Mega 138K Pro.
Для адаптации к ней примеров мне пришлось поменять четыре файла:
board_specific.cst - скрипт для задания соотвествия между названиями пинов из даташита и логическими именами портов в коде на верилоге.
board_specific.sdc - скрипт с командой, сообщающей программе синтеза тактовую частоту генератора на плате.
board_specific.tcl - скрипт, сообщающий программе синтеза модель чипа на плате и параметры синтеза.
board_specific_top.sv - wrapper, код на верилоге, который изолирует студента от специфики платы, создает экземпляр модуля lab_top и соединяет его проводами с модулями, которые получают данные от микрофона, пересылают данные на аудио-декодер и LCD дисплей.
Теперь на ней можно делать всякие студенческие упражнения, например распознование ноты звука, используя микрофон с припаяным хедером:
или синтез звука используя аудио-декодер с припаяным хедером:
Если вас интересует такая деятельность - пишите в комментариях или соцсетях (лучше всего в LinkedIn) и заходите. Это также можно делать онлайн, с совещаниями через зум.
Комментарии (9)
Mox
13.08.2024 17:19+5Кажется только что на рынке избыток Verilog разработчиков - вакансий на hh.ru чуть больше сотни, а зарплаты ниже, чем в разработке софта, хотя сложность и требования к квалификации вообщем то выше.
Moog_Prodigy
13.08.2024 17:19+1Я одно понять не могу: как связаны пайка и верилог? Тем, что и то, и другое - электронная промышленность? Да ладно.
YuriPanchul Автор
13.08.2024 17:19Не прочитали пост, комментируете по заголовку. Уже во втором абзаце есть ответ на этот вопрос
YuriPanchul Автор
13.08.2024 17:19В явной форме из поста
https://habr.com/en/articles/833060/
Откуда вообще возникла такая идея? Мы с парой коллег по Hacker Dojo хотим устроить три мероприятия по FPGA, здесь в штатах, в Латинской Америке и в Средней Азии. А для него нужно припаять хедеры к сотне компонент: микрофонам, I2S звуковым выводам и FPGA платам. Паять хедеры к микрофонам может и начинающий, поэтому мы решили совместить подготовку к тем семинарам с обучением желающих пайке.
comradeleet
13.08.2024 17:19+2Красавица из Питера плавно перешла в Верилог и обсудила работу в электронной промышленности
unreal_undead2
13.08.2024 17:19+2Харрис действительно идет не очень глубоко в микроархитектуру, что можно компенсировать по моим рекомендациям
Спасибо, Шен/Липасти для систематизации знаний выглядит интересно (хотя книжка несколько старовата).
vassabi
вот это правильно - западное полушарие всяко лучше для здорового сна и отличного настроения ИТ-специалиста!
PS: заодно - и дружба народов гораздо мягче и крепче происходит. Много конструктивного общения и обмена идеями.