«Случай — это псевдоним Бога, когда Он не хочет подписываться своим собственным именем.» А. Франс

Проектирование цифровых систем на языках описания аппаратуры/Лекция 16

Материал из Wiki
Перейти к: навигация, поиск
Лекции ПЦСЯОА

Лекции

Практические

Доп. материалы

Заголовок
Проектирование схем на 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 resources of FPGA.png

Соединение КЛБ трассировочными линиями также может регулироваться. На пересечении вертикальных и горизонтальных линий расположены программируемые трассировочные матрицы (Programmable Routing Matrix), которые так же, как LUT, управляются конфигурационной памятью FPGA. В современных FPGA присутствует достаточное число трассироваочных линий разных типов (от локальных, соединяющих соседние КЛБ, до глобальных, пересекающих весь кристалл или его крупный регион). Как правило, числа трассировочных линий достаточно для выполнения всех соединений проекта, однако при высокой степени использования КЛБ и слишком сложных соединениях число трассировочных линий может оказаться недостаточным. Поэтому от FPGA не стоит ожидать 100%-го использования программируемых ячеек.

Реализацию цифровой схемы в FPGA можно проиллюстрировать следующим образом:

ВСТАВИТЬ РИСУНОК

В логические ячейки КЛБ заносятся требуемые таблицы истинности, при необходимости подключаются триггеры логических ячеек. Соединения с другими ячейками выполняются с помощью замыкания соответствующих коммутационных транзисторов в трассировочных линиях.

На рисунке видно, что две ячейки из всего массива оказались запрограммированы на реализацию определённой логической функции. Поскольку для реализации схемы одной ячейки оказалось недостаточно, её выход был подключён к входу другой ячейки, для чего задействованы трассировочные линии FPGA. Чтобы реализовать такую схему, необходимо задать режимы работы отдельных компонентов внутри ячеек, а также активировать цифровые ключи, соединяющие отдельные сегменты трассировочных линий. Настройки компонентов и информация о включенных/выключенных коммутаторах хранится в специальной памяти внутри FPGA. Поскольку эта память выполнена по технологии SRAM, она имеет неограниченное число циклов перезаписи, однако теряет информации при пропадании питания. Поэтому интерфейс программирования и внешняя энергозависимая микросхема являются обязательными для работы с FPGA.

На практике программирование ячеек и формирование трассировочных линий выполняется автоматически с помощью системы автоматизированного проектирования. Структура файла конфигурации является строго конфиденциальной информацией, и формирование такого файла может быть выполнено только с помощью САПР конкретного производителя FPGA.

Основные особенности подхода, реализованного в FPGA:

  1. FPGA подразумевают гранулярность схемы, это значит, что сложные с не равномерным использованием компонентов всё равно необходимо приводить к базовым возможностям логических ячеек, причём вероятнее всего какие-то возможности ячеек будут незадействованы;
  2. программируемые трассировачные линии имеют большую задержку распространения сигнала по сравнению с металлическими соединителями интегральных схем, поэтому рабочие частоты ПЛИС оказываются меньше, чем частоты заказных/полузаказных СБИС.

Таким образом, проекты на базе ПЛИС оказываются медленнее и дороже решения на базе стандартных (Standart Product) или специализированных микросхем (ASIC, ASSP – Application-Specific Integrated Circuit, Application-Specific Standart Product). Но поскольку стоимость подготовки производства интегральных схем постоянно растёт и, например, для технологического процесса с нормой 32 нм достигала 200 млн. долларов США (по данным на 2012г), то разработка специализированной микросхемы оказывается экономически целесообразной только для массового производства. А для устройств, выпускаемых небольшими тиражами ПЛИС являются подходящей элементной базой.

Слайд: FPGA фирмы Xilinx

Одним из основных производителей ПЛИС является фирма Xilinx. В конце 90х годов основной линейкой FPGA среди продукции Xilinx была серия XC4000 (семейства XC4000E, XC4000XL и XC4000XLA). Архитектура этой линейки оказалась довольно удачной, однако выяснилось, что в целом ряде проектов возможности стандартной ячейки ПЛИС используются далеко не полностью. Возникла естественная альтернатива – использовать дорогие устройства с максимальной производительностью и полным набором функциональных возможностей или, напротив, дешевые ПЛИС, обеспечивающие базовые функции, требующиеся для большинства типовых проектов. В результате фирма Xilinx начала выпускать различные серии FPGA, отвечающие упомянутым альтернативам.

Стандартное недорогое решение представляла серия Spartan, на смену которой пришли серии Artix (минимальная стоимость) и Kintex (умеренная стоимость при высокой производительности в задачах цифровой обработки сигналов), наилучшие технические характеристики достигаются в серии Virtex. На данный момент активными являются семейства серии 7 – Artix-7, Spartan-7, Kintex-7, Virtex-7. Микросхемы UltraScale и UltraScale+ относятся к верхнему ценовому диапазону и предназначены для построения сложных систем с максимальной степенью интеграции компонентов на кристалле. Ячейки серии Kintex ничем не отличаюися от ячеек более дорогой серии Virtex.

Слайд:Архитектура FPGA фирмы Xilinx

Архитектура ранних семейств (например, XC4000) представляла собой прямоугольную сатрицу однотипных логических ячеек, окруженных блоками ввода-вывода. Такая архитектура выглядит однородно и в целом удобна для реализации самых разных цифровых схем. Однако с учётом сниженной тактовой частоты программируемой схемы и необходимостью тратить существенную часть площади кристалла на коммутационные линии и неиспользуемые ресурсы ячеек, выяснилось, что целый ряд широко используемых компонентов реализуется в FPGA крайне неэффективно.

Поэтому в начале 2000-х годов FPGA Xilinx кроме собственно логических ячеек содержали уже аппаратные блоки. В первую очередь были добавлены:

  • блоки синхронной статической двухпортовой памяти (Block RAM, BRAM). В более современных семействах были добавлены также и более крупные блоки памяти UltaRAM;
  • умножители независимых целочисленных операндов, позже превратившиеся в "блоки цифровой обработки сигналов", реализующие операцию "умножение с накоплением", обозначаемые как XtreameDSP или DSP48;
  • высокоскоростные последовательные приемопередатчики (MultiGigabit Transceivers, MGT).

ВСТАВИТЬ РИСУНОК

Отдельным направлением ПЛИС, анонс которого состоялся в 2011 году, являются микросхемы класса All Programmable SoC (ППСНК, полностью программируемые системы на кристалле). Первыми из микросхем такого типа являются AP SoC семейства Zynq-7000. Они включают в себя процессорное ядро ARM и матрицу программируемых логических ячеек, аналогичных применяемым в Artix или Kintex. Zynq-7000 имеют также разновидность Zynq-7000S, отличающуюся одноядерной, ане двухядерной подсистемой ARM.

Семейство UltaScale+ также включают микросхемы Zynq. ОНи обозначаются Zynq UltraScale+ и имеют несколько разновидностей.

Новым направлением архитектуры ПЛИС является анонсированная в 2018 году Adaptive Compute Acceleration Platform (ACAP), или адаптивная платформа ускорения вычислений. В настоящее время она представлена серией Versal, первые образцы которой выпускаются по технологическому процессу с нормами 7 нм. ПЛИС Versal объединяют матрицу программируемых ячеек, аппаратные процессоры ARM и сеть аппаратно реализованных 32-разрядных RISC-процессоров.

В настоящее время сохраняют некоторую актуальность недорогие ПЛИС Spartan-6, однако основной интерес представляет серия 7, представленная наибольшим числом разновидностей семейств.

Ниже диаграмма соответствия поколений ПЛИС Xilinx технолгическим процессам.

ВСТАВИТЬ РИСУНОК

Слайд:Аппаратный состав FPGA фирмы Xilinx

Итак, кроме логических ячеек и блоков вводв-выводв современные FPGA содержат большое число аппаратных блоков, реализующих часто используемые в цифровой схемотехнике функции. Смысл размещения на кристалле таких блоков состоит в том, что те же узлы, выполняемые с помощью логических ячеек, будут именть больший размер и пониженное быстродействие. В то же время аппаратная реализация часто используемых блоков несущественно увеличивает площадь кристалла и стоимость.

К аппаратным блокам размещённым в FPGA относятся:

  • блоки синхронной статической двухпортовой памяти BRAM;
  • блоки цифровой обработки сигналов "умножение с накоплением" Xtreme DSP;
  • формирователи тактовых сигналов MMCM (Multi-Mode Clock Managers) и PLL (Phase-Locked Loop);
  • скоростные последовательные приемопередатчики (MGT, Multi-Gifabit Transceivers);
  • контроллеры PCI Express endpoint и root;
  • процессорные ядра ARM (Zynq-700, Zynq-7000S, Zynq-US+).

Семейство Spartan-6 выполнено по нормам 45-нм. В состав семейства входят несколько микросхем в диапазоне логической ёмкости от 4 до 150 тысяч эквивалентных логических ячеек.


  • Какие основные поставщики?
  • Какие особенности при проектировании схем с исопльзованием FPGA?
  • Общая структура FPGA
  • Структура FPGA фирмы XILINX