Дизайнер FPGA, который не получил работу

Дизайнерfpgaкоторыйнеполучилработу

Ищу работу? Возможно, вы только что закончили колледж в области цифрового дизайна и ищете работу в области цифрового дизайна. Возможно, вы на полпути к учебе в колледже с небольшим опытом RTL и просто ищете стажировку. Возможно, вы одинокий человек, только что выполнивший свой последний контракт и ищущий новый. В любом случае, вы ищете что-то новое.

Если да, читайте дальше. Я хотел бы поделиться своей точкой зрения с другой стороны, со стороны попытки найти кого-то с вашими навыками.

Видите ли, мое время в настоящее время превышено. Это одна из проблем успеха – вас никогда не бывает достаточно. Проблема в том, что я всего лишь магазин одного человека. Я избегал необходимости изучать трудовое и налоговое законодательство, не нанимая на работу. Хотя я не против расширения технологии Gisselquist , я просто не в состоянии сделать это сегодня.

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

Недавно он нашел индийца, только что окончившего колледж, который предлагал свои услуги как «инженер по цифровому дизайну». Итак, мой клиент спросил меня, могу ли я предложить ему проект в «цифровом дизайне», который мы могли бы дать ему, чтобы он продемонстрировал свои способности? Это должно быть что-то простое, но что-то, что поможет нам понять, нанимать ли его для более важной работы или нет.

Я должен отметить, что меня не впервые спрашивают этот вопрос. Раньше я использовал свой учебный курс по формальной проверке для интервьюирования студентов. Я бы дал им одну из задач курса, а затем посмотрел, насколько хорошо они ее решат. Если бы они не были готовы к этому, я бы провел пару уроков, чтобы посмотреть, насколько хорошо они усваивают материал. Те, кто быстро подбирает материал, являются хорошим материалом для найма, те, кто этого не делает, получат ласковое «Нет, спасибо».

Это займет около 2-4 часов моего времени, однако.

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

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

Рассмотрите это с моей точки зрения. : управление требует времени. Определение проекта, над которым будет работать, требует времени. Реальные жизненные проблемы не приходят в готовом виде, готово к определению, готово для того, чтобы кто-то мог просто взять их и решить. Кроме того, действительно ли я доверяю кому-то новичку в решении реальной жизненной проблемы, прежде чем он проявит себя? Этот проект, с другой стороны, содержал проблемы, которые уже были четко определены, и поэтому выглядел как идеальная задача. Вдобавок мой клиент предлагал заплатить этому человеку за выполнение работы.

Звучит как хорошее предложение для любого новичка: вы можете получить оплату за выполнение работы немедленно. Если вы преуспеете, последует дополнительная работа. Если вы этого не сделаете, вы все равно сможете уйти с тем, что вы узнали, а также с деньгами, которые вам дали для решения проблемы. Мне это кажется хорошей сделкой, не так ли?

Реакция этого человека шокировала меня. Он сказал, извините, но я ищу работу дизайнера, а не работу по проверке.

Я прикусил язык, когда получил свой первый ответ.

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

Однако моя проблема заключалась в том, что этот кандидат на самом деле не был моим, и поэтому я решил смягчить свои слова и побудить его переосмыслить свою позицию.

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

Следующее скопировано из моего ответа ему , с небольшими правками.

Цифровой дизайн определяется стоимостью

Каждая отрасль определяется затратами. В мире проектирования цифровой логики самое дорогое, что вы можете сделать, – это отладить что-то аппаратно. При работе с ПЛИС может потребоваться 5 – 20 минут на создание сборки и еще 5 минут для проведения теста (в хороший день – для сборки некоторых проектов требуется 2 часа…). После того, как вы запустите этот тест , вы сможете увидеть только между 20 и 200 сигналов и только около тысячи тактов часов или около того . То есть вы можете найти ошибку, если вам повезет, и вы просто искали ее и искали в нужном месте. Если эти сигналы не раскрывают вашу ошибку, вам придется повторять и повторять – предполагая, что проблема повторяется. Процесс очень дорогой и болезненный. Вы можете потратить месяцев на застрявший проект, не зная, что с ним не так . Я называю эту проблему FPGA Hell . К сожалению, люди довольно часто застревают в аду FPGA .

Проблема усугубляется Дизайн ASIC . (Да, я тоже сейчас этим занимаюсь…) Если вам нужно отлаживать ASIC, вы уже потратите несколько миллионов долларов, чтобы это сделать. Это плохое место. Иногда я называл это ASIC Hell. В отличие от FPGA Hell , ASIC Hell намного горячее как минимум на два порядка.

Чтобы упростить эту задачу, в индустрии цифрового дизайна используются моделирование . Много долларов и часов тратится на моделирование конструкций. В хороший день моделирование выявит проблемы. Во многих случаях, с которыми я имел дело в последнее время, моделирование требует 22 минут на запуск и создание ГБ данных, которые затем необходимо отсортировать. В отличие от работы на оборудовании, моделирование может предоставить вам каждые сигнал, имеющий место в проекте. Однако это приводит к большим требованиям к обработке данных, что может сделать отладку результатов моделирования реальной проблемой.

Моделирование – это здорово – когда они обнаруживают ошибки.

Один из реалии, укоренившиеся в истории и культуре Gisselquist Technology , заключаются в том, что моделирование редко обнаруживает критические ошибки. Следовательно, несмотря на всю работу, которую вы вложили в симуляцию, симуляция не является достаточно полной, чтобы найти все ваши ошибки. Многие из проведенных нами исследований выявили ошибки, прошедшие симуляционные тесты, которые по-прежнему нуждаются в проверке на аппаратном уровне . Хуже того, у меня было несколько дизайнов проходных тестирование оборудования только для того, чтобы обнаружить скрытые ошибки, оставшиеся в них гораздо позже.

Это не только я. Xilinx – один из немногих лидеров отрасли в технологиях проектирования FPGA, и все же я отслеживал ошибки в IP-адресах Xilinx. годами. Некоторые из этих ошибок существуют с и оставайтесь даже сейчас в Вивадо

. 2. Другие прошли проверку качества Xilinx «передовой опыт». Они были проверены с помощью лучших симуляционных тестов, но ошибки все же исправились. Я нашел их в короткие сроки с помощью формальных методов при тестировании SymbiYosys. (Почему Xilinx? Потому что я много пользуюсь их оборудованием. Быстрый взгляд на Intel показывает некоторые из тех же типов ошибок …) Действительно, ошибки интерфейса AXI, к сожалению, довольно распространены в индустрии FPGA .

Обо мне

Но позвольте мне теперь вернуться и рассказать вам кое-что о себе , потому что это может помочь вам понять мою точку зрения, когда дело касается поиска работы претенденты. Я изучал инженерное дело в качестве офицера ВВС США. Ближе к концу службы я взял Verilog. Это было примерно в 2013 – 2013, когда я построил два Verilog проекты. Как и любой офицер ВВС, я также был техническим менеджером, ответственным за управление и проверку многих проектов.

Затем я оставил службу и основал Gisselquist Technology, LLC, в 2013. Мои первоначальные бизнес-усилия не были хорошо сфокусированы, так что только после , когда я наконец решил, что хочу сосредоточиться на цифровом дизайне, а затем начал создавать несколько проекты для использования в качестве портфолио. Как микробизнес человека, пытающегося найти работу, у меня не было другого выбора, кроме как проверить свои собственные разработки. В компании Gisselquist Technology не было разделения между инженером-проектировщиком и инженером-верификатором. Эти две задачи были просто разными аспектами одной и той же работы.

Это продолжалось около двух лет, в результате чего я пришел к 2018. В том году я все еще пытался найти бизнес и поэтому завел блог. В то время, когда я веду блог, меня попросили опробовать формальные методы. Серьезно? Меня это не интересовало. Я хотел заниматься цифровым дизайном, а не играть с новомодными игрушками. Однако Мне нужен был бизнес , и тестирование инструмента формальной проверки может сделать хорошая статья в блоге. Итак … Я протестировал новый инструмент формальной проверки, известный как SymbiYosys. К моему большому разочарованию, он быстро обнаружил ошибки в дизайне, который я использовал в течение многих лет. .

Я был шокирован. Никто не хочет нанимать цифрового дизайнера, который создает ошибочный код. Ни один. Никто. Затраты на поиск и исправление ошибок слишком дороги. Итак, рассуждал я, зачем кому-то быть интересным цифровым дизайнером, если его дизайнерское портфолио были баги? Что, если кто-то произвольно выбрал мою работу и быстро обнаружил в ней ошибки? Я быстро потеряю этого потенциального клиента – они будут искать кого-то еще, кто действительно мог бы сделать эту работу. Итак я начал использовать формальные методы для всех дизайнов в моем портфолио – от наименьшего к наибольшему. К сожалению, используя формальные инструменты, я обнаружил ошибки в каждом дизайне. Я даже обнаружил ошибки в моем флагманском дизайне, ZipCPU .

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

Учебное пособие по ZipCPU

Там другая часть этой истории. Когда я начал в 2016, я использовал различные онлайн-форумы как средство, чтобы стать известным. Я провел много времени на форуме OpenCores , а также Digilen форумы t . Это дало мне возможность слушать множество студентов, которые пытались выполнить окончательные дизайнерские проекты. Я быстро узнал, что этих студентов учили языку выражать дизайн и моделирование по сценарию, но не инструменты, которые потребуются для фактической отладки своих проектов . Как правило, те студенты, с которыми я встречался, постоянно боролись с аппаратными ошибками, которые они не знали, как отлаживать.

Итак, как только я начал с формальных методов и обнаружил, насколько это просто я писал учебное пособие , которое новые студенты могут использовать для изучения Verilog. Этот

Рис. 1. Подход к обучению: начните со всех трех параллельно

учебник начал с нуля, обучая Verilog, Моделирование на основе верилятора и формальные методы. Этот

учебник теперь был хорошо принят многими.

С тех пор я пытался собрать промежуточный учебник .

Я не продвинулся так далеко, как вы могли заметить. Ясно, что на это есть спрос, просто …

Сейчас у меня слишком много заказов, и у меня слишком много проектов.

Ключом к поиску работы была, среди прочего, формальная проверка всех моих проектов. Нет, я не использую отдельную группу проверки. У меня нет денег, чтобы позволить себе такую. В этом мире малого бизнеса инженерам по цифровому дизайну необходимо проводить собственную проверку. Это не только малый бизнес – я знаю и крупные компании, которые были вынуждены сократить свои группы проверки, чтобы сократить расходы. Именно в этой среде я по найму занимаюсь цифровым дизайном. Мои клиенты зависят от формальной проверки моей работы и доверяют ее выполнению. Я также стараюсь поддерживать репутацию в области качества. Это качество достигается за счет формальной проверки всей моей работы.

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

Прима Доннас

Есть еще кое-что ты должен знать. Вернувшись в свое время, когда я работал подполковником в ВВС США, я быстро понял, что некоторые из людей, которыми сложнее всего управлять, являются технически подготовленными людьми. Им нравится верить, что они знают, что лучше. Они знают это настолько хорошо, что склонны делать то, что, по их мнению, правильно, сверх того, что им говорят. Они будут рассказывать боссу, как боссу нужно вести свой бизнес. Если вам это не понравится, они будут угрожать вам уйти. У нас было имя для таких людей. Мы назвали их «

Примадонны ».

С Примадоннами действительно тяжело работать. С ними тоже очень трудно справиться.

Я боролся со своей долей Примы Доннас на протяжении многих лет – как с теми, кто работал со мной, так и с теми, кто работал со мной в моей команде. Если вы дадите этим людям задачу, они часто будут работать над чем-то другим, и тогда они будут ожидать, что вы будете ценить их другую работу лучше, чем оплачиваемая работа, которая на самом деле приносит деньги. за что платят?) Справиться с ними – сложная управленческая задача, и менеджеру в ней трудно победить. Это значительно усложняет выбор людей. Именно поэтому вы прилагаете гораздо больше усилий для поиска лучших людей – не только тех, кто технически квалифицирован, но и тех, кто готов работать над любым проектом, который им дают.

Суть

Проще говоря, вот мои итоги:

    Если вы не Я не заинтересован в изучении и использовании формальных методов, тогда я рекомендую всем, кто нанимает, найти кого-нибудь еще. Однако вы упустите некоторые возможности, которые открылись для работы над цифровыми проектами следующего поколения: новые процессоры, новые контроллеры памяти, системы обработки изображений, следующее поколение

  • СОНАР и Радиолокационные системы и многое другое.

    Нет, вам не нужно брать мои конечно, формальными методами , и я не пытаюсь убедить вас зарегистрироваться. В самом деле, я могу вас отвергнуть, если вы свяжетесь со мной сегодня. Однако вы можете ознакомиться с материалами курса. Слайды курса размещены , как и упражнения. Я также был известен тем, что отвечал на вопросы людей по электронной почте, независимо от того, прошли они мой курс или нет.

      Если вы инженер-конструктор, который не может достаточно смириться, чтобы проверить переданную вам неисправную конструкцию, то я предвижу, что с вами также будет сложно справиться. Было бы легче работать с кем-то менее талантливым, чем с кем-то более талантливым, который не желает делать то, что его просят. Опять же, я рекомендую любому менеджеру по найму искать кого-нибудь еще.

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

      Найти нового выпускника легко.

      Найти кого-то, у кого есть и то, и другое. талант и характер, это намного сложнее.

      Подумайте об этом.

      Ваш,

      Дэн