?

Log in

No account? Create an account
Вопрос от одного из участников хакатона в Киеве - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Вопрос от одного из участников хакатона в Киеве [May. 3rd, 2017|11:07 pm]
Yuri Panchul
Один из участников семинаров и хакатона в Киеве задал мне такой вопрос: "Мне нравится подключать различные платы, датчики и т.д. Поэтому я хочу у вас спросить, какая профессия соответствует тому, перспективно ли это и немного хочу узнать как вы начинали свой путь в этой сфере?"

Написал ответ:

Если вам это нравится, вы можете рассмотреть различные работы в области Electrical Engineering и Embedded System Design, в том числе:

1. Разработка микросхем и печатных плат, в том числе хардверных интерфейсов для интеграции процессора в системе на кристалле с контроллерами периферийных устройств, в том числе сенсоров

2. Написание программного обеспечения для встроенных систем, в том числе драйверов для интеграции с сенсорами

3. Создание программных средств автоматизации проектирования микросхем, печатных плат и систем (hardware / software codesign)

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

5. Специалист по технологиями производства

Примеры работ в области разработки микросхем и печатных плат:

1.1 Разработчик цифровой логики блоков внутри микросхемы - RTL Design Engineer, пишет код на языке описания аппаратуры (Verilog и/или VHDL) на уровне регистровых передач (Register Transfer Level - RTL. Этот код после логического синтеза, размещения и трассировки превращается в часть микросхемы ASIC (Application Specific Integrated Circuit) - или в конфигурацию FPGA / ПЛИС.

1.2 Специалист по физическим аспектам микросхемы - ASIC Physical Design Engineer - использует средства проектирования типа Synopsys IC Compiler для floorplanning (планирования геометрического расположения блоков системы на кристалле, решения физических проблем питания, помех итд). См. слайды про implementation в http://www.silicon-ukraine.com/public_materials/2016_11_04_one_day_mipsfpga_connected_mcu_materials_public_for_the_website/04_present_nanometer_asic_seminar/dna.rus.2016.MIPS.pdf

1.3 Разработчик аналоговых блоков, например преобразователь сигнала от антенны - Analog / Mixed Signal Hardware Design Engineer.

1.4 Специалисты по моделированию и верификации - Hardware Simulation Engineer, Hardware Verification Engineer, Performance Modeling Engineer. Одна из технологий верификации - написание на языке SystemVerilog специфической программы (среды тестирования), которая бомбардирует блок логики псевдослучайными транзакциями, ограниченными определенными правилами, и ведет учет покрытия интересных сценариев, и сравнения поведения этого блока логики с его высокоуровневой моделью (coverage-driven constrained-random verification methodology).

1.5 Разработчик системы на кристалле - SoC Design Engineer - комбинирует блоки спроектированные разными производителями (процессоры, графические процессоры, DSP процессоры, память и т.д.), рассматривает взаимодействие софтвера и хардвера.

1.6 Разработчик архитектуры (как процессор выглядит для программиста) и микроархитектуры (блочная организация, стадии конвейера) - CPU Architect, CPU Microarchitect.

1.7 Другие профессии, например Solutions Architect - человек, который ездит по клиентам (электронным компаниям разного размера) и консультирует их, как использовать те или иные IP блоки (процессоры, DSP итд) для разработки системы на кристалле.

Подобный список можно написать и для других областей (embedded system design, silicon manufacturing итд).

Куда пойти учиться - поговорите например с Евгением Коротким из КПИ, он ставит там обучение таким профессиям - https://www.facebook.com/korotkiy.eugene

Мой путь был довольно непрямой: программирование компиляторов - программирование средств проектирования встроенных систем - программирование средств проектирования микросхем (Electronic Design Automation - EDA) - моделирование хардвера - верификация на уровне ядра - верификация на уровне блоков - написание RTL для FPGA и (в последнее время) ASIC.
LinkReply

Comments:
(Deleted comment)
[User Picture]From: panchul
2017-05-04 06:42 am (UTC)
Formal verification и automated theorem proving используется в разработке железа гораздо ширн, чем в разработке встроенного софтвера например.

Погуглите SystemVerilog formal verification или SystemVerilog model checking.
См. напр. https://www.research.ibm.com/haifa/conferences/hvc2013/present/SvaFvTutorialHVC2013.pdf

Далее, coverage-driven constrained random verification - это отнюдь не fuzz testing. Я просто не могу описать это в двух словах. В SystemVerilog есть три подъязыка - подъязык transaction constraints, подъязык coverage bins и подъязык properties (шаблонов поведения во времени). Они позволяют генерировать осмысленные сценарии с вариациями (отнюдь не fuzz) и способ учета, были ли пройдены интересные сценарии.


Edited at 2017-05-04 06:49 am (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: nikolka22
2017-05-04 06:57 am (UTC)
пусть идет электриком охранные системы монтировать) там сплошные датчики.
(Reply) (Thread)
[User Picture]From: sash_kan
2017-05-04 10:13 am (UTC)
> Мне нравится подключать различные платы, датчики и т.д. Поэтому я хочу у вас спросить, какая профессия соответствует тому, перспективно ли это

1. профессия: слесарь кипиа (контрольно-измерительные приборы и аппаратура)
2. конечно, перспективно: «различные платы и датчики» испоьзуются повсеместно, и их, естественно, надо подключать
(Reply) (Thread)
[User Picture]From: pappadeux
2017-05-12 04:20 pm (UTC)
1. бомбист
(Reply) (Parent) (Thread)
[User Picture]From: dom3d
2017-05-04 11:28 am (UTC)
Что такое верификация на уровне ядра?
спасибо.
(Reply) (Thread)
[User Picture]From: panchul
2017-05-04 02:30 pm (UTC)
Имеем два описания ппоцессорного ядра - 1) на уровне RTL (синтезируемый Verilog, cycle-accurate, ведет себя при симуляции как реальное железо, с параллельным выполнением рнструкций и точным поведенрем конвейера) и 2) высокоуровневую модель, написанную на Си, которая может вообще не моделировать конвейер, то бишь быть untimed, но при этом должна следовать архитектурной спецификации. И к (1), и у (2) добавляется некая модель памяти, контроллера прерываний и периферийных устройств. Далее и на (1) и на (2) выполняется некие тестовые программы, написанные вручную на ассемблере, или сгенерированные автоматически неким скриптом. Результаты сравниваются в некоторых временных точках (состояние архитектурных регистров итд). Также измеряется покрытие (coverage) заранее описанных интересных сценариев. Таким образом находятся баги в RTL (а также в untimed модели)
(Reply) (Parent) (Thread)
[User Picture]From: dom3d
2017-05-04 03:16 pm (UTC)
Если я понял хотя бы 30%, то программно моделируется поведение процессора.

Не до конца понимаю, что там можно сравнивать в регистрах.
Ну да ладно.
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2017-05-04 05:02 pm (UTC)
Имеем два описания ппоцессорного ядра - 1) на уровне RTL (синтезируемый Verilog, cycle-accurate, ведет себя при симуляции как реальное железо, с параллельным выполнением рнструкций и точным поведенрем конвейера) и 2) высокоуровневую модель, написанную на Си, которая может вообще не моделировать конвейер, то бишь быть untimed, но при этом должна следовать архитектурной спецификации. И к (1), и у (2) добавляется некая модель памяти, контроллера прерываний и периферийных устройств. Далее и на (1) и на (2) выполняется некие тестовые программы, написанные вручную на ассемблере, или сгенерированные автоматически неким скриптом. Результаты сравниваются в некоторых временных точках (состояние архитектурных регистров итд). Также измеряется покрытие (coverage) заранее описанных интересных сценариев. Таким образом находятся баги в RTL (а также в untimed модели)
(Reply) (Parent) (Thread)
[User Picture]From: livejournal
2017-05-04 10:51 pm (UTC)

Цифровая схемотехника и архитектура компьютера на бум

User 1i7 referenced to your post from Цифровая схемотехника и архитектура компьютера на бумаге saying: [...] - Вопрос от одного из участников хакатона в Киеве [...]
(Reply) (Thread)