Уход инженера-электронщика из Apple вызвал волнение среди биржевых спекулянтов. Как стать таким как он?

29 марта инженер по имени Жерард Вильямс Третий ушел из компании Apple. Это известие сразу опубликовал CNET и еще три десятка изданий во всем мире, не только технических, но и финансовых. Что же такого делал этот инженер, что его уход вызвал волнение среди биржевых спекулянтов? Он 9 лет проектировал процессоры в Apple iPhone, до этого 12 лет работал в ARM, до этого проектировал DSP в Texas Instruments, а до этого разрабатывал в Интеле схемы на ПЛИС. Во всех местах он использовал технологию проектирования на уровне регистровых передач, с использованием языков описания аппаратуры Verilog и VHDL.

Примеры поближе к России? На фото справа: 25-летний москвич Илья Неганов взял в 2011 году книжку Харрис & Харрис (последнюю версию которой можно скачать здесь или здесь), спроектировал простой процессор, сейчас работает в Apple, проектирует на верилоге GPU, по выходным летает на самолетике. Ниже пара молодоженов из Санкт-Петербурга, которые проектировали на верилоге и ПЛИС обработку изображений из камеры и получили приз на конкурсе Innovate FPGA. Они провели медовый месяц в штаб-квартире Интела в Санта-Кларе. Далее товарищи из Киева, двое из которые выиграли бронзу на европейском финале Innovate FPGA. И наконец два школьника, из 5 и 9 классов, которые делают свои первые упражнения с микросхемами малой степени интеграции на макетной плате, после чего приступают к упражнениям на верилоге и ПЛИС.

Это пять точек на траектории от школьника к Жерарду Вильямсу Третьему. Траектория довольно тяжелая, так как начальный барьер для входа в проектирование цифровых микросхем выше, чем для входа в программирование. В этом посте мы поговорим о том, как облегчить начальный участок траектории для российских и других школьников.

В эти две недели группа коллег из РОСНАНО, Wave Computing, МИЭТ, IVA Technologies, ВШЭ МИЭМ, Амперка, Издательства ДМК-Пресс проводит такое мероприятие: Сначала школьники проходят теоретический онлайн-курс (части «От транзистора до микросхемы», «Логическая сторона цифровой схемотехники», «Физическая сторона цифровой схемотехники»), на котором они знакомятся с так называемым маршрутом RTL2GDSII — группой технологий, которые используют инженеры в электронных компаниях для проектирования чипов. Потом мы проводим практические занятия с микросхемами реконфигурируемой логики ПЛИС. Таким способом обучает например MIT в курсе 6.111, ну а мы пробуем это в очень базовом виде для школьников олимпиадного типа.

Теоретический курс важен, чтобы не тратить время на практическом курсе на объяснение теории проектирования на уровне регистровых передач, а просто провести три вечера по два часа, играясь с платами ПЛИС, которые можно потом забрать с собой. Также теоретический курс привязывает упражнения с ПЛИС к массовым изделиям, которые используют микросхемы ASIC.

Практический курс будет еще одним экспериментом (предыдущие проводились разными преподавателями в Нижнем Новгороде, Киеве, Алма-Ате, Казахстане, Минске, Новосибирске, Томске и Иркутске), чтобы выяснить, как сделать упражнения с Верилогом и ПЛИС интересными и полезными для начинающих.

Стоит ли перед упражнениями с ПЛИС делать упражнения с микросхемами малой степени интеграции? На этот счет есть разные мнения: Декан Самарского Университета Илья Кудрявцев считает, что не стоит, лучше сразу давать современную технологию 2019 года, а не древние CMOS 4000 на макетной плате, которые были актуальны 50 лет назад. Инженер-проектировщик нейрочипа в IVA Technologies Станислав Жельнио считает, что стоит, так как в противном случае студенты воспринимают ПЛИС как еще один микроконтроллер типа Ардуино, но просто со странным языком программирования Verilog. На самом деле студенту или школьнику стоит сразу четко осознавать, что верилог описывает схему, а не программу (цепочку инструкций), и упражнения с CMOS 4000 помогают поселить в мозгу правильный образ.

Если писать на Верилоге, как будто это программа, а не схема, то код будет работать на симуляторе, но не будет синтезироваться, а если даже будет синтезироваться, то получится безумная (в смысле тайминга или размеров) схема.

Поэтому один из подходов выглядит так: спроектировать схему на микросхемах малой степени интеграции (счетчики, сдвиговые регистры, сумматоры, дешифраторы), потом повторить ее на верилоге, синтезировать и прописать в ПЛИС.

Некоторые говорят: а почему бы не нарисовать схему для ПЛИС мышкой на экране (schematic entry) и ввести ее в ПЛИС перед тем как делать упражнения на верилоге? У подхода с мышкой есть три недостатка:

  1. Он требует изучения софтвера, что дольше, чем просто втыкать компоненты в макетную плату.
  2. Опыт от перегоревшего светодиода или плавающего входа без подтягивающего резистора на макетной плате — это ценнее, чем стерильный опыт в schematic entry.
  3. Дизайнеры цифровой логики не используют schematic entry с начала 1990-х, все пишут на верилоге, иногда на VHDL.

Да, CMOS 4000 и 74XX устарели еще в 1970-е, их заменили PAL, GAL, PLD, потом интегрированные чипы. Поэтому в 1970-х их использовали в кружках для детей, а в 1980-е они вышли из моды, так как за умение их использовать перестали платить зарплату, но никто с тех пор не придумал, как нагляднее продемонстрировать например функцию D-триггера, поэтому как приквел к ПЛИС/FPGA их применять можно. В MIT делают так же — см. Lab #1 здесь.

После упражнений с микросхемами малой степени интеграции и их эквивалентами на верилоге на ПЛИС можно усложнить задачи и делать на одной ПЛИС то, для чего потребовалось десятки, сотни или тысячи микросхем малой степени интеграции, о чем я поговорю дальше.

Вот пример комбинационной логики, приоритетного шифратора, на микросхемах малой степени интеграции:

А вот как выглядит этот приоритетный шифратор на языке описания аппаратуры Verilog:

module priority_encoder
(
    input      [2:0] in,
    output reg [1:0] out
);

    always @*
    begin
        casez (in)
            3'b1??  : out = 2'd1;
            3'b01?  : out = 2'd2;
            3'b001  : out = 2'd3;
            default : out = 2'd0;
        endcase
    end

endmodule

Вот пример последовательностной логики, сдвигового регистра, на микросхемах малой степени интеграции:

А вот как выглядит этот сдвиговый регистр на верилоге:

Вот как выглядит процесс синтеза с языков описания аппаратуры и прошивания схемы в реконфигурируемую логику ПЛИС-а:

После таких простых упражнений школьники могу проектировать схемы, которые общаются по интерфейсам SPI, I2C, UART с датчиками освещения, компасами, клавиатурами, производят звук и даже картинки на VGA. Вот уникальный пятиклассник Вячеслав скомбинировал датчик освещения с генератором звука на FPGA плате:

Код для модуля принимающего данные с датчика освещенности, который использовал Вячеслав.

Про работу с VGA дисплеем с ПЛИС недавно вышла книжка, которую стоит перевести на русский для летних лагерей типа новосибирского ЛШЮП или будущего лагеря в зеленоградском МИЭТ.

Другие удобные упражения для начинающих — змейка на 7-сегментном индикаторе, фигуры на светодиодной матрице, ввод с клавиатуры 4×4, генерация нот (цифровой орган), конечные автоматы для распознавания последовательностей (кодовый замок).

Математически-ориентированные школьники могут попробовать сделать cтековый калькулятор, устройства для вычисления квадратного корня, систолического массива для нейровычислителя или воплотить в хардвере примеры из Hacker’s Delight.

Совсем продвинутые школьники могут разрабатывать простые процессоры с конвейерностью, прерываниями, кэшами итд. Вот девятиклассник Арсений с органом на ПЛИС и девятиклассница Даша с модификацией процессора schoolMIPS.

Собственно ради таких продвинутых школьников РОСНАНО помогло организовать онлайн-курс и практические занятия 17-19 апреля в Москве. Над этим работало образовательное отделение еНАНО, и немного помогло отделение РОСНАНО в Калифорнии — RUSNANO USA. Его офис находится прямо в мировом центре венчурного капитала, на 3000 Sand Hill Road в Менло-Парке. На Сэнд-Хилл Роад приходили за деньгами основатели Apple, Google и Amazon.

РОСНАНО вложило миллиарды рублей в российские микроэлектронные проекты ЭЛВИС-НеоТек и Байкал Электроникс. Ожидается, что сегодняшние школьники познакомятся с основами RTL2GDSII, потом выучатся в университетах типа МФТИ, МИЭТ или ИТМО, станут специалистами класса Жерарда Вильямса Третьего, и потом РОСНАНО будет вкладывать в их проекты.