Академический Документы
Профессиональный Документы
Культура Документы
Все потоки Разработка Администрирование Дизайн Менеджмент Маркетинг Научпоп Войти Регистрация
МЦСТ, Модуль ...). Когда вышло первое печатное издание на русском языке, его тоже довольно быстро
раскупили и пожаловались, что оно черно-белое. Поэтому следующий принт был цветной, улучшенного 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» Настройка языка О сайте Служба поддержки Мобильная версия