Недавно вышло еще одно печатное издание книжки Харрис & Харрис на русском языке. Это широкоохватывающий ликбез про то, как проектируют микросхемы в компаниях типа Apple и Intel (методология проектирования на уровне регистровых передач с использованием языков описания аппаратуры). До этого печатного издания вышло бесплатное электронное издание этой же книжки, которое стало вирусным — его скачивания дважды завалили британский сайт Imagination Technologies, а посты о книжке на Хабре и Гиктаймс собрали более 300,000 просмотров (1, 2, 3, 4, 5 ). История перевода книжки на русский тоже довольно поучительна — он начался как общественный проект группы энтузиастов: преподавателей российских и украинских университетов, а также русских сотрудников компаний как в Silicon Valley (MIPS, AMD, Synopsys, Apple, NVidia ...) так и в России (НИИСИ, МЦСТ, Модуль ...). Когда вышло первое печатное издание на русском языке, его тоже довольно быстро раскупили и пожаловались, что оно черно-белое. Поэтому следующий принт был цветной, улучшенного качества.

Теперь возникает вопрос: ну хорошо, вы приобрели или скачали бесплатно книжку, поняли основы цифровой схемотехники, языков описания аппаратуры Verilog и VHDL, приобрели вкус писания на ассемблере и разобрались с организацией простейшего конвейерного микропроцессора, а также как все это стыкуется с периферийными устройствами и встроенным программированием. Что делать дальше?



На снимке — Татьяна Волкова, сотрудница образовательных программ компании Samsung в Московском Физико-Техническом Институте

Прежде всего, если вы после H&H подучитесь еще, вы можете получить интересную работу в одной из компаний, которая занимается проектированием микросхем. Например в Байкал Электроникс, которая разрабатывает процессоры для станков, контроллеров газопроводов, коммуникационных устойств и терминалов «Таволга»:



Вот недавняя статья про встроенные компьютеры на основе микропроцессора Байкал-Т и тесты производительности. Байкаловцы с платами для разработчиков. На них работает Линукс:



Еще вы можете пойти работать в зеленоградскую компанию ЭЛВИС-НеоТек, которая изначально занималась космосом, но сейчас все больше расширяется в коммерческий рынок чипов для умных камер с распознаванием образов. Название их продукта «Оруэлл-2000», с аллюзией, если кто не знает, на роман Джорджа Оруэлла, придумал президент компании Ярослав Петричкович, слева на снимке:



Элвисовцы спроектировали чип ELISE с их собственными блоками обработки видео, и сделали на нем вот такую плату для разработчиков, к которой можно приделать камеру и что-нибудь пораспознавать:



Также вы можете пойти в очень интересную группу НИИСИ РАН, где спроектировали микропроцессор КОМДИВ-64 — см. видео с менеджером проекта. КОМДИВ-64 совместим по архитектуре (системе команд) с MIPS64, но имеет собственную, спроектированную в России микроархитектуру суперскалярного конвейера и собственный векторный сопроцессор. Вот пример компьютера на процессоре КОМДИВ-64, который способен работать в экстремальных условиях — от канадской Арктики до южной Аризоны:



Ну и разумеется стоит упомянуть разработчиков «Эльбрусов» МЦСТ, разработчиков встроенных микропроцессорных чипов НИИМА «Прогресс», микроконтроллеров Миландр, чипов для умных карт КМ-211, чипов для цифровой обработки сигналов Модуль, киевское отделение бельгийской компании Melexis и другие компании, в которых вы можете заниматься интересными задачами и построить плодотворную карьеру.

Но прежде чем работать разработчиком чипов, после вводной книжки Харрис & Харрис нужно накачать некоторые рабочие навыки. Для этого существует учеба в университете (зеленоградский МИЭТ, московские МИФИ, МФТИ и МГУ, питерский ИТМО, киевский КПИ и другие), самообразование с помощью книг, онлайн-курсы и open-source проекты.

Начнем с книг. Если вас интересует микроархитектура (строение конвейера и логических блоков процессора), то вы можете попробовать вот такие книжки. Фаворитом среди практикующих микроархитекторов является Шень-Липасти, но синяя книжка посередине может понравиться несколько больше тем, кто не любит много читать (она более краткая):



Также есть курс на курсере преподавателя из Принстона:



Если вы ходили в математический кружок в школе или на матолимпиады, то вы можете покопать глубже область хардвера для арифметических операций, где вы обнаружите, что даже для простого сложения и умножения чисел в столбик существуют десятки реализаций, некоторые из которых используют конвейер для повышения пропускной способности и всякие трюки для частных случаев, типа операций с константами. В этой области и сейчас, в 21 веке, происходят прорывы и эмоциональные споры — см. напр. прошлогодний стон души математика из Беркли «A Critique of John L. Gustafson’s THE END of ERROR — Unum Computation and his A Radical Approach to Computation with Real Numbers». Вот одна из неплохих книжек по компьютерной арифметике:



Но чтобы вам реализовать микроархитектуру или даже просто арифметические блоки, вам нужен инструмент. Когда-то давно цифровые схемы рисовали мышкой на экране, но в последние 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 — это не только язык для описания и синтеза схем, но и язык программирования для написания тестов. В некоторых компаниях на каждого инженера, который пишет код на верилоге на уровне регистровых передач, приходится три инженера, которые пишут код для верификации. Функциональная верификация — это вообще отдельное искусство со специальными языками, методологиями с использованием моделирования, автоматическим доказательством свойств схемы и т.д.

Карьера Verification Engineer с писанием сред тестирования на SystemVerilog может понравится опытным программистам, которые хотят сменить карьеру с например писания программ на Джаве. В SystemVerilog есть элементы объектно-ориентированного и симулированно-многопоточного программирования. Суть деятельности заключается в создание фреймворков, которые тестируют хардверные дизайны на прочность, бомбардируя их превдослучайными транзакциями и учитывая покрытие интересных сценариев (functional coverage).

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

В центре я привел очень простую и тонкую книжку, которая содержит элементарное введение в Universal Design Methology (UVM). UVM — это библиотека классов на SystemVerilog для создания средств тестирования на уровне блоков. Методология UVM не так универсальна, как обещают ее консультанты менеджменту, но практически каждому верификационному инженеру полезно иметь о ней представление. Эта книжка про UVM нелохая, хотя и не описывает, как присать драйверы для конвейерных трназакций (это часто нужно). Прочитайте эту книгу за викенд и передайте другому — она реально такая короткая. Хороших длинных книг про UVM нет (они все плохие), поэтому я рекомендую читать стандарт и общаться с коллегами. При использовании UVM желательно использовать здравый смысл, иначе вместо реальной работы вы начнете бесконечно искать способы как обойти довольно жесткую структуру, навязываемую UVM.

Также по функциональную верификацию есть курс, созданный сотрудником ЭЛВИС-НеоТек+МИЭТ и eNano / образовательным отделением РОСНАНО.



Один из первых вопросов, который встает у людей, которые думают про изучение цифровой схемотехники: ну допустим я спроектировал собственный процессор, но как мне его произвести, ведь заказ типичной коммерческой микросхемы на фабрике стоит более миллиона долларов? Ответом является использование ПЛИС / FPGA — это специальные микросхемы, которые представляют собой матрицы из ячеек, логические функции в которых, а также соединения между которыми, можно многократно менять после изготовления. Они гораздо дороже и медленнее, чем обычные специализированные микросхемы, но для них нет “начального взноса” на производство. Сейчас на рынке есть студенческие платы с FPGA стоимостью менее $100, поэтому студенту и университетам для экспериментирования больше не нужно выкладывать крупные суммы. Научиться основам работы с FPGA можно довольно просто (см. напр. статью на сайте росийского производителя FPGA плат), но при более продвинутом использовании возникает много вопросов — как по техническим деталям использования FPGA, так и по подходом м методологиям. Я рекомендую вот эти две книжки для чтения перед сном:



Помимо разработки схемы на логическом уровне есть и физический уровень — размещение логических элементов по площадке микросхемы и соединение их дорожками, с учетом разного рода физических эффектов. Вы можете почитать про это вот в таких книжках. Та, которая слева, описывает процесс, с точки зрения пользователя софтвера для проектирования. Это книгу написал Дэвид Харрис, один из Харрисов в «Цифровой схемотехнике и архитектуре компьютеров». Книга справа — это про алгоритмы, используемые в софтвере для автоматизации проектирования:



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



Но если вы не хотите углубляться в алгоритмы, используемые в софтвере для проектировщика, а хотите быть проектировщиком сами, и при этом хотите получить общую картину всего пути от идеи до фабрики, во можете попробовать ликбезный курс от образовательного отделения РОСНАНО. Курс называется «Специализированные интегральные схемы наноуровня». Ниже выборка из слайдов, которая показывает, о чем идет речь в курсе. Также есть другой, сходный по тематике курс от преподавателя МИЭТ + eNano и еще один смежный к нему курс:



Приведенная выше куча книг может создать впечатление, что область проектирования электроники очень сложна. Это не совсем так: в ней есть сложные задачи, но основные методы может усвоить даже пятиклассник. Это не преувеличение: вот видео продвинутого пятиклассника Вячеслава, который начился работать с Verilog и FPGA на Летней Школе Юных Программистов в Новосибирске в июле этого года:



А на этом снимке восьмиклассница Дарья (справа) добавила инструкцию в простейший процессор (модифицировав декодер и ALU), синтезировала его, написала тесты на ассемблере и запустила процессор на FPGA плате:



Код, который Дарья модифицировала в Новосибирске, находится здесь. Учебный процессор, используемый в проекте — это schoolMIPS от Станислава Жельнио sparf. schoolMIPS по сути самый простой процессор, который можно придумать. Он однотактный и выполняет дюжину команд — достаточно, чтобы выполнять программы типа вычисления чисел Фибоначчи. Вот его общая схема:



Станислав Жельнио начал писать процессор schoolMIPS на основе примера их Харрис & Харрис, потом ему начал помогать преподаватель МИЭМ ВШЭ Александр Романов, который хочет использовать этот процессор в своем курсе. Кроме этого, Станислав сделал несколько существенных улучшений и для образовательного проекта MIPSfpga, который основан на промышленном процессорном ядре MIPS microAptiv UP.

И schoolMIPS, и MIPSfpga можно использовать как следущие шаги после изучения Харрис & Харрис. Они могут стать основой для цепочки стуженческих проектов.

schoolMIPS можно шаг за шагом нарастить и добавить к нему конвейерность, работу с памятью, кэши, более длинный конвейер, суперскалярность и даже scoreboard в стиле CDC 6600 и алгоритм Томасуло.

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

Можно просто использовать MIPSfpga для построения прототипа системы на кристалле и интеграции с ним датчиков, как это сделал киевский студент Олег Плотников под руководством Евгения короткого из лаборатории Лампа КПИ:



Для таких народных проектов есть три коллекции плат — в Киеве (Киево-Могилянская Академия, Москве (ВШЭ-МИЭМ) и Новосибирске (НГТУ). Если вы хотите сделать скажем пример «CDC 6600 на верилоге» и обязуетесь написать про это пост на Хабре, но у вас нет платы, вы можете одолжить ее в одном из этих мест.

Вот фотография с хакатона в Киево-Могилянской Академии, где школьники использовали FPGA плату, показанную на видео и где собираются внедрить Харрис & Харрис в обучение:



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

Комментарии (65)


  1. valeriyk
    22.08.2017 11:57
    +6

    Граждане, когда будете пилить свой процессор, не забудьте, что главное в нем — экосистема: компилятор (желательно несколько, но хотя бы gcc), отладчик, портированные RTOS, и т.д. Без всего этого ваш процессор никому не нужен.


    1. Varim
      22.08.2017 12:01
      +6

      Еще не забудьте что со временем можете пожалеть если выберете не денежную работу. Интересно, где больше платят, в разработке ПО или в разработке процессоров?
      У меня предвзятое отношение к размеру ЗП в отечественных хардварных компаниях.


      1. Fox56
        22.08.2017 17:44

        но процессоры ведь тоже кто-то должен делать!)


        1. Varim
          22.08.2017 18:31

          У кого и что они взяли в долг, под какой процент?


        1. nerudo
          22.08.2017 23:27
          +1

          И мусор мести!


      1. ukt
        22.08.2017 17:45
        +3

        Если учесть, что упомянули менее 10 контор, то «вывод как бы очевиден».

        Интересно, где больше платят, в разработке ПО

        Есть некоторая контора, которая разрабатывает параллельную архитектуру процессора. Год-два назад искали от 45 т.р. программиста на компилятор, фпга-шника в такую же стоимость озвучивали.
        Сфера деятельности узкая, потому рабочих мест не много, работодатели сильно манипулируют этим.


        1. Varim
          22.08.2017 18:26

          45 т.р. это как то как раз что бы владелец фирмы работал в одиночку.

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


          1. ukt
            22.08.2017 21:24
            +2

            Казалось бы что это значит наоборот, кандидаты должны ломить ЗП
            Оно так не работает, оно работает примерно так:
            Приходишь к работодателю и изрекаешь:
            — повысьте ЗП
            — а то что?
            — уйду
            — к кому
            — к ххх
            — ну хорошо, иди.

            Причем это работает во всех узких специализациях (в РФ).
            джависты

            Ну какая Джава, например, бородатому дядьке под 45 лет, с двумя детьми?
            Причем это не сферический конь, а вполне живой бывший коллега.

            Насмотрятся таких, вот, Постов и идут в узкую специализацию. Хотя таких специалистов нужно с десяток тысяч на _всю_ планету.


            1. yarric
              22.08.2017 21:33
              +1

              Правда в Европе и США узкая специализация действительно означает высокую зарплату.


      1. AxisPod
        22.08.2017 19:17

        Общался с хардварщиками, да, з/п низкая у тех, кто на базе ардуинок и готовых схем делает бегущий строки. Те кто занимается разработкой вроде как з/п на уровне.


        1. Mirn
          22.08.2017 21:04
          +2

          Те кто занимается разработкой вроде как з/п на уровне.

          "з/п на уровне" это сколько?
          и просьба назвать хотя-бы несколько примеров компаний с такой з/п


          1. ukt
            22.08.2017 21:29

            Екб: 45-80
            Питер: от 60-80
            Мск: 60-110

            Сложность: 4-6 слоев, DDR(2/3)/ARM7-11, фильтры, linux, драйвера под них и т.п.


            1. Varim
              22.08.2017 21:43
              +7

              Питер: от 60-80
              Мск: 60-110
              Но это же ЗП меньше чем у среднего джависта!?


            1. Mirn
              22.08.2017 22:00

              Ничего удивительного, такие человеко-орекстры мало продуктивны: Тут уже как минимум схемотехник-технолог и программист.
              Часто сюда приплетают и разработку корпуса и работа с производством и подбор компонентов и много ещё чего. Нередко такие компании ещё и в убыток работают и компы не новые. А некоторые за 60тр заставляют ещё и участвовать в маркетинге своих поделий или искать клиентов.


              1. UA3MQJ
                23.08.2017 11:53

                Работник виноват, что компании работают в убыток?


  1. denis_obrezkov
    22.08.2017 12:04

    Скажите, а Вы не думали сделать серию курсов/курс на openedu?


    1. YuriPanchul Автор
      22.08.2017 19:54

      Идея создать серию таких удаленных курсов есть, над ней возможно смогут работать кто-нибудь из преподавателей вузов, которые участвуют в конференции в Томске 18-22 сентября — https://nanoandgiga.com/ngc2017/digital-design

      На мероприятии будет два отделения:

      1. Семинар по обмену опытом преподавания электроники в университетах — программа здесь — https://nanoandgiga.com/ngc2017/documents/digital-design-seminar.pdf

      2. Школа для студентов и аспирантов — программа здесь —
      https://nanoandgiga.com/ngc2017/documents/digital-design-school.pdf — вместе с практическими упражнениями на FPGA платах

      И на одном, и на другом мероприятии будет обсуждатся тематика языков описания аппаратуры, IP-блоки, архитектура и микроархитектура, синтез и верификация, FPGA и ASIC и производство.


  1. Disasm
    22.08.2017 12:16

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


  1. denis_obrezkov
    22.08.2017 13:44

    Из современных компаний можно упомянуть Синтакор: ссылка на новость, ссылка с заданиями для кандидатов.


    Интересно еще и то, что они занимаются разработкой ядер и продажей лицензий на них.


  1. KonstantinSpb
    22.08.2017 14:09
    +1

    Еще можете добавить книжку, вышла в этом году
    FPGAs Fundamentals, Advanced Features, and Applications in Industrial Electronics


  1. lockywolf
    22.08.2017 14:18

    Девушка красивая. Она замужем?

    Кстати, правильно ли я понимаю, что интерпретатор для Верилога — это литографический Степпер? Или я какой-то промежуточный шаг забываю?


    1. robofreak
      22.08.2017 14:55
      +4

      Спасибо за комплимент. Нет, я не замужем :)


    1. YuriPanchul Автор
      22.08.2017 21:11

      *** интерпретатор для Верилога — это литографический Степпер ***

      Помимо цепочки преобоазований, которая ведет от верилога к литографическому степперу, есть также несколько программных симуляторов Верилога, в том числе бесплатные — Icarus Verilog, Mentor ModelSim, симулятор в Xilinx Vivado и платные — Synopsys VCS, Cadence IUS итд.


      1. lockywolf
        22.08.2017 21:43

        Не-не, меня интересует как раз обратная сторона вопроса. Я скоро устраиваюсь на работу разработчиком степпера (но точное место моего применения я пока не знаю) и пока только начал вникать в тему. Меня интересует, не нужно ли мне будет в какой-нибудь момент писать интерпретатор Верилога. Не принесут ли мне что-нибудь, написанное на верилоге, что нужно будет прожечь и сравнить качество прожигания с эталоном.

        Извиняюсь, если сказал какую-нибудь глупость, повторюсь, что только начал вникать в тему, и пока больше теорфизическую оптику вкуриваю.


        1. YuriPanchul Автор
          22.08.2017 21:55

          Это интересный вопрос. С одной стороны ко времени степпера верилог какбы пропадает и остается только геометрический файл GDSII, но с другой стороны он потом снова может вылезти при тестировании произведенных чипов тестировочными устройствами (какие-нибудь ссылки на исходники, back-annotation). Может valeriyk знает.


        1. valeriyk
          23.08.2017 01:05

          Интерпретатор Верилога писать не нужно. Верилог преобразуется в нетлист, их соответствие проверяется при помощи формальной верификации (используя Formality или LEC — они берут Верилог и нетлист и говорят, совпадает ли их функциональность или нет. Это нужно, потому что в синтезаторе могут быть баги и он может сделать неправильный нетлист из правильного Верилога). Потом нетлист преобразуется в геометрию, и их эквивалентность, в свою очередь, проверяется при помощи LVS (layout versus schematics). После этого геометрия едет в степпер, грубо говоря. Для тестирования микросхемы используются эмпирические методы, основанные на «купил-включил-не работает»: внешний тестер, тестовые последовательности для которого готовит ATPG (automatic test pattern generator), и BIST (built-in self-test, он обычно бывает отдельно на память и отдельно на логику). Оба способа как раз и проверяют отсутсвие дефектов производства, например, обрывов дорожек или коротких замыканий. Ибо засунуть микросхему под микроскоп довольно накладно, особенно если в ней сто миллиардов транзисторов. Есть еще всякие извращения, например самопочиняющаяся память (memory with self-repair), но это я уже отклонился от темы.


      1. old_bear
        23.08.2017 11:01

        Mentor ModelSim

        Я что-то пропустил и Моделсим стал бесплатным?


        1. YuriPanchul Автор
          23.08.2017 16:46

          У него есть бесплатная версия с размером дизайнов до 10000 statetement-ов, по достижению предела симулятор типа становится радикально медленнее чтобы народ купил платную версию


  1. yarric
    22.08.2017 17:06

    Статья как-бы подразумевает, что в нормальные компании вроде Intel или Samsung всё равно с такими знаниями лучше не соваться?


    Итого сфера на порядок более сложная и ответственная, чем какое-нибудь веб-программирование, работать придётся на уровне абстракций из 70-х в программах из 90-х, а список реальных работодателей весьма ограничен, при этом никаких тебе bleeding edge проектов как в Intel: будешь пилить то, что уже и так выпускается десятком fabless и не fabless фирм, скорее всего — для какой-нибудь полувоенной "отечественной" конторы со всеми вытекающими…


    Ну такое.


    1. YuriPanchul Автор
      22.08.2017 17:52

      Ничего подобного. Все эти знания применимы и для работы в Интеле и Самсунге, которые использует те же средства проектирования, что и Байкал (напр. Synopsys Design Compiler) и ЭЛВИС-НеоТек (отделение Интела Mobileye лицензирует ядро MIPS I6500 от Imagination Technologies; это же ядро также лицензирует ЭЛВИС-НеоТек).

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

      Девочка Даша упомянутая в тексте реализовала свой процессор на плате с Altera FPGAa, которая сейчас является частью Интела и вообще переназвана Intel FPGA.


      1. yarric
        22.08.2017 19:57
        +1

        российские компании стали использовать те же тулы, что и компании в Silicon Valley

        Я тоже могу себе поставить какой-нибудь Cadence IC, это не сделает меня равным инженерам
        Intel :) Тут же нужно образование, и опыт, и культура — вот это всё...


        Впрочем сам этот Cadence IC и ему подобные выглядят как артефакты из 90-х, значительно отставая от более современных и удобных средств мейнстримовой разработки. А отсюда и вопрос — стоит ли с этим вообще заморачиваться, за более низкую по сравнению с теми же веб-программистами зарплату и возможность реального трудоустройства в полторы конторы...


        1. YuriPanchul Автор
          22.08.2017 20:09
          +1

          Тут какое-то недоразумение. Что вы имеете в виду под «более современными и удобными средствами мейнстримовой разработки»? Интел, Самсунг и Байкал используют те же самые тулы. Я делал три проекта для Интела, я был в интеловском офисе в Санта-Кларе и в Фолсоме. Я не думаю, я знаю, что они используют.

          Вот погуглите Synopsys Baikal, а потом Synopsys Intel.

          В двух метрах от меня на работе сидит бывший инженер Интела. В Интеле есть и русские инженеры, например Амир Аупов www.facebook.com/profile.php?id=100001401986745 или например был Денис Хартиков (он сейчас в NVidia)

          Он был в числе людей, которые участвовали в переводе Харрис & Харрис


          Поговорите с ним, насколько все это применимо к интелу — https://www.facebook.com/denis.khartikov


          1. yarric
            22.08.2017 20:21
            -1

            Что вы имеете в виду под «более современными и удобными средствами мейнстримовой разработки»

            Давайте я вам видео про Xcode, а вы мне видео про Synopsys что-у-них-там.


            В Интеле есть и русские инженеры

            Наверное и молдовские есть, и африканские, но каково их процентное соотношение и насколько реалистично устроится в Интел, следуя советам из статьи?


            1. valeriyk
              22.08.2017 20:44
              -1

              IC Compiler II вполне симпатичный. К тому же, он еще и работу делать умеет, для которой народ по 250 гигабайт оперативки ставит, а не только рюшечки рисует, как Xcode.


            1. YuriPanchul Автор
              22.08.2017 20:48
              -1

              При чем тут Xcode? Это текстовый редактор. О чем вы?

              Меня приглашали работать в Интеле, я могу сказать абсолютно точно, что все интеловские инженеры, которые пишут RTL Verilog для реализации микроархитектуры или unit-level тестбенчи, в некоторый момент своего обучения прошли именно то, о чем я пишу в посте — Verilog, синтез, верификация, SystemVerilog, микроархитектура по Хеннесси-Паттерсону итд. А что еще? Это основа их методологии.

              Вот первое нагугленое:

              Intel Selects Synopsys As Its Primary EDA Supplier
              Semiconductor and EDA Leaders Sign Multi-Year Commercial, Collaboration Agreement
              news.synopsys.com/index.php?s=20295&item=122371

              Вам перевести? Какое слово тут неоднозначно?

              И вот про Байкал:

              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/


            1. YuriPanchul Автор
              22.08.2017 21:02

              Подождите-ка, я понял. Когда вы спрашиваете про Xcode, вы хотите спросить «какие есть мейнстримные интегрированные среды для проектирования на Verilog»? Разумеется — Synopsys DVE / VCS для моделирования, Synopsys Design Vision для синтеза, Synopsys IC Compiler для physical design и эквивалентные среды для Cadence, а также toolchains для FPGA: Altera / Intel FPGA Quartus II, Xilinx Vivado. Это то, что вы спрашивали? Все их можно использовать с информацией в моем посте.


              1. yarric
                22.08.2017 21:18
                +1

                Я говорю о том, что среды для разработки на Verilog и ему подобном по удобству для программиста отстают от более удобных и активно разрабатываемых мейнстримовых IDE типа Xcode. Также нет их версий под мак и т. п. Всё выглядит сурово и по хардкору, как в 90-х.


                1. YuriPanchul Автор
                  22.08.2017 21:32
                  +1

                  А, вы об этом. Ну да, это факт. Просто лучшие GUI программисты идут работать в Apple и Google, а в Synopsys и Cadence идут на GUI те, кто остается. Но зато на алгоритмы EDA лучшие идут в Synopsys и Cadence.

                  Это одно из неудобств жизни, но это не фатально.


                  1. yarric
                    22.08.2017 21:36

                    Идут программисты туда, где хорошо платят :) Просто похоже в сфере узкоспециализированного ПО сложилась ситуация "жрите, что дают", потому как всё равно полтора конкурента, и у них тот же подход.


                    1. YuriPanchul Автор
                      22.08.2017 21:39
                      +1

                      В Synopsys на алгоритмическое программирование хорошо платят, на GUI не очень — они на этом экономят


                1. SparF
                  22.08.2017 23:49

                  В том же Quartus или ModelSim встроенные редакторы действительно ужасны чуть меньше чем полностью. Данный факт коробит ровно до осознания того, что это очень ускоспециализированный софт. Как итог: Verilog разработка у меня живет в любимом VSCode, ModelSim c нужными параметрами запускается из скрипта (a-la makefile), Quartus — только для синтеза.
                  В качестве аналогии: у gcc вообще нет графического интерфейса, но как компилятор он свою функцию выполняет.
                  Как-то так.


                1. old_bear
                  23.08.2017 11:20

                  по удобству для программиста

                  Может всё дело в том, что для hdl-разработчика в первую очередь важно не то, что для программиста? А то я со стороны железячника тоже много доброго могу написать про отображение регистров процессора в отладчике xcode…


                  1. yarric
                    23.08.2017 21:26

                    Автодополнение, рефакторинг и сглаженные шрифты точно не важны для разработчика HDL?


                    1. old_bear
                      23.08.2017 21:31

                      Обратите внимание на слова «в первую очередь».
                      И как там по поводу человеческого отображения в Xcode набора регистров процессора при отладке приложения на подключенном устройстве? :)


                      1. yarric
                        24.08.2017 19:59

                        Xcode не для копания в регистрах. По вашей аналогии среды разработки на HDL не для редактирования кода?


                        1. old_bear
                          24.08.2017 20:27

                          Т.е. вы считаете, что когда я пишу asm для планшетного arm-а, то я где-то в другом месте должен его отлаживать, не в Xcode? Я бы согласился с вами, если бы Xcode позиционировался как продвинутый текстовый редактор. Но вроде он позиционируется как нечто другое…
                          P.S. Всегда пользуюсь для редактирования кода тем редактором, который нравится мне, а не тем, который нравится авторам среды разработки.


                          1. yarric
                            25.08.2017 09:01

                            когда я пишу asm для планшетного arm-а, то я где-то в другом месте должен его отлаживать

                            Как-то не сталкивался. Зато когда нужно нарисовать GUI и написать что-то на C++ — Xcode в самый раз.


                        1. YuriPanchul Автор
                          24.08.2017 20:39

                          Подавляющее большинство разработчиков на HDL с которыми я работаю и когда-либо работал, используют другие текстовые редакторы (vi, emacs, joe, sublime), а не текстовые редакторы в EDA tools. Главная цель перечисленных GUI — это отладка временных диаграмм и нахождение длинных путей в анализе тайминга. Большинство процессов вообще делается в командной строке, как и генерация report-ов.


    1. ukt
      22.08.2017 17:56

      Но им фпга программисты все равно нужны, вот и пиарят, со всего маху.

      список реальных работодателей весьма ограничен

      Там ещё куча фишек, что не возьмут в конкурирующую компанию, в случае ухода из одной.
      Так что список можно делить смело на три.
      Ну такое.

      В РФ точно не стоит за такое браться, выгоднее хотя бы ПЫХ программистом, за большие деньги и меньшие проблемы с трудоустройством.


      1. robofreak
        22.08.2017 18:14

        ИМХО даже если что-то не сложится в Intel или Samsung — это всё равно будет солидная строчка в резюме и полезный опыт работы. Лично я после работы в государственном вузе и после этого в двух стартапах, решила попробовать себя в Samsung, и в общем, очень довольна :)


        1. yarric
          22.08.2017 20:03

          Есть сомнения, что солидная строчка сильно поможет в трудоустройстве вне этой узкой специализации, если вдруг что.


  1. antonsosnitzkij
    22.08.2017 17:52
    +1

    Хорошие книги для работы с FPGA производителей Xilinx и Altera так же есть под авторством профессора Понг Чу (Pong Chu), содержащие очень подробные описания и хорошие примеры кода, которые можно скачать у него на сайте.
    academic.csuohio.edu/chu_p/rtl/index.html


  1. FForth
    22.08.2017 18:52
    +1

    Навеяло темой статьи.
    Проза в память о разработчике компьютера Sprinter-2000 с некоторыми техническими деталями при использовании Altera FPGA (некоторое популярное изложение возможностей софт процессоров)
    Мак Иван http://litresp.ru/chitat/ru/%D0%9C/mak-ivan/putj-domoj Путь домой


  1. firegurafiku
    22.08.2017 19:11

    Следущие шаги в черной магии процессоростроения после того, как вы освоили Харрис & Харрис

    ЕМНИП, в русском языке есть интересный момент касательно склонения мужских и женских имён собственных с нулевым окончанием. Думаю, правильнее было бы написать «Харриса & Харрис».


  1. WRP
    22.08.2017 19:36

    Э-эх. Сейчас уже, наверное, поздно заниматься этим. В своё время покупал на Невском книжки по языку С у спекулянтов. Сейчас всё доступно кроме времени и возраст уже не тот.


    1. Varim
      22.08.2017 19:43

      90 лет не срок


  1. dunaich75
    22.08.2017 23:22

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


    1. YuriPanchul Автор
      22.08.2017 23:25

      Пиарщик Байкала на фотке ровно один — справа. Я лично не пиарщик Байкала (я на одной из фоток слева). Я разрабатывал для этого проекта BFM (Bus Functional Models) ядра MIPS P5600. Товарищ в пурпурной рубашке — менеджер по верификации SoC. У меня еще есть фотка девочки, которая разрабатывала часть LSU (load-store unit). Если у вас есть еще фотки разработчиков, выкладывайте их сюда в комментарии.


  1. dunaich75
    23.08.2017 00:00

    Я прекрасно знаю, кто на фото. :) Потому и просил фото разработчиков. Ну, впрочем, оставим это дело на откуп нынешнего Байкала.


    1. YuriPanchul Автор
      23.08.2017 00:10

      Я двумя руками за. Если байкаловский менеджмент пришлет мне групповую фотку разработчиков и если разработчики будут не против сами, я это поставлю.

      Пока держите вчерашнюю фотку, на которое есть в том числе и несколько разработчиков ядра P5600 внутри Байкала:



      1. dunaich75
        23.08.2017 14:56

        Вряд ли Байкал пришлет такое фото. А если и пришлет, то фото с «несколькими разработчиками».


  1. SadAngel
    23.08.2017 00:12

    Планируете ли Вы размещать курс на платформах edX или Coursera?

    на 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

    по микроконтроллерах курсов не много, но они есть. К сожалению по FPGA их нет…


    1. YuriPanchul Автор
      23.08.2017 00:14

      Я написал выше, скопирую:

      Идея создать серию таких удаленных курсов есть, над ней возможно смогут работать кто-нибудь из преподавателей вузов, которые участвуют в конференции в Томске 18-22 сентября — https://nanoandgiga.com/ngc2017/digital-design

      На мероприятии будет два отделения:

      1. Семинар по обмену опытом преподавания электроники в университетах — программа здесь — https://nanoandgiga.com/ngc2017/documents/digital-design-seminar.pdf

      2. Школа для студентов и аспирантов — программа здесь —
      https://nanoandgiga.com/ngc2017/documents/digital-design-school.pdf — вместе с практическими упражнениями на FPGA платах

      И на одном, и на другом мероприятии будет обсуждатся тематика языков описания аппаратуры, IP-блоки, архитектура и микроархитектура, синтез и верификация, FPGA и ASIC и производство.


    1. desmond_breezey
      23.08.2017 10:30
      +1

      Питерский Политех (кафедра «Радиотехнические и телекоммуникационные устройства») сделал такой курс:
      openedu.ru/course/spbstu/CUMICR2


      1. SadAngel
        23.08.2017 10:33

        Спасибо за ссылку!