Проектирование на Verilog

ЗАПИСАТЬСЯ НА ОБУЧЕНИЕ

Описание курса

Данный курс является исчерпывающим введением в язык описания аппаратуры 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 кода. В лабораторных работах рассматриваются все аспекты процесса проектирования. Студенты самостоятельно пишут код, выполняют синтез и поведенческое моделирование. Основная цель лабораторных – написание кода, который будет оптимально использовать аппаратные ресурсы кристалла. Результатом лабораторных работ станет функциональный калькулятор, который студенты проверят при моделировании.

ЗАПИСАТЬСЯ НА ОБУЧЕНИЕ