Общие сведения

Проектирование на ПЛИС, архитектура, средства и методы работы. Спецкурс посвящен теоретическим и практическим основам проектирования устройств на ПЛИС (Программируемая Логическая Интегральная Схема) – полупроводниковый кристалл, связи между вентилями и логику работы которого можно формировать и менять многократно во время работы. Приобретаемые навыки: практический навык проектирования устройств на ПЛИС Xilinx в среде ISE Foundation. Основы VHDL и Verilog, архитектура Spartan-3e и Virtex-5. Работа с интерфейсами i2c, PCI, Ethernet, реализация контроллеров последовательного порта, модуля управления LCD дисплеем, работа с ЦАП/АЦП.

Продолжительность каждого спецкурса в рамках программы составляет два семестра. В каждом семестре проводится 12 обязательных занятий по 4 академических часа один раз в неделю, итого 48 часов/семестр. В осеннем семестре читается 8 часов лекций, проводится 16 часов семинаров, 20 часов практических занятий, 4 часа выделено на прием зачёта. Кроме того, могут проводиться дополнительные занятия в согласованном объеме. В весеннем семестре студенты в течение 44 часов выполняют курсовую работу по программированию и в течении 4-х часов защищают выполненную работу.

Проектирование на ПЛИС

Вы все знаете, что такое микросхема. На физическом уровне любая микросхема состоит из транзисторов, резисторов и конденсаторов, вытравленных на кристалле кремния, а на логическом – из логических элементов и триггеров. Каждый тип микросхем создан и оптимизирован для исполнения конкретной функции или набора функций (вычисления, передача и обработка цифровых сигналов, хранение данных…), и их структура (логическая схема) задана при производстве на заводе и не может быть изменена во время эксплуатации. Все микросхемы такие. Почти все…

Существуют цифровые устройства, чья логическая схема может быть изменена неограниченное количество раз уже после выпуска микросхемы с конвейера (но, конечно, не электрическая принципиальная схема, пожалуй, тут сможет помочь лишь нанотехнология). Такие микросхемы называются ПЛИС (программируемая логическая интегральная схема) или по-английски FPGA (field programmable gate array). Это очень молодая отрасль электроники (первую ПЛИС выпустила фирма Xilinx в 1985 году), которая развивается сегодня крайне быстро. ПЛИС или FPGA состоит из набора логических блоков (от тысяч до сотен тысяч, в зависимости от размера кристалла), состоящих из элемента, который может быть запрограммирован для исполнения любой логической функции нескольких аргументов и ячейки хранения данных. Эти логические блоки могут быть соединены разными способами посредством программируемой матрицы соединений. Логика работы каждого блока, а также соединения блоков между собой, определяются так называемой «прошивкой», которую вы загружаете в кристалл со своего ноутбука, по сети или любым другим удобным способом (отсюда английское название field programmable – программируемый «в поле»). В итоге вы полностью задаете логику функционирования кристалла, и можете использовать его для организации всевозможных интерфейсов (PCI/PCI Express, USB, TCP/IP, RS232…), обработки цифровых сигналов (выделение сигнала из шума, сжатие, кодирование, шифрование…) или для управления своей физической экспериментальной установкой (выдача синхросигналов для лазера, систем регистрации и обработки информации). Вы даже можете «прошить» микроконтроллер в ПЛИС, и там еще останется много места для памяти и схем управления периферией.

Задача курса – научить наших студентов методам и принципам работы с такими устройствами. Обучение проводится на современной материальной базе, включающей платы Spartan 3e Starter Kit с установленными на них ПЛИС Spartan 3e фирмы Xilinx, а также множеством периферийных устройств (ЦАП/АЦП, LCD дисплей, порты PS/2, VGA, RS232, TCP/IP). В первом семестре студенты изучают язык программирования VHDL для описания логики работы своих будущих устройств и выполняют простые проекты на платах стартового набора. Во втором семестре ребята используют полученные знания для разработки оригинальных проектов, которые могут быть связаны, например, с передачей данных по интерфейсам PCI/PCI Express или с обработкой цифровых сигналов с использованием средств MATLAB Simulink. И не только…

Программа курса

  • Занятие 1: Введение в схемотехнику. Системы исчисления. Булева алгебра: таблицы истинности, ФАЛ. Комбинационные логические схемы (мультиплексоры, компараторы, дешифраторы). Создание и моделирование комбинационных логических устройств в схематическом редакторе ISE.
  • Занятие 2: Схемотехника. Последовательные логические устройства. RS триггер (асинхронный, синхронный). D триггер. Триггера со статическим (триггера-защелки, latches) и динамическим (flip-flips) управлением. D flip-flop. Регистры и счетчики. Работа с последовательными лог. элементами в схематическом редакторе ISE. Практическая реализация задачи ”мигающие с заданной частотой светодиоды”
  • Занятие 3: Архитектура Spartan 3e. Структура кристалла (конфигурируемые логические блоки, блоки ввода/вывода, общие трассировочные ресурсы, тактовые ресурсы, умножители, блочная память). Структура CLB. Структура IOB. Конфигурирование ПЛИС. Практическое использование примитивов Spartan 3e в схемотехническом редакторе ISE.
  • Занятие 4: Введение в VHDL. Объекты и структуры языка. Иерархия проекта. Операторы назначения сигналов, процесса, вставки компонента. Конструкции для синтеза и для моделирования. Описание логической функции на VHDL, моделирование. Практическая реализация проекта ”мигающие с заданной частотой светодиоды” на языке VHDL.
  • Занятие 5: VHDL. Типы данных, сигналы, переменные. Атрибуты сигналов. Последовательные и параллельные операторы. Реализация схемотехнических узлов и элементов на VHDL. Пакет std_logic и разрешение сигналов. Практическая реализация задачи ”передача данных по последовательному интерфейсу и управление светодиодами”.
  • Занятие 6: Управляющие автоматы. Введение. Теория конечных автоматов. Автоматы Мура и Мили. Реализация конечных автоматов на VHDL. Практическая реализация задачи ”светофор”.
  • Занятие 7: Управляющие автоматы и контроллер LCD дисплея. Теория работы контроллера LCD дисплея. Применение конечного автомата для управления выдачей сигналов инициализации LCD дисплея с использованием программы из памяти.
  • Занятие 8: Работа с контроллером клавиатуры. Устройство и работа контроллера клавиатуры. Прием данных с клавиатуры и отображение на LCD дисплее.
  • Занятия 9: Выполнение проекта по индивидуальному заданию. Разработка структуры проекта.
  • Занятия 10: Выполнение проекта по индивидуальному заданию. Создание кода проекта на языке VHDL.
  • Занятия 11: Выполнение проекта по индивидуальному заданию. Отладка программы на тестовой плате.
  • Занятия 12: Выполнение проекта по индивидуальному заданию. Представление выполненного проекта.

Литература

  • Опадчий. Аналоговая и цифровая электроника. (1 - 2 занятия)
  • Сергиенко. VHDL (3 - 5 занятия)
  • Максфилд. Проектирование на ПЛИС. Курс молодого бойца. (3 занятие)