Хотите дальше читать devby? 📝
Support us

Есть ли место инженерам-системотехникам в белорусском ИТ?

Оставить комментарий
Есть ли место инженерам-системотехникам в белорусском ИТ?

Много ли вы слышали о процессах верификации современных цифровых устройств, которыми пользуетесь каждый день? Знаете ли вы, чем отличаются инженеры-программисты от инженеров-системотехников? Сколько стоит ошибка в работе верификаторов? И в чём они находят драйв? Об этом и многом другом рассказывают ведущие инженеры команды верификации Softeq Flash Solutions Алексей Колесников и Виктор Зайцев, посвятившие карьеру разработке и верификации цифровых интегральных микросхем.

Читать далее

— Что такое верификация? В чем заключается работа вашей команды?

Виктор: Верификация — это проверка модели устройства, которую разрабатывает команда проектировщиков на одном из языков описания аппаратуры, на соответствие техническому заданию. Инженеры, занимающиеся верификацией, должны дать своё заключение о том, что разработанная модель соответствует заявленной спецификации и её можно применять на дальнейших этапах маршрута проектирования цифровых схем.

Виктор Зайцев, ведущий инженер команды верификации Softeq Flash Solutions. Опыт работы — 6 лет. Ассистент кафедры математической кибернетики ММФ БГУ.

— Расскажите про основные этапы разработки продукта.

Алексей: Сначала составляется спецификация будущего устройства, затем разработчики на языках проектирования аппаратуры (VHDL, Verilog, SystemVerilog) создают функциональное описание будущей микросхемы. На этапе проектирования разработчики проверяют базовый функционал будущего устройства при помощи относительно простых прямых тестов. Затем функциональное описание будущего устройства попадает в отдел верификации. Современные микросхемы часто называются системами на кристалле (SoC) и содержат множество различных блоков, работающих параллельно и взаимодействующих между собой. Это сложное устройство, которое требует детальной проверки на правильность функционирования и на отсутствие ошибок в проектном описании.

Задача инженера-верификатора — как можно детальнее проверить соответствие проектного описания отдельных блоков и системы в целом техническому заданию (спецификации). Под проверкой мы подразумеваем разработку детального плана и среды верификации на языке SystemVerilog c использованием методологии UVM, её отладка, написание тестов, создание программной модели по спецификации, подготовка скриптов компиляции и запуска среды, скриптов анализа результатов множественных запусков.

Виктор: Если мы имеем дело с полностью цифровой микросхемой, то параллельно нашей верификации проходит верификация на FPGA, которой занимается ещё одна команда инженеров. Особенность нашей верификации заключается в гибкости и возможности подать практически любое случайное тестовое воздействие, проанализировать практически любой внутренний сигнал, присутствующий в проектном описании. При работе с FPGA у инженеров есть доступ только к ограниченному набору портов и сигналов, но зато такой процесс верификации происходит быстрее. Также сложно получить доступ к внутренним сигналам FPGA, например, проверить качество сигнала. Поэтому два этих процесса верификации не исключают друг друга, а дополняют. Также следует отметить, что если в будущей системе есть процессорные ядра, то для них необходимо написать собственную прошивку, которой занимается наша команда системных программистов или, как мы их называем, «фирмварщиков».

Алексей Колесников, ведущий инженер команды верификации Softeq Flash Solutions. Опыт работы — более 15 лет, из которых 10 лет — на ведущих предприятиях Южной Кореи.

— Что происходит после того, как вы сделали свою работу?

Алексей: После этого проект уходит к бэкенд-инженерам, которые осуществляют трассировку будущей микросхемы на кристалле, изготавливают технологические файлы для фабрики, где потом эта микросхема будет воссоздаваться на кремнии (на кристалле).

— А какова цена ошибки в вашей работе?

Виктор: Верификация проекта цифровой интегральной схемы (ИС) — один из самых затратных по времени этапов разработки. Для достижения достаточной полноты проверки необходимо провести моделирование на большом наборе тестов и, если выявлены ошибки, после корректировки необходимо весь процесс моделирования повторить. Цена ошибки на этапе верификации выльется, в лучшем случае, в перезапуск опытной партии (с потерей десятков или даже сотен тысяч долларов) на фабрике, в худшем — отзыв всей партии (миллионы штук микросхем) со всеми вытекающими последствиями.

— В чём отличие инженера-верификатора от инженера-программиста?

Алексей: Инженер-верификатор должен в первую очередь знать цифровую схемотехнику и системотехнику. При разработке среды верификации нужно понимать, что представляют собой интерфейсы тестируемого блока, чтобы подключиться к нему. А в процессе верификации приходится постоянно анализировать HDL-код (VHDL, Verilog) тестируемого блока. Также необходимо иметь представление о процессе синтеза цифровой схемы из её HDL-описания для того, чтобы понимать, какие ключевые моменты в устройстве нельзя упускать при верификации. Кроме этого, для разработки среды верификации и модели тестируемого устройства, инженер-верификатор должен иметь квалификацию инженера-программиста.

В шуточной форме верификационные проекты реализуются так. С корпоративного летнего праздника. Июль, 2015.

— А что расскажете про отличие языков проектирования от языков программирования?

Виктор: Языки проектирования аппаратуры — VHDL, Verilog, SystemVerilog — можно назвать языками программирования очень условно. И отличаются они в первую очередь своим назначением. На языках программирования, в большинстве случаев, задаётся последовательность инструкций, которые выполняются определенным устройством (например, микропроцессором). А на языках проектирования аппаратуры описывается сама структура электронного устройства (того же микропроцессора) и правила, определяющие его поведение. Причём впоследствии это описание может быть преобразовано с помощью специальных САПР в электронную схему и реализовано, например, на полупроводниковом кристалле.

— Какие ещё инструменты вы используете в своей работе?

Виктор: Специализированное программное обеспечение — CAD-ы, в котором проводится моделирование. Это может быть ПО от разных производителей, например, Synopsys, Cadence, Mentor Graphics. Основным инструментом является симулятор с возможностью просмотра временных диаграмм.

— Расскажите о результатах вашей работы за первый год жизни Softeq Flash Solutions?

Алексей: Совсем недавно ушёл на фабрику контроллер флэш-памяти, прошедший верификацию в нашей компании. Здорово, что такие проекты есть в Минске, где видишь почти весь цикл разработки продуктов, где работаешь бок о бок с ведущими инженерами мирового производителя флэш-памяти.

— Где в Беларуси учат верификации?

Виктор: Верификации и, например, языку проектирования SystemVerilog у нас нигде не учат. Но на некоторых кафедрах БГУ, БГУИР есть специалисты, которые преподают VHDL и Verilog, где в рамках лабораторных, курсовых и дипломных работ у студентов есть возможность изучать основы верификации.

Алексей: В целом, эта область очень молодая, зародилась она в 1990-х, когда появилась eRM методология и язык «e», созданный специально для функциональной верификации. Это была первая попытка вынести верификацию в отдельную область. Стандарт UVM зародился только в 2009 году, когда несколько компаний объединили свои усилия и создали на базе SystemVerilog открытую методологию верификации (OVM). Впоследствии OVM развилась в универсальную методологию UVM, которая стала промышленным стандартом. В настоящее время верификацию, как отдельную область нигде не преподают, в неё, как правило, попадают разработчики. И здесь мы тоже не исключение: бывшие проектировщики с лёгкостью становятся нашими коллегами. Главное — желание.

— Что нужно знать для того, чтобы пополнить ряды вашей команды?

Алексей: В первую очередь, нужно знать цифровую схемотехнику, электронику, языки описания аппаратуры (VHDL, Verilog), основы синтеза цифровых схем, FPGA. Также нужно знать объектно-ориентированное программирование и иметь навыки работы в Unix-подобных операционных системах.

Виктор: В качестве дополнительного материала по верификации в интернете сейчас можно найти очень много полезных статей и видео на эту тему. Например, посетите сайт Mentor Graphics и их Verification Academy с целым набором видео-лекций и так называемых «кук-буков».

Посетите специализированные образовательные сайты testbench.com и doulos.com

Алексей: Также полезно почитать базовую литературу, например,

  • SystemVerilog for Design (Stuart Sutherland)
  • SystemVerilog for Verification (Chris Spear, Greg Tumbush).

Виктор: Из русскоязычной литературы по верификации и смежным с ней областям читать следующее:

Команда верификации Softeq Flash Solutions. Сентябрь, 2014.

— А как проходит интервью в вашу команду?

Алексей: Для начала мы просим рассказать о себе для того, чтобы человек раскрепостился. Затем вопросы уходят в плоскость цифровой схемотехники и электроники. Про верификацию мы практически ничего не спрашиваем, так как с её методологией почти никто не знаком. Если человек хорошо ориентируется в цифровой электронике и знает, чем отличается язык Verilog, к примеру, от того же C, то скорее всего перейти в верификацию большого труда для кандидата не составит.

— Ну, и напоследок, расскажите, в чем драйв вашей работы, почему вы когда-то решили стать именно инженерами-системотехниками?

Виктор: Всё началось в университете на первых курсах, когда я узнал, что есть цифровые программируемые кристаллы, которые можно быстро и многократно переконфигурировать. Минимальный путь от разработки описания устройства до сразу получаемого результата в виде действующего устройства — этот процесс и завоевал моё сердце. Ведь это похоже на магию. Сначала ты пишешь «заклинание», потом помещаешь его в FPGA и видишь результат: устройство моргает «светодиодами-глазами», шевелит «руками-периферией», начинает теплеть «FPGA-кристалл-сердце» — и устройство оживает.

Алексей: У меня ситуация похожая. В 12 лет я серьёзно увлёкся электроникой после того, как успешно собрал симметричный мультивибратор. После университета начал с ремонта и обслуживания сложной медицинской техники, постепенно перемещаясь в область разработки электронных систем. Уже будучи разработчиком, открыл для себя FPGA, после чего окончательно определился с направлением деятельности. Затем попал на работу в Южную Корею, где занимался полным циклом разработки IP-ядер для будущих интегральных микросхем и систем на базе FPGA, а также приобрел начальный опыт верификации. А драйв состоит в том, что, занимаясь верификацией, мы находимся на «острие» современных технологий разработки и производства интегральных схем.

Помогаете devby = помогаете ИТ-комьюнити.

Засапортить сейчас.

Читайте также
Softeqflash.by — заходите в гости!
Softeqflash.by — заходите в гости!
Softeqflash.by — заходите в гости!
Видеоотчет с нашего летнего праздника
Видеоотчет с нашего летнего праздника
Видеоотчет с нашего летнего праздника
С наступающим 256-м днем!
С наступающим 256-м днем!
С наступающим 256-м днем!
Hangugo Lessons: учим корейский вместе.
Hangugo Lessons: учим корейский вместе.
Hangugo Lessons: учим корейский вместе.

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.