77 990 ₽
Сложность: легкий
Продолжительность: 3 дня
Формат участия: в классе/онлайн
Расписание: по согласованию
Описание курса
Данный курс является исчерпывающим введением в язык описания аппаратуры Verilog. Особое внимание уделяется написанию RTL и поведенческого кода. На занятиях рассматриваются как аппаратные ресурсы FPGA в целом, так и аппаратные ресурсы FPGA фирмы Xilinx. Полученная информация позволит посредством синтеза по принципу “сверху вниз” проектировать цифровые системы любой сложности. Курс сочетает в себе содержательные теоретические лекции с практическими лабораторными занятиями, позволяющими закрепить ключевые понятия. Кроме того, вы познакомитесь с более совершенными методами написания кода, которые помогут повысить мастерство и ускорить оптимизацию проекта под FPGA. В этом курсе рассматривается Verilog стандартов 1995 и 2001 года.
Пройдя данный трехдневный курс, вы получите ценный практический опыт. Студенты с минимальными знаниями Verilog по окончании курса смогут создавать эффективные аппаратные проекты и выполнять высокоуровневое HDL моделирование.
Продолжительность
3 дня
Кому будет полезен курс?
Инженерам, которые хотят эффективно использовать Verilog для проектирования, моделирования и синтеза цифровых систем
Что нужно знать заранее?
Знание основ цифрового проектирования
Программное обеспечение
Vivado Design Suite
Аппаратные ресурсы
Отладочная плата Kintex-7 FPGA KC705
*Данный курс не фокусируется на какой-то определенной архитектуре
По завершении курса вы будете иметь все необходимые навыки для того чтобы:
– Писать синтезируемый RTL код на Verilog
– Писать тестовые модули (testbench) для моделирования
– Создавать конечные автоматы (finite-state machines) на Verilog
– Создавать и оптимизировать проекты под конкретные FPGA фирмы Xilinx
– Использовать улучшенные возможности языка Verilog в части файлового ввода/вывода
– Осуществлять моделирование при помощи библиотек Xilinx Simprim
– Создавать и управлять проектами в среде проектирования Vivado Design Suite
– Загружать проект в отладочную плату
Структура курса
День 1
– Введение в Verilog
– Ключевые слова и идентификаторы языка Verilog
– Типы данных языка Verilog
– Шины сигналов и массивы в языке Verilog
– Модули и порты в языке Verilog
– Демонстрация: Мультиплексор
– Лабораторная работа 1: Создание иерархической структуры
– Операторы языка Verilog
– Конструкция непрерывного присваивания
– Моделирование на уровне элементарных логических элементов
– Конструкция процедурного блока
– Блокирующие и неблокирующие присвоения в процедурном блоке
– Лабораторная работа 2: Создание простой памяти
– Синхронизация операций процедурного блока
День 2
– Условные операторы языка Verilog: оператор if_else
– Лабораторная работа 3 Создание делителя тактовой частоты и счетчика адресов
– Условные операторы языка Verilog: оператор case
– Операторы цикла языка Verilog
– Тестовые модули (Testbench) языка Verilog
– Лабораторная работа 4: Моделирование и верификация проекта на языке Verilog
– Системные задачи
– Подпрограммы в языке Verilog
– Функции в языке Verilog
– Задачи в языке Verilog
– Директивы компиляции языка Verilog
– Концепция использования параметров
– Лабораторная работа 5: Двоичный n-разрядный счетчик и RTL верификация
– Конструкция generate
День 3
– Конечные автоматы
– Конечные автоматы: конечный автомат Mealy
– Лабораторная работа 6: Проектирование конечного автомата Mealy
– Конечные автоматы: конечный автомат Moore
– Лабораторная работа 6: Проектирование конечного автомата Moore
– Правила кодирования конечных автоматов
– Работа с файлами, ввод/вывод данных на языке Verilog
– Работа с файлами, ввод/вывод данных: функции чтения
– Работа с файлами, ввод/вывод данных: функции записи
– Лабораторная работа 8: Использование файлового ввода/вывода на языке Verilog
– Создание проекта под FPGA фирмы Xilinx
– Лабораторная работа 7: Имплементация и загрузка
– Работа с файлами, ввод/вывод данных на языке Verilog
– Создание проекта под FPGA фирмы Xilinx
– Лабораторная работа 9: Реализация и загрузка проекта
– Примитивы, определяемые пользователем
– Интерфейс языка программирования
Описание лабораторных работ
Лабораторные работы, выполняемые в данном курсе, дают необходимые базовые навыки по созданию синтезируемого RTL кода. В лабораторных работах рассматриваются все аспекты процесса проектирования. Студенты самостоятельно пишут код, выполняют синтез и поведенческое моделирование. Основная цель лабораторных – написание кода, который будет оптимально использовать аппаратные ресурсы кристалла. Результатом лабораторных работ станет функциональный калькулятор, который студенты проверят при моделировании.