Проектирование цифровых систем на языках описания аппаратуры/Лекция 16
- Заголовок
- Проектирование схем на FPGA
- Автор
- Ланкевич Ю.Ю.
- Нижний колонтитул
- Проектирование цифровых систем на языках описания аппаратуры/Лекция 16
- Дополнительный нижний колонтитул
- Ланкевич Ю.Ю., 03:38, 24 декабря 2020
Слайд:Введение в проектирование схем на ПЛИС
Основные современные типы ПЛИС:
- CPLD – Complex Programmable Logic Devices – сложные программируемые логические устройства;
- FPGA – Field Programmable Array – программируемые пользователем вентильные матрицы.
Слайд: общие сведения о CPLD
Идеей CPLD является реализация нескольких узлов на одном кристалле, добавляя к ним возможности передачи сигналов между узлами. Современные микросхемы CPLD имеют программируемые узлы на основе флеш памяти, т.е. являются многократно программируемыми, и содержат блоки из 18 или 16 триггеров вместе с соответсвующей матрицей вентилей И-ИЛИ. Такие ПЛИС обладают предсказуемыми задержками распространения сигнала (входные сигналы проходят через несложную схему вентелей и коммутационных узлов), пркатически не требуют внешних компонентов и удобны для работы в качестве "glue logic", т.е. микросхем, выполняющих в устройстве сопряжение более сложных устройств и заменяющих на печатной плате множество более простых микросхем, состоящих из нескольких вентелей.
Недостатком архитектуры CPLD является сложность построения более ёмких микросхем. Существующие в настоящее время CPLD состоят из десятков-сотен триггеров и практически не получают преимуществ от перехода к новым технологическим процессам.
Микросхемы с архитектурой CPLD в настоящее время всё ещё выпускаются компанией Xilinx. Это серия CoolRunner-II, которую рассмотрим далее.
Слайд: общие сведения об FPGA
Программируемые микросхемы с архитектурой FPGA имеют в основе набор конфигурируемых блоков (логических ячеек), содержащих базовые компоненты цифровой логики – логические элементы и триггеры. Отдельные ячейки соединяются друг с другом с помощью программируемых трассировачных линий, как показано на рисунке ниже.
ВСТАВИТЬ РИСУНОК
Идеей, реализованной в FPGA, является прямое задание логических функций в виде таблицы истинности (LUT, Look-Up Table). Вместо коммутации вентилей ИЛИ и И таблица истинности представляет собой просто блок памяти, на адресные входы которого подаются входные логические сигналы. Их комбинация естественным образом выбирает одну из ячеек таблицы, в которой хранится требуемое состояние ячейки – 0 или 1. Таким образом, LUT в FPGA может реализовать любую логическую функцию, если число её входов не превышает число входов LUT. Долгое время LUT в FPGA имели 4 входа, т.е. содержали 16 однобитовых ячеек памяти. Комбинация "4-входовый логический генератор и триггер" получила название "эквивалентная логическая ячейка" (equivalent logic cell) и часто используется для определения сложности схемы, хотя современные FPGA используют уже 6-входовые LUT.
Несколько логических ячеек объединяются в конфигурируемые логические блоки (КЛБ, Configurable Logic Block, CLB). Между блоками КЛБ, размещёнными на кристалле в виде прямоугольной матрицы, проложены программируемые трассировочные линии, а по периметру микросхемы располагаются программируемые блоки ввода-выводв (БВВ).
Соединение КЛЮ трассировочными линиями также может регулироваться. На пересечении вертикальных и горизонтальных линий расположены программируемые трассировочные матрицы (Programmable Routing Matrix), которые так же, как LUT, управляются конфигурационной памятью FPGA. В современных FPGA присутствует достаточное число трассироваочных линий разных типов (от локальных, соединяющих соседние КЛБ, до глобальных, пересекающих весь кристалл или его крупный регион). Как правило, числа трассировочных линий достаточно для выполнения всех соединений проекта, однако при высокой степени использования КЛБ и слишком сложных соединениях число трассировочных линий может оказаться недостаточным. Поэтому от FPGA не стоит ожидать 100%-го использования программируемых ячеек.
Реализацию цифровой схемы в FPGA можно проиллюстрировать следующим образом:
ВСТАВИТЬ РИСУНОК
В логические ячейки КЛБ заносятся требуемые таблицы истинности, при необходимости подключаются триггеры логических ячеек. Соединения с другими ячейками выполняются с помощью замыкания соответствующих коммутационных транзисторов в трассировочных линиях.
На рисунке видно, что две ячейки из всего массива оказались запрограммированы на реализацию определённой логической функции. Поскольку для реализации схемы одной ячейки оказалось недостаточно, её выход был подключён к входу другой ячейки, для чего задействованы трассировочные линии FPGA. Чтобы реализовать такую схему, необходимо задать режимы работы отдельных компонентов внутри ячеек, а также активировать цифровые ключи, соединяющие отдельные сегменты трассировочных линий.
- Что такое FPGA?
- Когда используется?
- В чем отличие от CPLD?
- Какие основные поставщики?
- Какие особенности при проектировании схем с исопльзованием FPGA?
- Общая структура FPGA
- Структура FPGA фирмы XILINX