Разработка для FPGA

Учебный курс 2016 — 2017

Введение в программирование для FPGA. Большую часть курса занимает изучение и написание модулей с использование языка Verilog/SystemVerilog.

Преподают: Дмитрий Ходырев, Данил Бычков, Максим Толкачев

Расписание: Четверг 17:00-19:00

Общая продолжительность: 40 часов

Прием заявок до 23 октября. Итоги рассмотрения заявок 28 октября.

Начало занятий: 1 ноября 2016.

Набор на курсы окончен.

Требования к слушателям

  1. Умение читать техническую литературу на английском языке.
  2. Знание булевой алгебры.
  3. Умение пользоваться двоичной и шестнадцатеричной системами счисления помимо десятичной.
  4. Минимальный опыт программирования (желательно, на C)
  5. Преимуществом будет опыт работы в операционной системе Linux.

 

План занятий

Логические элементы и задачи цифровых схем
Мультиплексоры и демультиплексоры
Кодеры и декодеры
Компараторы
Сумматоры
Умножители
Регистры
Сдвиговые регистры, регистры с циклическим сдвигом, счетчики
Конечные автоматы
Состояния, переходы, сброс
Устройство конечного автомата на регистрах
Пример создания конечного автомата в классе
Основы RAM
Производные: ROM, FIFO, LIFO
Внешняя память: DRAM, SRAM, FLASH, PROM-EPROM-EEPROM
Концепция и назначение. Verilog, SystemVerilog, VHDL
Иерархия: модули. Схематический пример
wires and constant assignments
Операторы
Типы данных: регистры, массивы
Значения данных: 0,1,x,z
Процедурные блоки (initial/always)
Процедурные блоки (begin..end)
Блокирующие присваивания
Контроль времени
events
@, clock, posedge, negedge
Неблокирующие присваивания
if/else/case
loop statements
packed arrays
Идея
Временная модель
Device under test (DUT), симуляция и результаты
Более абстрактно о тестбенчах
Установка Modelsim
Simulation workflow: компиляция, библиотеки, запуск, времянки, ошибки
Пример времянной симуляции
Матрица коммутации, универсальные логические блоки
Аппаратные блоки, встраиваемые в FPGA-чипы
Синтез логической схемы
Разводка физической цепи, constraints
Пара слов о Altera и Xilinx
Поддержка HDL-языков в синтезаторах и симуляторах
Знакомьтесь, Quartus
Простой пример HDL-кода и получившаяся схема после синтеза
Синтез: отслеживаем результаты
Что такое constraints
Устройства, описанные в лекциях 1 и 2, их синтез и получившиеся схемы.
Наблюдаем в netlist viewer, technology map viewer, etc
Тактовые сигналы, глобальные тактовые сигналы
Аппаратные PLL
timing constraints, метрики
Fanout, конвейризация
Метастабильность
Проблема переходов между клоковыми доменами
Тайминги более приближенно
От идеи до HDL-кода
Симуляция и времянки
Синтез и оценка таймингов
Прошиваем чип через JTAG
Программируем загрузочную flash-память, грузимся при подъеме питания
SignalTap (когда симуляция уже не помогает)
Старый добрый осцилограф
Полезные диоды
Модульность как средство предотвращения ошибок
Реюз как средство предотвращения ошибок
Нашли багу — фиксите
Снова симуляция
task и function
input, output, inout, reference
return
program block
Используем их в program блоках
Используем их в синтезируемых схемах
modports
subroutines
Классы: создание (pointer), наследование, инкапсуляция, полиморфизм
Рандомизация, ограниченная рандомизация
Виртуальные интерфейсы: зачем?
Динамические массивы, ассоциативные массивы
Очереди, мэйлбоксы
Энумы
Строки, typedef, etc
Параметризируем like a pro
Симулируем like a pro
immidiate assertions, concurrent assertions
Covergroup, bins
Coverage reports

Адрес:

197341, Санкт-Петербург, Коломяжский пр., д.27, 4-й этаж

Контактные данные:

Отдел продаж:
тел. +7 (495) 616-1001

Центр разработки и поддержки: тел.: +7 (812) 330-0118

e-mail:
support@metrotek.ru

Посмотреть на карте

Закрыть карту

© 2020 НТЦ Метротек, Санкт-Петербург

Все права защищены, копирование и тиражирование материалов
доступно только с письменного согласия.