Привет, дорогой единомышленник! Меня зовут Чусов Сергей Андреевич, я преподаватель в НИУ МИЭТ, а также инженер по верификации цифровых устройств НИЛ ЭСК в этом же университете. Уже более четырех лет я занимаюсь верификацией цифровых устройств. Имею опыт верификации как отдельных СФ-блоков, так и целых Систем на Кристалле.
В большинстве ВУЗов (в том числе зарубежных) отсутствуют дисциплины по верификации цифровых устройств. Индустрия продолжает испытывать недостаток специалистов в данной области.
Данный факультатив призван положить начало развития цикла дисциплин по верификации цифровых устройств в стенах МИЭТ. Так что мы с вами, уважаемые читатели, стоим у "истоков" и можем смело называть себя первооткрывателями.
- Нужен ли свой ПК? -
Нет
- Какое нужно ПО? -
Ответ
- Какие минимальные требования к знаниям -
Ответ
- Дистанционно можно? -
Нет
- Пропускать занятия можно? -
Да, но зачем?
- Я получу какой-то сертификат? -
Возможно:)
Если отсутствует ПК для прохождения факультатива - это не проблема.
Занятия проводятся в компьютерном классе с использованием оборудования НИУ МИЭТ.
Необходимо:
- VirtualBox с установленной виртуальной машиной для занятий (руководство по настройке).
Опционально:
- подключенная общая директория в VirtualBox (руководство по настройке);
- Visual Studio Code.
- Загрузить архив с виртуальной машиной;
- Распакуйте архив;
- В VirtualBox выберите
Добавить
и укажите файл с расширением.vbox
из распакованного архива; - Запустите ВМ;
- Введите пароль пользователя:
1234
; - Запустите терминал через меню
Applications -> System Tools -> Terminal
и введите командуvsim
; - Если открылось окно QuestaSim и не появилось никаких ошибок, настройка считается успешной, иначае следует обратиться к преподавателю.
- Базовые знания Git (онлайн курс ~1 час);
- Базовые знания цифровой схемотехники и булевой алгебры;
- Базовые знания SystemVerilog.
Факультатив состоит из 8 очных занятий на базе НИУ МИЭТ. Занятия проходят в формате диалога. Каждое занятие разбивается на конкретные темы. Для каждой темы дается теоретическая база, которая обсуждается с присутствующими очно. Далее следует запуск примеров и их разбор, а также выполнение заданий.
... -> Теория <-> Обсуждение <-> Примеры <-> Задания -> Теория <-> ...
Каждый обучающийся в рамках данного факультатива должен прежде всего понимать: преподаватель настроен на то, чтобы передать знания и обучить. Поэтому любой вопрос по теме является уместным. Высказывайте свое мнение, задавайте вопросы и получайте обратную связь. Также после завершения занятия будет выделяться некоторое время на дополнительные вопросы и их обсуждение.
После каждого занятия учащимся будет предложено выполнить опциональное домашнее задание с целью закрепления полученных знаний и навыков.
Задание будет формулироваться в конце каждого занятия или через некоторое время после него. Также оно будет дублироваться в файле README.md
в директории занятия (со структурой репозитрия можно ознакомиться в разделе струтура репозитория).
Процесс выполнения и отправки домашнего задания разобран в разделе выполнение домашнего задания. После отправки студент имеет возможность получить обратную связь от преподавателя.
Структура репозитория следующая:
common
- общие для всех файлыdoc
- документацияpic
- изображения
lesson_1
- занятие 1examples
- примерыtasks
- заданияREADME.md
- краткое описание занятия
lesson_2
- занятие 2- ...
- ...
lesson_8
- занятие 8- ...
README.md
- файл с общей информацией
Для того, чтобы работать с репозиторием необходимо создать его копию при помощи кнопки Fork
в правом верхнем углу главной страницы репозитория.
В открывшемся после этого окне выбрать Create fork
.
Теперь в вашем профиле находится копия оригинального репозитория, с которой вы будете работать. Для клонирования вашей копии репозитория в терминале виртуальной машины необходимо выполнить:
-
Переход в корневую директорию:
cd ~
-
Клонирование копии
Необходимо скопировать https-ссылку из раздела
Code
копии репозитория:Далее необходимо выполнить:
git clone <https-ссылка>
Например:
git clone https://github.com/serge0699/verif_elective_miet.git
Процедура обновления:
-
Обновить копию репозитория при помощи кнопки главной страницы репозитория:
-
Перейти в директорию копии репозитория на виртуальной машины:
cd ~/verif_elective_miet
-
Выполнить
pull
:git pull
Команды для запуска примеров будут приведены на слайдах презентации к занятию. В большинстве случаев они будут выглядеть как:
cd <директория-занятия>/examples
make EXAMPLE=<имя-примера> <аргументы>
Команды для запуска заданий в ходе их выполнения будут приведены на слайдах презентации к занятию. В большинстве случаев они будут выглядеть как:
cd <директория-занятия>/tasks
make EXAMPLE=<имя-примера> <аргументы>
В ходе выполнения домашнего задания учащемуся необходимо будет дополнить/изменить существующий код на языке SystemVerilog или же написать свой согласно некоторой документации.
Вся работа будет производиться в копии репозитория (как создать копию). Перед выполнением каждого нового задания необходимо обновлять копию репозитория (как обновить копию).
После выполнения задания необходимо применить изменения при помощи git add
и git commit
, а также загрузить их на GitHub при помощи git push
. Ниже представлен пример:
git add .
git commit -m "Домашнее задание 3"
git push origin main
Если вы не понимаете, что значат эти команды, то настоятельно рекомендуется пройти онлайн курс по Git длительностью ~1 час.
После того, как выполненное задание загружено на GitHub, необходимо создать запрос на обратную связь при помощи pull request.
После создания pull request появляется возможность отслеживать его состояние в разделе Pull requests
основного репозитория.
Обратную связь преподавателя можно будет увидеть в этом разделе спустя некоторое время. Процесс исправления недочетов в домашнем задании описан в разделе обратная связь на домашнее задание.
Преподаватель ограниченно доступен для связи в Telegram. Не стесняйтесь задавать вопросы. Но помните о том, что ответ может быть дан не сразу, а через некоторое время.
После открытия pull request в основной репозиторий появится возможность отслеживать его состояние в разделе Pull requests
основного репозитория.
Преподаватель в течение некоторого времени оставит комментарии к написанному коду. Пример указания на ошибку:
Задача студента - исправить ошибку и загрузить изменения в копию репозитория. Изменения автоматически отобразятся в открытом pull request. Не нужно открывать еще один pull request!
Ситуация с указанием на ошибки и их исправлением может повторяться циклически несколько раз. Если преподаватель считает, что все ошибки исправлены и домашнее задание выполнено корректно - он закрывает pull request. Сообщение об этом выглядит следующим образом:
После этого сообщения домашнее задание считается выполненным корректно.