Все потоки Разработка Администрирование Дизайн Менеджмент Маркетинг Научпоп Войти Регистрация
МЦСТ, Модуль ...). Когда вышло первое печатное издание на русском языке, его тоже довольно быстро
раскупили и пожаловались, что оно черно-белое. Поэтому следующий принт был цветной, улучшенного 5 книг Стругацких
качества. 6,4k 17
Теперь возникает вопрос: ну хорошо, вы приобрели или скачали бесплатно книжку, поняли основы Мир JavaScript в 2021 году
цифровой схемотехники, языков описания аппаратуры Verilog и VHDL, приобрели вкус писания на 12,2k 10
ассемблере и разобрались с организацией простейшего конвейерного микропроцессора, а также как
все это стыкуется с периферийными устройствами и встроенным программированием. Что делать Самоучкам здесь не место? Опрос о
дальше? саморазвитии в IT
Опрос
Редакторский дайджест
Присылаем лучшие статьи раз в месяц
Электропочта
Прежде всего, если вы после H&H подучитесь еще, вы можете получить интересную работу в одной из
компаний, которая занимается проектированием микросхем. Например в Байкал Электроникс, которая
разрабатывает процессоры для станков, контроллеров газопроводов, коммуникационных устойств и
терминалов «Таволга»:
Вот недавняя статья про встроенные компьютеры на основе микропроцессора Байкал-Т и тесты
производительности. Байкаловцы с платами для разработчиков. На них работает Линукс:
Элвисовцы спроектировали чип ELISE с их собственными блоками обработки видео, и сделали на нем
вот такую плату для разработчиков, к которой можно приделать камеру и что-нибудь пораспознавать:
Также вы можете пойти в очень интересную группу НИИСИ РАН, где спроектировали микропроцессор
КОМДИВ-64 — см. видео с менеджером проекта. КОМДИВ-64 совместим по архитектуре (системе
команд) с MIPS64, но имеет собственную, спроектированную в России микроархитектуру
суперскалярного конвейера и собственный векторный сопроцессор. Вот пример компьютера на
процессоре КОМДИВ-64, который способен работать в экстремальных условиях — от канадской
Арктики до южной Аризоны:
Но прежде чем работать разработчиком чипов, после вводной книжки Харрис & Харрис нужно
накачать некоторые рабочие навыки. Для этого существует учеба в университете (зеленоградский
МИЭТ, московские МИФИ, МФТИ и МГУ, питерский ИТМО, киевский КПИ и другие), самообразование с
помощью книг, онлайн-курсы и open-source проекты.
Начнем с книг. Если вас интересует микроархитектура (строение конвейера и логических блоков
процессора), то вы можете попробовать вот такие книжки. Фаворитом среди практикующих
микроархитекторов является Шень-Липасти, но синяя книжка посередине может понравиться
несколько больше тем, кто не любит много читать (она более краткая):
Но чтобы вам реализовать микроархитектуру или даже просто арифметические блоки, вам нужен
инструмент. Когда-то давно цифровые схемы рисовали мышкой на экране, но в последние 25 лет
дизайн чаще всего пишется на языке Verilog (иногда VHDL), после чего специальная программа (logic
synthesis) превращает дизайн в граф из проводов и логических примитивов, другая программа (static
timing analysis) сообщает дизайнеру, вписывается ли он в бюджет скорости, а третья программа (place-
and-route) раскладывает этот дизайн по площадке микросхемы. Когда дизайн проходит все этапы:
кодирование на верилоге, отладка, верификация, синтез, static timing analysis, floorplanning, place-n-
route, parasitics extraction и т.д. – получается файл под названием GDSII, который отправляют на
фабрику, и фабрика выпекает микросхемы.
Если вам хочется понять, что такое Verilog и VHDL за пару дней, вы можете почитать вот такие книжки,
но вообще говоря, все, что в них есть, есть и в Харрис & Харрис, за исключением тематики PLL (блоков
для манипуляции с сигналом тактовой частоты). С другой стороны, про PLL в этих книжках рассказано
недостаточно, поэтому я упоминаю их только потому, что они необыкновенно тонкие:
Если же вам хочется почитать про Verilog от людей, которые реально стояли у его истоков, вот три
книжки. Первая похожа на Керниган-Ричи для Си, вторая (тяжеловатая) на Страструп для C++, третью
написал известный гуру-консультант, который также любит порассуждать на 37 страниц, какой сброс
лучше — синхронный или асинхронный.
Тут надо сказать, что Verilog — это не только язык для описания и синтеза схем, но и язык
программирования для написания тестов. В некоторых компаниях на каждого инженера, который
пишет код на верилоге на уровне регистровых передач, приходится три инженера, которые пишут код
для верификации. Функциональная верификация — это вообще отдельное искусство со специальными
языками, методологиями с использованием моделирования, автоматическим доказательством свойств
схемы и т.д.
Лучшая книга по языку SystemVerilog — на картинке ниже слева. Справа же — довольно старая книжка
по написанию сред тестирования, обновленная для SystemVerilog. Это книжка нудная, но подходит для
регулярного чтения, по полчаса в день, в общественном транспорте типа электрички, чтобы перенять
опыт предыдущих поколений пользователей верилога.
В центре я привел очень простую и тонкую книжку, которая содержит элементарное введение в
Universal Design Methology (UVM). UVM — это библиотека классов на SystemVerilog для создания средств
тестирования на уровне блоков. Методология UVM не так универсальна, как обещают ее консультанты
менеджменту, но практически каждому верификационному инженеру полезно иметь о ней
представление. Эта книжка про UVM нелохая, хотя и не описывает, как присать драйверы для
конвейерных трназакций (это часто нужно). Прочитайте эту книгу за викенд и передайте другому — она
реально такая короткая. Хороших длинных книг про UVM нет (они все плохие), поэтому я рекомендую
читать стандарт и общаться с коллегами. При использовании UVM желательно использовать здравый
смысл, иначе вместо реальной работы вы начнете бесконечно искать способы как обойти довольно
жесткую структуру, навязываемую UVM.
Один из первых вопросов, который встает у людей, которые думают про изучение цифровой
схемотехники: ну допустим я спроектировал собственный процессор, но как мне его произвести, ведь
заказ типичной коммерческой микросхемы на фабрике стоит более миллиона долларов? Ответом
является использование ПЛИС / FPGA — это специальные микросхемы, которые представляют собой
матрицы из ячеек, логические функции в которых, а также соединения между которыми, можно
многократно менять после изготовления. Они гораздо дороже и медленнее, чем обычные
специализированные микросхемы, но для них нет “начального взноса” на производство. Сейчас на
рынке есть студенческие платы с FPGA стоимостью менее $100, поэтому студенту и университетам для
экспериментирования больше не нужно выкладывать крупные суммы. Научиться основам работы с
FPGA можно довольно просто (см. напр. статью на сайте росийского производителя FPGA плат), но при
более продвинутом использовании возникает много вопросов — как по техническим деталям
использования FPGA, так и по подходом м методологиям. Я рекомендую вот эти две книжки для чтения
перед сном:
Один из соавторов второй книги — наш соотечественник Игорь Марков, который стал в Америке
широко признанным авторитетом по автоматизации физического проектирования электроники. Игорь
Марков также приезжал в МГУ и провел там семинары, которые помогли мгушникам включиться в
алгоритмически интересные исследовательские проекты в этой области. Вот несколько слайдов с этих
семинаров:
Приведенная выше куча книг может создать впечатление, что область проектирования электроники
очень сложна. Это не совсем так: в ней есть сложные задачи, но основные методы может усвоить даже
пятиклассник. Это не преувеличение: вот видео продвинутого пятиклассника Вячеслава, который
начился работать с Verilog и FPGA на Летней Школе Юных Программистов в Новосибирске в июле этого
года:
Станислав Жельнио начал писать процессор schoolMIPS на основе примера их Харрис & Харрис, потом
ему начал помогать преподаватель МИЭМ ВШЭ Александр Романов, который хочет использовать этот
процессор в своем курсе. Кроме этого, Станислав сделал несколько существенных улучшений и для
образовательного проекта MIPSfpga, который основан на промышленном процессорном ядре MIPS
microAptiv UP.
И schoolMIPS, и MIPSfpga можно использовать как следущие шаги после изучения Харрис & Харрис.
Они могут стать основой для цепочки стуженческих проектов.
schoolMIPS можно шаг за шагом нарастить и добавить к нему конвейерность, работу с памятью, кэши,
более длинный конвейер, суперскалярность и даже scoreboard в стиле CDC 6600 и алгоритм Томасуло.
Можно просто использовать MIPSfpga для построения прототипа системы на кристалле и интеграции с
ним датчиков, как это сделал киевский студент Олег Плотников под руководством Евгения Короткого из
лаборатории Лампа КПИ:
Для таких народных проектов есть три коллекции плат — в Киеве (Киево-Могилянская Академия,
Москве (ВШЭ-МИЭМ) и Новосибирске (НГТУ). Если вы хотите сделать скажем пример «CDC 6600 на
верилоге» и обязуетесь написать про это пост на Хабре, но у вас нет платы, вы можете одолжить ее в
одном из этих мест.
Вот фотография с хакатона в Киево-Могилянской Академии, где школьники использовали FPGA плату,
показанную на видео и где собираются внедрить Харрис & Харрис в обучение:
Если вам недостаточно бесплатно скачанного учебника Харрисов, и вы хотите бумажную копию с
высоким качеством печати, то помимо интернета, вы можете купить ее в некоторых книжных, например
в московском Библиоглобусе. Правда они его поставили не среди книг по электронике, а среди книг по
программированию, но он реально находится на границе электроники и программирования, поэтому
его можно поставить хоть в два отдела:
Теги: fpga/asic, asic, mips, mipsfpga, schoolmips, ассемблер, мгу, мифи, вшэ, миэм, нгту, кпи, микроэлектроника,
verilog, vhdl, Миландр, ЭЛВИС, элвис-неотек, байкал электроникс, байкал-т1, модуль, мцст, нииси, нииси ран,
комдив-64, км-211, melexis, кму, киево-могилянская академия, плис, synopsys, cadence
181,0 0,0
Карма Рейтинг
Промо
КУРСЫ
Как косяки и заваленные сроки
научили нас релизить проекты
Основы HTML и CSS
1 марта 2021 • Бесплатно
• Нетология
но процессоры ведь тоже кто-то должен делать!) Джон Кармак предложил способ
борьбы с дефицитом видеокарт и
игровых консолей нового поколения
Varim 22 августа 2017 в 18:31 0 31,5k 351
И мусор мести!
И пыль возмездия!
Есть некоторая контора, которая разрабатывает параллельную архитектуру процессора. Год-два назад
искали от 45 т.р. программиста на компилятор, фпга-шника в такую же стоимость озвучивали.
Сфера деятельности узкая, потому рабочих мест не много, работодатели сильно манипулируют этим.
45 т.р. это как то как раз что бы владелец фирмы работал в одиночку.
Сфера деятельности узкая, потому рабочих мест не много, работодатели сильно манипулируют
этим.
Казалось бы что это значит наоборот, кандидаты должны ломить ЗП в пять раз больше чем скажем
распространенные джависты. Но вместо того что бы пойти в джависты, они видимо прутся куда
возьмут.
джависты
Насмотрятся таких, вот, Постов и идут в узкую специализацию. Хотя таких специалистов нужно с
десяток тысяч на _всю_ планету.
Общался с хардварщиками, да, з/п низкая у тех, кто на базе ардуинок и готовых схем делает бегущий
строки. Те кто занимается разработкой вроде как з/п на уровне.
Екб: 45-80
Питер: от 60-80
Мск: 60-110
Сложность: 4-6 слоев, DDR(2/3)/ARM7-11, фильтры, linux, драйвера под них и т.п.
Питер: от 60-80
Мск: 60-110
Ничего удивительного, такие человеко-орекстры мало продуктивны: Тут уже как минимум
схемотехник-технолог и программист.
Часто сюда приплетают и разработку корпуса и работа с производством и подбор
компонентов и много ещё чего. Нередко такие компании ещё и в убыток работают и компы не
новые. А некоторые за 60тр заставляют ещё и участвовать в маркетинге своих поделий или
искать клиентов.
Идея создать серию таких удаленных курсов есть, над ней возможно смогут работать кто-нибудь из
преподавателей вузов, которые участвуют в конференции в Томске 18-22 сентября —
https://nanoandgiga.com/ngc2017/digital-design
И на одном, и на другом мероприятии будет обсуждатся тематика языков описания аппаратуры, IP-блоки,
архитектура и микроархитектура, синтез и верификация, FPGA и ASIC и производство.
Кстати, правильно ли я понимаю, что интерпретатор для Верилога — это литографический Степпер? Или я
какой-то промежуточный шаг забываю?
Помимо цепочки преобоазований, которая ведет от верилога к литографическому степперу, есть также
несколько программных симуляторов Верилога, в том числе бесплатные — Icarus Verilog, Mentor ModelSim,
симулятор в Xilinx Vivado и платные — Synopsys VCS, Cadence IUS итд.
Не-не, меня интересует как раз обратная сторона вопроса. Я скоро устраиваюсь на работу
разработчиком степпера (но точное место моего применения я пока не знаю) и пока только начал
вникать в тему. Меня интересует, не нужно ли мне будет в какой-нибудь момент писать интерпретатор
Верилога. Не принесут ли мне что-нибудь, написанное на верилоге, что нужно будет прожечь и
сравнить качество прожигания с эталоном.
Извиняюсь, если сказал какую-нибудь глупость, повторюсь, что только начал вникать в тему, и пока
больше теорфизическую оптику вкуриваю.
Это интересный вопрос. С одной стороны ко времени степпера верилог какбы пропадает и остается
только геометрический файл GDSII, но с другой стороны он потом снова может вылезти при
тестировании произведенных чипов тестировочными устройствами (какие-нибудь ссылки на
исходники, back-annotation). Может @ valeriyk знает.
Mentor ModelSim
Статья как-бы подразумевает, что в нормальные компании вроде Intel или Samsung всё равно с такими
знаниями лучше не соваться?
Итого сфера на порядок более сложная и ответственная, чем какое-нибудь веб-программирование, работать
придётся на уровне абстракций из 70-х в программах из 90-х, а список реальных работодателей весьма
ограничен, при этом никаких тебе bleeding edge проектов как в Intel: будешь пилить то, что уже и так
выпускается десятком fabless и не fabless фирм, скорее всего — для какой-нибудь полувоенной
"отечественной" конторы со всеми вытекающими…
Ну такое.
Ничего подобного. Все эти знания применимы и для работы в Интеле и Самсунге, которые использует те
же средства проектирования, что и Байкал (напр. Synopsys Design Compiler) и ЭЛВИС-НеоТек (отделение
Интела Mobileye лицензирует ядро MIPS I6500 от Imagination Technologies; это же ядро также лицензирует
ЭЛВИС-НеоТек).
В последние несколько лет российские компании стали использовать те же тулы, что и компании в Silicon
Valley
Девочка Даша упомянутая в тексте реализовала свой процессор на плате с Altera FPGAa, которая сейчас
является частью Интела и вообще переназвана Intel FPGA.
Я тоже могу себе поставить какой-нибудь Cadence IC, это не сделает меня равным инженерам
Intel :) Тут же нужно образование, и опыт, и культура — вот это всё...
Впрочем сам этот Cadence IC и ему подобные выглядят как артефакты из 90-х, значительно отставая от
более современных и удобных средств мейнстримовой разработки. А отсюда и вопрос — стоит ли с
этим вообще заморачиваться, за более низкую по сравнению с теми же веб-программистами зарплату
и возможность реального трудоустройства в полторы конторы...
Тут какое-то недоразумение. Что вы имеете в виду под «более современными и удобными
средствами мейнстримовой разработки»? Интел, Самсунг и Байкал используют те же самые тулы. Я
делал три проекта для Интела, я был в интеловском офисе в Санта-Кларе и в Фолсоме. Я не думаю, я
знаю, что они используют.
В двух метрах от меня на работе сидит бывший инженер Интела. В Интеле есть и русские инженеры,
например Амир Аупов www.facebook.com/profile.php?id=100001401986745 или например был Денис
Хартиков (он сейчас в NVidia)
Давайте я вам видео про Xcode, а вы мне видео про Synopsys что-у-них-там.
IC Compiler II вполне симпатичный. К тому же, он еще и работу делать умеет, для которой
народ по 250 гигабайт оперативки ставит, а не только рюшечки рисует, как Xcode.
Меня приглашали работать в Интеле, я могу сказать абсолютно точно, что все интеловские
инженеры, которые пишут RTL Verilog для реализации микроархитектуры или unit-level
тестбенчи, в некоторый момент своего обучения прошли именно то, о чем я пишу в посте —
Verilog, синтез, верификация, SystemVerilog, микроархитектура по Хеннесси-Паттерсону итд. А
что еще? Это основа их методологии.
Baikal Electronics Selects Synopsys Solutions to Accelerate the Design and Verification of Their
Advanced SoCs
news.synopsys.com/2015-03-16-Baikal-Electronics-Selects-Synopsys-Solutions-to-Accelerate-the-
Design-and-Verification-of-Their-Advanced-SoCs
Или вот посмотрите чему учат на кафедре Интела в МФТИ — там работает в частности Павел
Крюков https://mipt.ru/drec/about/ilab/projects/current_projects/mipt-mips/
https://mipt.ru/education/chairs/microprocessors/
Подождите-ка, я понял. Когда вы спрашиваете про Xcode, вы хотите спросить «какие есть
мейнстримные интегрированные среды для проектирования на Verilog»? Разумеется —
Synopsys DVE / VCS для моделирования, Synopsys Design Vision для синтеза, Synopsys IC
Compiler для physical design и эквивалентные среды для Cadence, а также toolchains для FPGA:
Altera / Intel FPGA Quartus II, Xilinx Vivado. Это то, что вы спрашивали? Все их можно
использовать с информацией в моем посте.
Я говорю о том, что среды для разработки на Verilog и ему подобном по удобству для
программиста отстают от более удобных и активно разрабатываемых мейнстримовых IDE
типа Xcode. Также нет их версий под мак и т. п. Всё выглядит сурово и по хардкору, как в 90-
х.
А, вы об этом. Ну да, это факт. Просто лучшие GUI программисты идут работать в Apple и
Google, а в Synopsys и Cadence идут на GUI те, кто остается. Но зато на алгоритмы EDA
лучшие идут в Synopsys и Cadence.
Может всё дело в том, что для hdl-разработчика в первую очередь важно не то, что для
программиста? А то я со стороны железячника тоже много доброго могу написать про
отображение регистров процессора в отладчике xcode…
Т.е. вы считаете, что когда я пишу asm для планшетного arm-а, то я где-то в
другом месте должен его отлаживать, не в Xcode? Я бы согласился с вами,
если бы Xcode позиционировался как продвинутый текстовый редактор. Но
вроде он позиционируется как нечто другое…
P.S. Всегда пользуюсь для редактирования кода тем редактором, который
нравится мне, а не тем, который нравится авторам среды разработки.
Там ещё куча фишек, что не возьмут в конкурирующую компанию, в случае ухода из одной.
Так что список можно делить смело на три.
Ну такое.
В РФ точно не стоит за такое браться, выгоднее хотя бы ПЫХ программистом, за большие деньги и
меньшие проблемы с трудоустройством.
ИМХО даже если что-то не сложится в Intel или Samsung — это всё равно будет солидная строчка в
резюме и полезный опыт работы. Лично я после работы в государственном вузе и после этого в двух
стартапах, решила попробовать себя в Samsung, и в общем, очень довольна :)
Есть сомнения, что солидная строчка сильно поможет в трудоустройстве вне этой узкой
специализации, если вдруг что.
Хорошие книги для работы с FPGA производителей Xilinx и Altera так же есть под авторством профессора
Понг Чу (Pong Chu), содержащие очень подробные описания и хорошие примеры кода, которые можно
скачать у него на сайте.
academic.csuohio.edu/chu_p/rtl/index.html
Следущие шаги в черной магии процессоростроения после того, как вы освоили Харрис & Харрис
ЕМНИП, в русском языке есть интересный момент касательно склонения мужских и женских имён
собственных с нулевым окончанием. Думаю, правильнее было бы написать «Харриса & Харрис».
Э-эх. Сейчас уже, наверное, поздно заниматься этим. В своё время покупал на Невском книжки по языку С у
спекулянтов. Сейчас всё доступно кроме времени и возраст уже не тот.
90 лет не срок
Вместо команды пиарщиков из Байкала лучше бы прикрепили фотографию разработчиков Байкала. Или нет
такой?
Пиарщик Байкала на фотке ровно один — справа. Я лично не пиарщик Байкала (я на одной из фоток
слева). Я разрабатывал для этого проекта BFM (Bus Functional Models) ядра MIPS P5600. Товарищ в
пурпурной рубашке — менеджер по верификации SoC. У меня еще есть фотка девочки, которая
разрабатывала часть LSU (load-store unit). Если у вас есть еще фотки разработчиков, выкладывайте их сюда
в комментарии.
Я прекрасно знаю, кто на фото. :) Потому и просил фото разработчиков. Ну, впрочем, оставим это дело на
откуп нынешнего Байкала.
Я двумя руками за. Если байкаловский менеджмент пришлет мне групповую фотку разработчиков и если
разработчики будут не против сами, я это поставлю.
Пока держите вчерашнюю фотку, на которое есть в том числе и несколько разработчиков ядра P5600
внутри Байкала:
Вряд ли Байкал пришлет такое фото. А если и пришлет, то фото с «несколькими разработчиками».
на edX есть два курса где лабораторные работы делаются на реальных платах:
www.edx.org/course/embedded-systems-shape-world-multi-utaustinx-ut-6-20x
www.edx.org/course/embedded-systems-shape-world-utaustinx-ut-6-10x
www.edx.org/course/real-time-bluetooth-networks-shape-world-utaustinx-ut-rtbn-12-01x-0
Идея создать серию таких удаленных курсов есть, над ней возможно смогут работать кто-нибудь из
преподавателей вузов, которые участвуют в конференции в Томске 18-22 сентября —
https://nanoandgiga.com/ngc2017/digital-design
И на одном, и на другом мероприятии будет обсуждатся тематика языков описания аппаратуры, IP-блоки,
архитектура и микроархитектура, синтез и верификация, FPGA и ASIC и производство.
Спасибо за ссылку!
Не плохой альтернативой книге CMOS VLSI Design: A Circuits and Systems Perspective является Digital Integrated
Circuits (2nd Edition) под авторством Jan M. Rabaey (профессора из Беркли). Эта книга переведена на русский
язык, а на youtube есть даже видео курс читаемый автором на основе материала книги.
САМОЕ ЧИТАЕМОЕ
© 2006 – 2021 «Habr» Настройка языка О сайте Служба поддержки Мобильная версия