Юрий Панчул


Гео и язык канала: Россия, Русский
Категория: Блоги


uArch от сохи и жизнь русского украинца в Калифорнии

Связанные каналы  |  Похожие каналы

Гео и язык канала
Россия, Русский
Категория
Блоги
Статистика
Фильтр публикаций


В преддверии 1 сентября я по запросу некоторых преподавателей написал программу годового курса для школьников физматшкол: От Цифровой Логики к Процессору через ПЛИС. Это моя версия Элитарного Образования Без Замка.

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

Секции программы:

1. Цифровая логика на микросхемах малой степени интеграции.
2. Язык описания аппаратуры SystemVerilog и реализация схем на ПЛИС/FPGA.
3. Архитектура процессора и язык ассемблера RISC-V на симуляторе системы команд.
4. Микроархитектура процессорных ядер и реализация процессора на ПЛИС/FPGA.
5. Интеграция процессора в систему: ввод-вывод от сенсоров и параллелизм через прерывания.
6. Изготавливаем микросхему ASIC на фабрике через сервис TinyTapeout.
7. [Возможный исследовательский проект: создание библиотеки для открытого средства проектирования Yosys для синтеза схем малой степени интеграции из кода на верилоге.]

Предисловие:

В картине мира, представляемой школьным образованием, существует “слепое пятно” в области принципов проектирования цифровой электроники, между физикой и программированием. Курсы роботики и ардуино это слепое пятно не закрывают, так как сводятся к программированию готовых чипов и их интеграции с сенсорами и актуаторами, то бишь проектированию систем.

Существующие упражнения с дискретными элементами и микросхемами малой степени интеграции (7400 и CMOS 4000) представляют собой косметическую переработку курсов 1970-х годов и оторваны от реальной работы проектировщика микросхем в современной электронной компании. Удалить эти упражнения нельзя, посколько никто с 1968 года не придумал лучшего способа демонстрации работы D-триггера, чем макетная плата с микросхемой CMOS 4013. А с D-триггерами даже современный разработчик имеет дело каждый день, перескочить через это знание нельзя, и в упражнениях на программирование Ардуино/Распберри Пай D-триггеры не возникают.

При этом простая переработка упражнений с микросхемами малой степени интеграции слепое пятно не закрывает, так как сложность схем, которые на них можно спроектировать - ограничена. Например, на таких микросхемах непрактично проектировать даже простой процессор, хотя некоторые школьники это сделали - см. напр. заметку Small-Scale Integration Stepping Stones.

Слепое пятно можно закрыть с помощью введения элементов языков описания аппаратуры (ЯОА) SystemVerilog и доступные для школьного экспериментирования микросхемы ПЛИС/FPGA (Программируемые Логические Интегральные Схемы - Field Programmable Gate Arrays) - матрицы реконфигурируемых логических элементов. В них можно строить работающие цифровые схемы просто меняя содержимое памяти конфигурации. В базовом ПЛИС нет своего процессорного ядра, в отличии от микроконтроллера AVR на плате Ардуино, в котором есть ядро, фиксированное на фабрике. Но из ячеек внутри ПЛИС можно построить собственный процессор, в том числе и вариацию вышеупомянутого AVR в Ардуино.

Более того, сейчас стали доступны сервисы типа TinyTapeout, которые позволяют даже школьникам и студентам за доступную сумму (от $50 на схему + $300 плата) производить собственные чипы ASIC (Application Specific Integrated Circuit) на фабрике; мы делаем это в рамках предложенного курса.
После выполнения упражнений курса, картина мира у школьников становится цельной, без разрыва между физикой и программированием. Это способствует созданию среды для появления большого количества молодых инженеров, которые понимают и программную, и цифровую аппаратную стороны современных микросхем для широкого спектра приложений: смартфонов, интернета вещей, аппаратных ускорителей ML, самоуправляемых автомобилей итд.
Введение ЯОА и ПЛИС в школьную программу также хорошо привязывается к курсу математики и физики физматшкол - булевская алгебра, арифметические схемы, конечные автоматы.

Дальше -
https://habr.com/en/articles/1071736/


По возвращению из Батуми в Тбилиси я провел еще один митап, в https://sandb0x.space/ . Были в основном релоканты, некоторые из их работают удаленно на российские компании. Например один джентельмен делает медицинский прибор для навороченного варианта Delayed Auditory Feedback (DAF). DAF даже не в навороченном варианте - это единственная известная мне технология для эффективного снижения заикания (так как я сам заика с 9 лет, я в этом разбираюсь).
Человека три или четыре были хорошо в теме верилога и были например знакомы с группой Дроздова в МФТИ и работавшей с нею компанией Soft Machines которую купил Intel за $300M (в основном за сделанный в России компилятор).

Одна девушка была знакома с работой GPU, еще две другие спрашивали совет, что делать, если они не успели закончить в России вузы, а надо устраиваться на работы. Я дал совет взять курсы (онлайн и оффлайн) из мест типа University of California Santa Cruz Silicon Valley extension (это вечерние курсы повышения квалификации, в том числе с программой VLSI), потом все это скобинировать и объявить в резюме что у них эквивалент степени бакалавра (bachelor degree equivalent), добавить опыта участия в открытых проектах и продавать себя работодателям в таком качестве. По большому счету если они пройдут через фильтр HR и интервью, то работодателям будет наплевать сколько там семестров чего они прошли. Но важный момент: нельзя преувеличивать курсы, дипломы итд, посколько все нестыковки раскопает background check. Даже в условиях санкций западная компания может сконтактировать background check компанию, у которой контракт с другой background check компании в России, а та компания может сконтактировать и ваш бывший деканат и даже архив, много-много лет спустя. То есть если вы напишете "училась четыре года", а училась три, то найдут и отменят оффер, а вот если напишете "училась три года" как есть, то это ОК: к этому моменту компании наплевать, посколько они вас уже проверили на интервью, да и российские вузы для них не архиважны. Но вот галочка от background check на правдивость нужна.

После митапа в SandBox меня повели еще и в другой hacker space в Тбилиси - f0rthsp4ce https://f0rth.space/ , про который у меня будет отдельный пост.





749 0 3 18 15

После пятничной тусовки айтишников Батуми в клубе Friends Club (где организаторы были из компании EPAM) меня пригласили в субботу провести митап по верилогу в Meshtastic Batumi. Тема оказалась популярной - нас даже проспонсировала едой компания Awide Labs (https://awide.io/), производитель железа AI ускорителей из Тель-Авива. Их интересует наем локальных кадров в Батуми.

Митап был довольно плодотворный - два товарища показали свои проекты на FPGA:

1. Вячеслав Славинский воссоздал на плате Tang Nano 9K советский радиолюбительский компьютер Вектор с кр580вм80 (клоном i8080), на котором работала CP/M-подобная система с графическими играми, текстовыми редакторами (оконным и ed), а также отладчиком Sid.

2. Иван Губочкин показал интерфейс FPGA к камере. А также синтезированный на плате Tang Mega 138k RISC-V процессор, выполняющий Linux, правда без atomic инструкций.

Дальше мы вместе с третим товарищем запустили примеры репозитории Basics-Graphics-Music на Arch Linux. Товарищ заинтересовался в рендеринге графики, используя операции с плавающей точкой для поворота графических примитивов.

Я оставил один комплект с Tang Nano 9k, экранчиком и интерфейсным модулем для такой работы в Батуми. Оставил бы и еще (спрашивали, можно ли купить), но тогда мне не хватило бы плат для митапа в Тбилиси, который планируется 12 августа.

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

Объявление для Тбилиси:

https://sandb0x.space/

12.08.2026, Wednesday, 19:00
Merab Aleksidze Street, 1
Donation welcome
Lang: ru/en
Host: Yuri Panchul

For the last 40 years, chip designers have used Verilog hardware description language and logic synthesis technology to create the devices we see everywhere: smartphones, computers, ML hardware accelerators.

While the logic of most mass–produced chips, called ASIC (Application Specific Integrated Circuits), is fixed at the silicon foundry, there is a special kind of chips with changeable logic, called FPGA, or Field Programmable Gate Array. FPGAs are used for prototyping, education and applications like high-frequency trading.

During the workshop, we are going to use Verilog to configure FPGA, starting with simple arithmetic, then doing 2D graphics.

Bring your laptop (Win, Linux, Mac)

https://t.me/sandbox_events/144


Школьники, которых я обучил собирать схемы на макетной плате показали свои проекты Дейлу Догерти, идеологу движения мейкеров, основателю журнала Make Magazine и выставок Maker Faire (на фото). Maker продает наборы как хоббистам, так и школьным учителям.

Я вручил Дейлу мое предложение по обновлению мейкерской деятельности по части микросхем малой степени интеграции: удалить из наборов, книг и туториалов нерелевантные вещи из 1970s, сделать привязку к следущим шагам в виде FPGA и к проектированию ASIC-ов, то есть к тому чем занимаются сейчас в офисе инженеры в Apple, Samsung, NVidia.

Вот предложение - https://verilog-meetup.com/2026/07/31/an-improved-way-of-teaching-school-kids-digital-electronics-using-venerable-small-scale-integration-ics/

Вот список используемых в проектах компонент если вы хотите повторить или улучшить результаты
https://docs.google.com/spreadsheets/d/1ULTF4ocT2YyJowGakEOEVTsIUBTxLMkqXyvZM56vlU8/edit?usp=sharing

Еще на наш стенд на мероприятии Technology Showcase пришел менеджер современного open-source проекта симулятора Verilator, а также пришел инженер, который в 1980-х вместе с Джоном Аустерхаутом создал САПР СБИС Magic. Его привлекло, что на наших маечках был изображен фрагмент GDSII файла. И он спросил не редактором Magic ли он создан. Я ему сказал, что данный конкретный фрагмент пришел из Synopsys IC Compiler, но когда я буду дизайнить маечки в следующий раз, я возьму изображение из Magic, благо Magic у меня на компьютере установлен.

Далее мы выступили на сцене - ссылка на youtube в заметке на Хабре:
https://habr.com/en/articles/1065220/

Еще на мероприятии было местное отделение NASA.

Как я уже сказал, следующие две недели я проведу в отпуске на Кавказе, а потом с 16 августа мы продолжим митапы с 11.00 до 14.00 по адресу Hacker Dojo, 855 Maude Ave, Mountain View, California.


На всяких народных гуляниях типа MakerFaire и OpenSauce меня постоянно спрашивают при виде FPGA "Это Ардуино / Raspberry Pi?" Причем когда я отвечаю "нет", у людей появляется выражение лица будто я им нагрубил. Я раньше не понимал, с чем это связано, но теперь думаю, что цель такого вопроса - просто показать свою эрудицию, а я эту цель обламываю. Кроме этого минимум у одной дамы было такое выражение лица, что она наверное подумала, что я сумасшедший.

Теперь при использований микросхем малой степени интеграции для обучения школьников появляется второй вопрос "разве все эти микросхемы не устарели и не были заменены Ардуино?"

Короче для Technology Showcase в Mountain View в этот четверг я решил сделать вот такую одну страничку и просто молча давать ее людям, которые задают эти два вопроса:

Текст (но прошу посмотреть на имиджи):

During shows like OpenSauce and MakerFaire there are two questions people ask again and again. So I decided to create a one-page leaflet and simply give it to them.
There will be an event in Mountain View this Thursday, called the Technology Showcase.
So:

The plain text (please review the images and give me feedback):

QUESTION: Is this an Arduino? Is this a Raspberry Pi?

ANSWER: No. Arduino is a microcontroller and RPi is an embedded microprocessor.

Here we have an FPGA: Field Programmable Gate Array which does not have a CPU core inside. The structure of Arduino or RPi is fixed at the silicon foundry. FPGA allows to form a digital circuit on the fly. A matrix of cells with changeable function. One cell can become AND, another OR, yet another - one bit of memory. An FPGA does not contain a fixed CPU, but can be configured to work as a CPU.

[A side observation: when I say "No" some people feel uneasy. I guess they just want to show they know what Arduino/Raspberry Pi is. Answering them "No" is perceived as something impolite.]

FPGA applications:

Education: Can be used to train ASIC designers.

Prototyping: Debug functionality of ASIC designs before manufacturing, albeit at lower frequency than the final ASIC.

Video processing: High bandwidth and parallelism compensate for lower clock frequency.

High-frequency trading: FPGA delivers low latency.

Space: A mix of FPGAs and MCUs makes better economic sense than custom ASICs.

QUESTION: Why do you teach kids small-scale integration ICs like CMOS 4000 series? Aren’t they all obsolete and replaced by Arduino?

ANSWER: Programming Arduino does not teach microelectronics.

Breadboarding with an old CMOS 4013 chip from 1968 is still the best way to demo the function of a D-Flip-Flop (DFF).

The function is the same for an old 20 micron chip and a new 2 nanometer smartphone chip.

The knowledge about logic gates and DFFs is a prerequisite for learning Register Transfer Level (RTL) methodology used in Apple, Samsung, NVidia to design modern chips.

Programming Arduino does not expose DFFs.
After small-scale integration the students move to FPGA exercises and ASIC design using Tiny Tapeout.




Оказывается, школьницы стран бывшего СССР умеют ваять цифровые схемы на CMOS 4000 ничуть не хуже школьников, причем не только русскоязычных школьников, но и школьников из Индии и Китая. Под конец нашей месячной "Школы не в Замке, а в Клубе Хакеров по викендам" образовалась такая теплая компашка:

Майя - сделала схему которая сравнивает числа поступающие из двух источников (простого счетчика и счетчика Джонсона) и показывает лампочками "больше/меньше/равно".

Света - сделала вариант ALU, который для вычитания использует тот факт что "- A == ~ A + 1", то бишь чтобы сконструировать отрицательное число в дополнительном коде, нужно инвертировать его биты и прибавить единицу. Это был один из вопросиков на собеседование в процессорную компанию MIPS Technologies в 2009 году.

Тимофей и Нил - сконструировали несколько дизайнов, в том числе вариант конечного автомата светофора из счетчика с декодированным (one-hot) выводом 4017 и комбинационной логики после него.

Матвей - сериализацию/десериализацию с сдвиговыми регистрами, сейчас вставляет в схему побитовый сумматора

Аржун - школьник индийского происхождения, он только что вы пустился и поступил в унверситет Иллинойса. Сконструировал на микросхемах малой степени интеграции полный CPU, потом перенес его в FPGA.

Грант - школьник китайского происхождения, сконструировал демо многофункционального ALU на CMOS 40181 и вариант демо с интеграцией FPGA и датчика радиации.

Для тех, кто говорит "о, сейчас все перешли на Ардиуно и Расберри Пай": Ардуино/Расберри Пай - это вообще не о проектировании электронных схем, а о программировании микроконтроллеров / встроенных процессоров и немного о проектировании систем (комбинировании микроконтроллера с сенсорами и актуаторами). Говорить что школьники якобы изучают электронику при работе с Ардуину - это как говорить что человек может научиться проектировать автомобильный двигатель от уроков вождения авто по улицам.

В четверг школьники будут демонстрировать эти проекты на мероприятии в Маунтин-Вью, прошу распостранить следующую информацию:

Come to the Verilog Meetup booth at the Technology Showcase event hosted by the City of Mountain View and sponsored by Google. School students, starting from 10-year-olds, are going to demonstrate digital designs implemented using small-scale integration circuits: variants of ALUs, comparators, bit-serial arithmetic with parallel-to-serial and serial-to-parallel conversion, simple finite-state machines (FSMs) and other building blocks.

While modern 2nm designs in smartphones and AI accelerators are certainly faster than those 50-year-old 20 micron chips, they still use functionally equivalent sub-blocks constructed using logic synthesis tools and ASIC libraries. So these exercises provide a clear path for a mathematically inclined child toward future research or a profession: they can move from such exercises to SystemVerilog and FPGAs, ASIC shuttle using Tiny Tapeout, exercises in microarchitecture and building RISC-V CPUs.

This is different from exercises with Arduino and Raspberry Pi, which essentially offer microcontroller / embedded programming and some system integration, but not digital design itself. No matter how much a kid programs Arduino he will not be exposed to the work of the CPU core inside the Arduino microcontroller and therefore could not design such a core. Just like a car driver does not learn how to build a car by simply driving it on the streets.

The Technology Showcase:

Thursday, July 30, 2026

Exhibits 11-3 pm
Panel 4-6pm
Center of Performing Arts, 500 Castro St, Mountain View
Free to attend, registration not required⁠



Показано 10 последних публикаций.