Мексиканские студенты отличаются дисциплиной

Провел семинар по SystemVerilog, Gowin FPGA и Tiny Tapeout в городе Тихуана, Мексика, в университете Universidad autónoma de baja California in Tijuana. Главное впечатление: я в первый раз в жизни вижу студентов, которые приходят в 8 утра, делают упражнения по верилогу до 6 вечера, с перерывом на полуторачасовый обед, и при этом все 20 студентов выполнили все вариации упражнений которые я от них хотел.
Студенты ранее прошли курсы по физике и математике, программированию (C, Java, Python, но не изучали ассемблер), а также цифровой схемотехнике (логические элементы и D-триггеры), но без языков описания аппаратуры.
Поэтому мы начали упражнения на верилоге с кнопочек, лампочек и мультиплексоров, но довольно быстро перешли к рисованию на графическом экране. Так как все что для этого нужно — это брать X и Y у модуля-контроллера LCD, и с помощью цифровой логики определять цвет пикселя на этой координате.
На второй день в университет приехал представитель компании Gowin Semiconductor и представитель их дистрибутора в Сан-Диего, Калифорния, которые также выступили перед студентами.
После этих выступлений я также показал студентам, как сделать простую, но полноценную игру с конечным автоматом и движущимися фигурками на экране — всего в 270 строк верилога, а также продемонстрировал, как воплотить этот дизайн в ASIC используя инфраструктуру Tiny Tapeout / Efabless / SkyWater.
Для упражнений мы использовали упрощенный вариант упражнений на FPGA, которые используются на российской Школе Синтеза Цифровых Схем — basics-graphics-music. Упрощение заключалось в том, что:
Из топового для пользователя модуля была убрана параметризация. Она полезна когда мы работаем с зоопарком плат с разными количеством кнопочек, лампочек и разными типами дисплеев (HDMI, VGA, LCD …). Но в данном случае у нас одна конфигурация (Tang Nano 9K + TM1638 + LCD 480×272) и мы можем просто писать «input [7:0] led», а не «input [w_led — 1:0] led». Последнее может смущать начинающего, который должен освоить новый для него синтаксис за 2 дня.
Мы оставили только простые упражнения на комбинационную и последовательностную логику (логические элементы, сумматоры, мультиплексоры, D-триггеры, счетчики, сдвиговые регистры), с привязкой их к LCD экрану и семисегментному индикатору. Мы не стали идти в микроархитектурные задачки (FIFO, конвейеры) или процессоры (CPU). Эти части подходят для более опытной аудитории или для более длинного курса.
Из относительно сложных остался только упрощенный вариант графической игры, в котором квадратная ракеты сбивает квадратный дрон. В полном варианте объекты нарисованы как спрайты и используется LFSR для генерации псевдослучайных сдвигов координат и цветного шума на экране.
Я хотел сделать упражнения на обработку звука, но на это не было времени, плюс микрофоны и ЦАП для звукового выхода был не во всех комплектах плат. Но вся эта деятельность будет продолжена преподавателем университета в рамках его обычного семестрового курса цифровой схемотехники с использованием верилога и FPGA.
Следущее место проведения подобного Хакатона — Армения. В Армении будет не только хакатон для начинающих 14 марта, но еще и мой доклад (вероятно 13 марта) как улучшить вузовское образование, чтобы студенты лучше проходили интервью в электронные компании.
Фотки и видео из Мексики. Первый слайд:

Студенты за работой:


Список упражнений:

Исторический центр Тихуаны:

Сфотографировался с местными спецназовцами, которые ведут борьбу с наркокартелями:

В историческом центре — собор:

Музыка и веселье:
https://youtube.com/shorts/Ar4BjnRbyPg? si=AgdBIREyVPN_FpzJ
https://rutube.ru/shorts/4aedbfa3aead1c1cec190f47fa4a869e/
До встречи в Армении. Зарегистрироваться на Армению можно здесь.