С 7 по 9 ноября в Институте космических и информационных технологий Сибирского федерального университета прошла I Зимняя школа «Цифровые встраиваемые системы». Участниками школы были студенты и аспиранты СФУ.
Меня зовут Алина, и я тружусь, занимаясь разработкой встраиваемых систем управления ответственного назначения для космической техники. Ещё я аспирант кафедры «Вычислительная техника» в Сибирском федеральном университете. Я люблю учиться новому, поэтому узнав, что в Новосибирске со 2 по 5 октября пройдет Школа по основам цифровой схемотехники, архитектуры и использования Verilog, я тут же записалась туда. Вместе со мной туда отправились двое коллег — Борис Дудкин и Дмитрий Власов, который даже был ассистентом на школе. Программа была интересная и насыщенная, школа мне понравилась настолько, что по окончанию я задала вопрос нашему преподавателю Станиславу Жельнио (SparF): как провести подобную школу в Красноярске? Станислав не думая ответил, что мы и сами сможем её организовать и провести.
В ходе организации школы мы поняли, что для СФУ и предприятия, где мы трудимся проведение таких совместных мероприятий пусть и новая, но не трудная задача. У школы появилось «красноярское» имя — Первая региональная зимняя школа «Цифровые встраиваемые системы».
День 1
В день открытия возможность вещать представилась мне. Вот о чем я рассказала сначала:
• Язык описания аппаратуры и зачем он нужен
• Что такое ПЛИС
• Основы комбинационной логики
• Базовые логические элементы и их описание на Verilog
• Тестовое окружение (Testbench)
• Проверка работы комбинационной схемы с использованием симулятора ( Modelsim)
• Синтез комбинационной схемы, графический интерфейс Intel Quartus
• Во что синтезируется комбинационная схема при реализации на ПЛИС
• Программирование отладочной платы
• Проверка работы проекта на отладочной плате
• Основы Makefile и работа в non-project mode
• Мультиплексор и способы его описания на Verilog HDL
• Демультиплексор и способы его описания на Verilog HDL
• Практический пример: работа с 7-сегментными индикаторами
• Условная компиляция в Verilog HDL
В работе школы принимали участие совершенно разные студенты, здесь были магистранты, и учащиеся бакалавриата, и аспиранты. Поэтому внимание основам уделялось особенно тщательно. Сначала слушатели комментировали подаваемый материал словами «мы этим занимались 3 семестра», «здесь всё просто», «мы умеем в квартус» и подобными «плавали, знаем», но после получения первого практического задания ребята втянулись и с тех пор начались комментарии и вопросы по делу.
День 2
На второй день рассказчиком был Борис Дудкин- инженер-программист, который пишет реальные проекты для FPGA и ASIC. Вот о чем он рассказывал:
• Комбинационные схемы и время распространения сигнала
• Тактовый сигнал и последовательностные схемы
• Различные типы присваиваний в Verilog HDL
• D-триггер и его реализация на Verilog в различных вариациях: асинхронный и синхронный сбросы, порт разрешения записи
• Во что синтезируется последовательностная схема при реализации на базе ПЛИС
• Регистр и его реализация
• Счетчик и его реализация
• Динамическая и статическая дисциплина
• Метастабильность и синхронизатор
• Нежелательная защелка, последствия и способы избежать
• Конечные автоматы (Мура и Мили)
• Представление автомата в виде диаграммы переходов
• Реализация автомата на Verilog HDL
• Общий подход проектирования сложных автоматов
• Пошаговая реализация интерфейсного модуля УЗ датчика расстояния на Verilog
Так же во 2 день мы выдали задание для самостоятельной работы:
• Реализация интерфейсного модуля клавиатуры 4х4 для ПЛИС
•Реализация калькулятора на ПЛИС
Тут уже было слышно, как скрипят
День 3
В третий день началось все самое интересное, на мой взгляд. В этот день преподавал Дмитрий Власов, инженер, котрый закончил ВУЗ только в 2018 году. Дмитрий участвовал уже в 3 подобной школе. В первый раз (в Томске) он был участником, во второй (в Новосибирске) он ассистировал, а теперь в Красноярске Дмитрий рассказывал о реализации процессора schoolMIPS. В 3 день у нас были:
• Основы конвейеризации
• Архитектура и микроархитектура
• Основы написания программ на MIPS ассемблере
• Работа с симулятором MARS (MIPS)
• Проектирование простейшего однотактного процессора на примере schoolMIPS
• Тракт данных и устройство управления
• Компиляция программы, запуск процессора в симуляторе и на отладочной плате
• Самостоятельная работа. Добавление поддержки новой инструкции в процессор
Материалы
• Все материалы курса (слайды, скрипты, исходники, литература) доступны онлайн (github, дополнительные материалы). Слайды оформлены в сомнительном стиле, когда на них много текста, в надежде, что это упростит ознакомление с материалами offline.
• Практические и самостоятельные задания выполнялись на платах Terasic DE10-Lite c ПЛИС Intel MAX10 на борту.
• Книга «Цифровая схемотехника и архитектура компьютера», которая бесплатно доступна в электронном виде (ссылка), либо может быть приобретена в бумаге (ссылка). Читается легко, увлекает как художественная литература. Имеет низкий порог входа – какие-то особенные знания для того, чтобы начать ее читать, не нужны. Недавно к вышло дополнение по архитектуре ARM (ссылка); К книге доступны примеры кода, а также слайды (английская и русская версии), которые можно использовать для построения собственного курса (ссылка).
Благодарности
• Спасибо Станиславу Жельнио (SparF) и Юрию Панчулу (YuriPanchul), которые поддержали наши потуги, помогли советами, прислали отладочные платы и вообще всячески подбадривали нас в проведении этого мероприятия.
• Отдельно хочу отметить предприятие Информационные спутниковые системы имени академика М.Ф. Решетнёва. Мы с коллегами трудимся там и высшее начальство организации, а так же наше непосредственное руководство поддержало нас в нашем начинании и всячески содействовало.
• Организатор мероприятия от СФУ – Олег Владимирович Непомнящий, который будучи заведующим принимающей нас кафедры, утрясал бюрократические моменты в ВУЗе. Кроме того, занятия проводились на базе лаборатории «РобоЛаб», развернутой в рамках реализации проекта APPLE, в котором Олег Владимирович является координатором. Так же в проведении школы нам очень помогла Сиротинина Наталья Юрьевна, доцент, руководитель НУЛ «Микропроцессорные системы», исполнитель по проекту APPLE. И Хантимиров Антон Геннадьевич, ассистент НУЛ «Микропроцессорные системы», исполнитель по проекту APPLE.
• Большое спасибо моим коллегам Дмитрию Власову и Борису Дудкину, что согласились мне помочь и катались каждый день из Железногорска в Красноярск и обратно!
• Ну и студентам тоже большое спасибо! Вы нам понравились и оказались сообразительными и веселыми. Приходите к нам работать, когда закончите ВУЗ.
Отзывы о Школе
Александр Калашников:
За эти три дня был проведён краткий экскурс в мир FPGA. Сложность росла по нарастающей, но возникал по-настоящему детский восторг, когда всё получалось. Перестраивается картина мира, когда узнаёшь о параллельных процессах, происходящих в ПЛИС. «Потрогав» микроархитектуру, удалось даже добавить свою команду, затем мой первый код на ассемблере… Данная школа была прекрасной возможностью завести новые знакомства, получить опыт общения с поистине интересными людьми, которые смогли зажечь искру. Надеюсь, она не угаснет и перерастёт в огонь. Спасибо!
Светлана Лещенко:
Спасибо большое за такой интересный и огромный опыт. На самом деле интересно было услышать именно замечания и опыт производственников, потому что наши преподаватели в большинстве теоретики. Именно поэтому мы ни разу не использовали, например, Visual Code, что оказалось очень удобно.
В качестве отзыва могу сказать только то, что в этой школе я научилась многому и надеюсь продолжить в дальнейшем изучение. Ваши занятия действительно подарили мне интерес к программированию под ПЛИС.
Антон Хантимиров:
Впечатления от школы положительные, постараюсь перенять как можно больше для своей работы.
Такие погружения — полезны для понимания различных не очевидных аспектов разработки.
Большое спасибо организаторам.
Горева Вероника:
Мне все понравилось, спасибо вашей команде за проделанную работу, круто было бы иметь в нашем институте таких преподавателей)
П.С. APPLE — Applied curricula in space exploration and intelligent robotic systems. Прикладные учебные программы по освоению космоса и интеллектуальным робототехническим системам. Это международный проект в задачи которого входит:
• модернизация существующих учебных планов в целевой области с учетом требований Болонского процесса и на основе передовых практик ведущих европейских университетов;
• интеграция в учебный процесс методических разработок европейских партнеров по консорциуму;
• создание учебной лаборатории интеллектуальных робототехнических систем космического применения RoboLab;
• повышение квалификации преподавателей;
• активное сотрудничество в научной и практической деятельности в целевой прикладной области.
Автор: fillina