Проектирование цифровых систем на языках описания аппаратуры/Лекция 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. Поскольку эта память выполнена по технологии SRAM, она имеет неограниченное число циклов перезаписи, однако теряет информации при пропадании питания. Поэтому интерфейс программирования и внешняя энергозависимая микросхема являются обязательными для работы с FPGA.
На практике программирование ячеек и формирование трассировочных линий выполняется автоматически с помощью системы автоматизированного проектирования. Структура файла конфигурации является строго конфиденциальной информацией, и формирование такого файла может быть выполнено только с помощью САПР конкретного производителя FPGA.
Основные особенности подхода, реализованного в FPGA:
- FPGA подразумевают гранулярность схемы, это значит, что сложные с не равномерным использованием компонентов всё равно необходимо приводить к базовым возможностям логических ячеек, причём вероятнее всего какие-то возможности ячеек будут незадействованы;
- программируемые трассировачные линии имеют большую задержку распространения сигнала по сравнению с металлическими соединителями интегральных схем, поэтому рабочие частоты ПЛИС оказываются меньше, чем частоты заказных/полузаказных СБИС.
Таким образом, проекты на базе ПЛИС оказываются медленнее и дороже решения на базе стандартных (Standart Product) или специализированных микросхем (ASIC, ASSP – Application-Specific Integrated Circuit, Application-Specific Standart Product). Но поскольку стоимость подготовки производства интегральных схем постоянно растёт и, например, для технологического процесса с нормой 32 нм достигала 200 млн. долларов США (по данным на 2012г), то разработка специализированной микросхемы оказывается экономически целесообразной только для массового производства. А для устройств, выпускаемых небольшими тиражами ПЛИС являются подходящей элементной базой.
- Что такое FPGA?
- Когда используется?
- В чем отличие от CPLD?
- Какие основные поставщики?
- Какие особенности при проектировании схем с исопльзованием FPGA?
- Общая структура FPGA
- Структура FPGA фирмы XILINX