Pull to refresh
357
50.3
Юрий Панчул / Yuri Panchul @YuriPanchul

Проектировщик CPU, GPU, сетевых микросхем

Send message

Так у меня цель заинтересовать не всех, а тех, кого это интересует естественно. А остальных максимально быстро отсеять, чтобы они не тратили время на то, с чем у них не сростается.

Но определенные усилия я конечно делаю, чтобы заинтересовать. Например если ввести рано (не на микросхемах малой степени интеграции, но в первый день на платах ПЛИС) упражнения с графикой (для чего не нужно программировать, достаточно сделать логику которая выберает цвет по координате), то это вызывает у школьников интерес. Вот так (это моя приятельница Маша из МИФИ + Applied Materials):

Ну я не претендую на лавры Макаренко и Монтессори, но я автор онлайн-курса микроэлектроники для школьников созданного под эгидой Роснано (часть 1, 2, 3), который был №2 по популярности на их сайте, а также соавтор программы Школы Синтеза Цифровых Схем для студентов, в которой участвует 20 российских и один белорусский университет. И соавтор образовательного пакета MIPSfpga для аспирантов под эгидой британской компании Imagination.

А какое у меня должно быть понимание педагогики?

А какую вы видите картинку? Давайте сравним

Собственно пост родился из того что утром мне пришло сообщение от преподавателя некоего вуза "Юрий, мы тут собрались устроить летнюю школу с микросхемами малой степени интеграции. У вас где-то была книжка таких упражнений".

Ну я ему и написал "вот книжка, но это пробовали еще на школьниках Калифорнии в 1970-е годы, для 21 века из нее стоит убрать все что не ведет к работам в промышленности 21 века (то есть убрать весь жир и ретроностальгию, оставить мускулы) и присоединить ее к упражнениям с FPGA, которые развить в направлении курса 6.111 Массачуссетского Технологического Института (там у них лабы на FPGA и студенческие проекты с графикой и звуками)".

Так я это к чему. Разумеется выдергивать одного ребенка непродуктивно. Их нужно отбирать, собирать в группу в ~15 человек, после чего всю и вести. Вот это и есть формат летней школы. Или вы не согласны?

Ну это я в курсе. У них что-то перещелкивает в мозгу как-раз на границе 7 и 8 класса и они вдруг начинают понимать например концепцию конечного автомата, а до этого понимали только что-то прямолинейное.

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

Получается, что D-триггер ребёнок должен знать, а как правильно светодиод подключить - не обязательно? На мой взгляд, странная логика. 

Я это не утверждаю, я выставляю это как предмет дискуссии.

не кажется, что у автора есть свой конёк, своя любимая область в электронике и он пляшет исключительно вокруг неё, напрочь игнорируя всё остальное.

Это у меня не конек, а следствие основной работы. Я работаю проектировщиком чипа в Самсунге, который стоит в телефонах. При этом я периодически интервьирую студентов, выпускников американских вузов, и моя цель в образовательных программах (которые есть моим хобби):

"как провести молодого человека наиболее эффективным путем к моменту, когда он мог бы пройти интервью в электронную компанию на позицию проектировщика цифрового блока на уровне регистровых передач"

Понятно что с этого угла зрения объяснение сопротивлния для светодиода - необязательно, а вот скажем объяснение конвейерной обработки - обязательно. Потому что первое на интервью не спросят, а второе спросят. При этом одно забирает время и фокус от другого.

То что я привел выше - это обертка над Quartus или Vivado, которая использует и Tcl скрипты, и некоторые IP cores. Это скрипты, которые вызывают Quartus или Vivado, в зависимости от платы, и потом складывают от них текстовые отчеты в директорию run.

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

Вы смотрели в код эмуляторов, например

https://github.com/kyonmiriam/nestang_primer-25K/tree/24b6b135720eeda613c7172eb7bf45dae71149eb/src

?

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

Насчет логики - там учили наверно аристотелеву логику, что к булевой алгебре и хардверу ортогонально

Карты Карно можно пропустить, так как комбинационную логику программа-синтезатор оптимизирует быстрее и лучше. А булеву алгебру и всякие правила де Моргана они выучат за день упражняясь с микросхемами малой степени интеграции и FPGA платами - практически это легче входит чем теоретически.

На уровне register-transfer-level (RTL) ёмкости и индуктивности абстрагируются в ASIC library - набор ячеек с логической функцией (И, ИЛИ, мультплексор, D-триггер итд), известными задержками в пикосекундах при разны условиях, известным энергопотреблением (статическим и динамическим) и площадью.

Тем самым вычислять их не нужно, а можно получать данные от программы статического анализа тайминга (static timing analysis - STA) вписалась или не вписалась ли данная схема в бюджет периода тактового сигнала (может ли работать на запланированной тактовой частоте). То есть емкости и индуктивности можно вынести за скобки и просто развивать интуицию, что если поставить в каскад умножение и сложение, то задержка будет сильно долбше чем от одного сложения.

Так как STA есть не только для микросхем ASIC, но и для ПЛИС / FPGA (утилизация ресурсов), то на них можно обучать будущих проектировщиков, минуя (для первой итерации) ёмкости и индуктивности.

вы сказали про 4-7 класс, у меня из 5 класса 2 примера, но 8 класс довольно близко. Для 4-7 класса придумать непросто, это я согласен

Это да, но про 5 и 8 классников я привел выше 4 примера из Новосибирской Летней Школы Юных Программистов 2017 года

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

Тут было бы интересно сделать чистый эксперимент - по канонам 1970-х и вот с таким упрощением. Я думаю что с упрощением менее нужно, а даже из канонов 1970-х они быстро вырастают к ПЛИС

Зачем IDE, можно использовать VSCode с плагинами, а синтез запускать однокнопочным скриптом. Это собственно делается в наших примерах для школы синтеза.

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

Я это уже обсуждал и такие примеры уже несколько лет обкатали на Школе Синтеза

https://habr.com/en/articles/594345/

https://habr.com/en/articles/453760/

Тем не менее группу особенных детей, которые могут потом стать топовыми микроархитекторами чипов, нужно выявлять рано и давать им возможность развить их способности до свободного оперирования аппаратными структурами (конвейером, контролем потока данных итд). Примерно как это делается для балета,спорта, музыки, матолимпиад. В Китае это делают сейчас с FPGA платами - я только на неделе обсуждал это с президентом китайcкой компании Gowin Semiconducor:

https://verilog-meetup.com/2024/06/26/can-gowin-beat-xilinx-and-altera-in-the-educational-market/

Конкретный проект - это была его собственная инициатива, что меня вообще сильно впечатлило. Он сделал не только проект, но еще и слайды с объяснением что он сделал.

Вообще я таких пятиклассников видел только двух - оба в Летней Школе Юных Программистов в Новосибирске. Если первый был уникумом инициативы по созданию законченного решения из блоков логики (он в основном связал подблоки), то второй был уникумом который понял в пятом классе последовательностную логику (то есть работу элементов состояния). Обычно дети понимают И-ИЛИ-НЕ еще в детском саду, но конструкции на основе D-триггеров для них контринтуитивны миниум до 8 класса. И даже после 8 класса это понимают только специально отобраные дети.

Зачем? Ну это очень просто. Микроархитектор CPU, GPU, ускорителя ИИ итд - это такой же специализированный навык, как игра на скрипке, балет, профессиональная математика. Те, кто начинает это рано, имеет лучшие шансы стать топовым спецалистом в этой области. Потому что научится мыслено оперировать с движением транзакций по конвейерам и очередям на уровне интуиции, а не мучительно гугля даже простые решения.

Information

Rating
104-th
Location
Sunnyvale, California, США
Date of birth
Registered
Activity