Спросите у аудитории студентов-инженеров, кто хочет проектировать чипы, — поднимется большинство рук. Спросите, кто хочет их верифицировать, — и аудитория станет честной.
Часть работы, на которую никто не хочет идти
В общественном представлении проектирование чипов — это архитектура: кто-то решает, что делает процессор, сколько у него ядер, как устроена иерархия памяти. Такая работа существует, она по-настоящему интересна, но это лишь малая доля от общей численности специалистов.
В типичном проекте цифрового чипа самый большой блок инженерных усилий приходится именно на верификацию, а в сложных проектах инженеров-верификаторов регулярно больше, чем инженеров-проектировщиков. И это стабильно самая сложная группа для найма.
Причина, по которой этот дисбаланс сохраняется, — непонимание того, что такое верификация. Её часто представляют как тестирование: запустить схему и проверить результат. На деле всё почти наоборот. Инженер-верификатор строит независимую модель того, что схема должна делать, создаёт среду, генерирующую воздействия, которые проектировщик не предусмотрел, измеряет, какое поведение реально было проверено, и на основе покрытия аргументированно доказывает, что оставшийся риск приемлем.
Верификация — это не проверка того, что схема работает. Это построение доказательства, что она не может отказать способом, который вы не рассмотрели.
Это проектная деятельность со своей методологией, своими языками и своей интеллектуальной сложностью. Команды, которые считают её младшей работой, комплектуют её соответствующе — и обнаруживают последствия уже на этапе отправки топологии в производство.
Что входит в это направление
Охват: цифровое проектирование, языки описания аппаратуры, верификация, физическое проектирование, анализ тайминга и энергопотребления, проектирование под тестируемость.
Четыре области.
Проектирование на уровне регистровых передач (RTL). Описание поведения аппаратуры на языке описания аппаратуры, в стиле, который синтезируется в вентили.
Верификация. Ограниченно-случайные воздействия, функциональное покрытие, методы на основе утверждений и формальные методы.
Физическое проектирование. Флопланирование, размещение, распределение тактового сигнала, трассировка и замыкание тайминга.
Анализ и тестирование. Статический анализ тайминга, энергопотребление, целостность сигналов и структуры, которые делают изготовленный чип тестируемым.
Почему чип — это не программное обеспечение
Самое важное по последствиям различие — то, что определяет каждое технологическое решение в отрасли.
Патчей не существует. Функциональную ошибку, обнаруженную после производства, исправляют, меняя схему и изготавливая новый комплект фотошаблонов, — это дорого на зрелых техпроцессах и чрезвычайно дорого на передовых, и занимает месяцы. Ошибку, найденную после выхода продукта, порой можно обойти только программным способом — а иногда и вовсе никак.
Схема по своей природе параллельна. Языки описания аппаратуры описывают структуры, которые существуют одновременно. Разработчики ПО, переходящие в аппаратное направление, обычно пишут последовательный код, который корректно симулируется, но либо не синтезируется, либо синтезируется во что-то огромное. Концептуальный сдвиг — от инструкций, выполняющихся по порядку, к логике, существующей вся сразу.
Тайминг физичен. Схема не бывает корректной абстрактно. Она корректна на определённой тактовой частоте, при определённом напряжении, температуре и с учётом технологического разброса — и для каждого из этих крайних случаев нужно доказать, что тайминг замкнут.
Всё стоит площади, а площадь стоит денег. Площадь кристалла напрямую влияет на выход годных изделий и стоимость чипа. Функция, которая в программном обеспечении была бы бесплатной, в кремнии имеет постоянную стоимость на каждую единицу.
Эти четыре факта объясняют, почему процессы отрасли выглядят консервативными со стороны. Это не консерватизм. Это адекватный ответ на то, что производственный этап даётся только один раз.
Физическое проектирование, куда на самом деле уходит график
Между верифицированным описанием на уровне регистровых передач и пригодной для производства топологией лежит объём работы, который посторонние часто считают автоматизированным.
Инструменты делают огромную часть этой работы. Но они не убирают инженерную составляющую.
Замыкание тайминга. Схема должна соблюдать временные ограничения на каждом пути при каждом крайнем случае. Проблемные пути исправляют изменением размеров элементов, перестройкой логики, перемещением блоков, корректировкой флопланирования или изменением архитектуры. Последний вариант встречается достаточно часто, поэтому отношение к физическому проектированию как к последующему этапу приводит к срыву графиков.
Энергопотребление и тепловой режим. Нужно управлять и статическим, и динамическим энергопотреблением, а также падением напряжения в сети питания и горячими точками, которые создаёт высокая плотность активности.
Трассируемость. Флопланирование, удобное для размещения, может оказаться невозможным для трассировки, а обнаружить это поздно — значит потерять недели.
Распределение тактового сигнала. Доставка тактового сигнала по большому кристаллу с контролируемым перекосом — отдельная специализация, и она потребляет заметную долю общего энергопотребления чипа.
Инженеров по физическому проектированию не хватает, на выработку этого навыка уходят годы, а в том, как отрасль описывают студентам, эта работа почти не видна.
Место направления в домене
«Проектирование чипов и СБИС (VLSI)» — третье из девяти направлений в домене полупроводников, электроники и квантовых технологий Astra Trainer. Оно напрямую связано с физикой полупроводников и приборов, ведь каждая модель тайминга и энергопотребления опирается на поведение прибора, а также с производством полупроводников и передовой упаковкой — там, где проект встречается с процессом, который его изготовит.
Оно также выходит на ИИ и вычисления, где проектирование ускорителей сегодня занимает значительную долю новых проектов чипов. Партнёры обычно объединяют проектирование чипов со встраиваемыми системами, потому что аппаратным и программным командам в проекте «система на кристалле» нужен общий словарь. Посмотреть все девять направлений можно здесь.
Проектирование под тестируемость — это не опция
Изготовленный чип обязательно нужно протестировать, и структуры, которые это обеспечивают, добавляют в схему намеренно.
Сканирующие цепочки соединяют элементы памяти схемы в регистры сдвига, чтобы внутреннее состояние можно было загрузить и считать. Структуры встроенного самотестирования позволяют памяти и аналоговым блокам проверять себя самостоятельно. Граничное сканирование позволяет проверять соединения между корпусированными чипами на плате. Сжатие тестовых данных снижает объём данных, которые нужно прогнать через тестер, — время тестера дорого стоит и растёт вместе с объёмом производства.
Всё это занимает площадь кристалла и отнимает усилия на функциональность, которой клиент никогда не воспользуется. И всё же её включают — и причину стоит назвать прямо.
Выход годных изделий в производстве никогда не бывает стопроцентным. Дефекты случаются. Чип, который нельзя протестировать, нельзя и отбраковать, а значит, дефектные изделия попадают к клиентам — а в автомобильной, медицинской и промышленной технике это уже не статистика качества, а вопрос безопасности и ответственности.
Повторяющаяся ошибка — решать вопрос тестовых структур поздно, когда флопланирование уже устоялось и добавлять их разрушительно. Внедрение тестовых структур — это проектное решение, принимаемое рано, вместе с архитектурой.
Роли по именам
Инженеры по проектированию на уровне регистровых передач. Роль, которую представляет себе большинство.
Инженеры по верификации проекта. Самая многочисленная группа в большинстве проектов и самая сложная для закрытия вакансий.
Инженеры по физическому проектированию. От флопланирования до замыкания тайминга.
Инженеры по статическому анализу тайминга и подписанию проекта.
Инженеры по проектированию под тестируемость. Сканирование, самотестирование и сжатие данных.
Инженеры по аналоговому и смешанно-сигнальному проектированию. Хронический дефицит, потому что этот навык плохо поддаётся автоматизации.
Инженеры по формальной верификации — доказывают свойства, а не симулируют их.
Компьютерные архитекторы. Самая малочисленная группа — и та, которую все представляют себе как всю отрасль целиком.
Инженеры по средствам автоматизации проектирования (EDA) — создают и поддерживают инструментальные потоки, от которых зависит вся остальная отрасль.
Кого можно переобучить
Разработчики ПО. Самый крупный доступный резерв, и переобучение работает, когда параллельную модель мышления преподают явно, а не считают само собой разумеющейся. Верификация особенно вознаграждает навыки программирования, ведь современные среды верификации — это большие объектно-ориентированные программы. Самый быстрый путь к закрытию крупнейшего дефицита в отрасли.
Инженеры по программируемым логическим интегральным схемам (FPGA). Близкая смежная область. Владение языком описания аппаратуры и интуиция по тайминга уже есть. Новое — дисциплина, которая появляется из-за невозможности перепрограммировать изделие.
Инженеры-электронщики. Переходят в смешанно-сигнальное и физическое проектирование, принося с собой интуицию по приборам и топологии.
Инженеры по тестированию с производства. Переходят в проектирование под тестируемость, поскольку знают, что нельзя протестировать и почему.
Разработчики встраиваемого ПО. Переходят в верификацию и интеграцию систем на кристалле, уже владея границей между аппаратным и программным обеспечением.
Выпускники физических и математических специальностей. Переходят в формальную верификацию, где рассуждения ближе к доказательству, чем к программированию.
Инструменты, методология и конфиденциальные потоки. Проектирование чипов зависит от коммерческих инструментов автоматизации проектирования, комплектов правил проектирования и требований фабрики, которые поставляются по лицензии и соглашению о неразглашении и различаются между организациями и техпроцессами. Обучение формирует методологию и понятийный аппарат. Оно не предоставляет лицензии на инструменты, комплекты правил проектирования, требования фабрики или какой-либо конфиденциальный поток проектирования и не заменяет внутреннюю квалификацию, необходимую для работы с ними.
Что важно запомнить
Верификация — это наибольшая часть усилий, наибольшая часть риска по срокам и самая незакрытая группа вакансий, и это проектная работа, а не тестирование.
Чип нельзя пропатчить — этим объясняется вся форма технологического процесса в отрасли.
Физическое проектирование регулярно возвращает работу назад, в архитектуру, поэтому отношение к нему как к последующему этапу приводит к срыву графиков.
Проектирование под тестируемость стоит площади и усилий ради функциональности, которую никто не покупает, — но без неё дефектные изделия попадают к клиентам.
А разработчики ПО — самый реалистичный крупный источник новых кадров для верификации, если кто-то целенаправленно обучает их параллельной модели мышления, а не считает, что она перенесётся сама собой.
Почему верификация занимает такую большую часть проекта чипа?
Потому что производственный этап даётся только один раз. Верификация строит независимую модель ожидаемого поведения, генерирует воздействия, которые проектировщик не предусмотрел, и измеряет покрытие, чтобы аргументированно показать, что необнаруженные виды отказов маловероятны.
Могут ли разработчики ПО перейти в проектирование чипов?
Да, и верификация — самая естественная точка входа, ведь современные среды верификации — это большие объектно-ориентированные программы. Единственное, чему нужно научиться, — переход от последовательного выполнения к структурам, которые существуют все одновременно.
Почему физическое проектирование — это не просто автоматизация?
Инструменты выполняют большую часть механической работы, но замыкание тайминга, доставка питания, трассируемость и распределение тактового сигнала регулярно требуют перестройки логики или изменения архитектуры — а значит, физическое проектирование не просто следует за проектированием, а влияет на него в обратную сторону.
Зачем включать тестовые структуры, которыми клиенты никогда не пользуются?
Потому что выход годных изделий в производстве никогда не бывает идеальным, а нетестируемый чип нельзя отбраковать по дефектам. В автомобильной, медицинской и промышленной технике поставка неотбракованных изделий — это уже вопрос безопасности и ответственности.
Какие смежные роли хорошо переходят в работу по VLSI?
Разработчики ПО — в верификацию, инженеры по FPGA — в проектирование, инженеры-электронщики — в смешанно-сигнальное и физическое проектирование, инженеры по тестированию с производства — в проектирование под тестируемость.
