В преддверии 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/