вопрос 59 (1006303)
Текст из файла
59 Программируемые пользователем вентильные матрицы FPGA. Проектирование цифровых устройств на основе ПЛИС фирмы XILINX в САПР WebPACK ISE и моделирование их в ModelSim.
FPGA это один из 2х наиболее распространенных типов архитектуры современных ПЛИС. ПЛИС этой структуры состоит из матрицы конфигурируемых логических блоков и коммутирующих связей – программируемых матриц соединений. Логические блоки таких ПЛИС состоят из одного или нескольких относительно простых логических элементов. В их основе лежит таблица перекодировки (LOOK-UP TABLE (LUT)), программируемый мультиплексор, Д-триггер, а также цепи управления. Таких простых элементов может быть достаточно большое количество, у современных ПЛИС, ёмкостью более 10 млн вентилей, число логических элементов достигает 100000. За счет такого большого числа логических элементов они содержат значительное число триггеров. Так же некоторые семейства ПЛИС имеют встроенные реконфигурируемые модули памяти (Embedded Array Block (EAB)), что делает ПЛИС данной архитектуры весьма удобным средством реализации алгоритмов цифровой обработки сигналов, основными операциями в которых является перемножение, умножение на константу, суммирование и задержка сигнала. Вместе с тем возможности комбинационной части таких ПЛИС ограничены, поэтому совместно с ППВМ применяют СПЛУ/CPLD для реализации управляющих и интерфейсных схем.
В FPGA для хранения конфигурационной информации используется энергозависимая память, требующая инициализации после включения питания, в отличие от CPLD, в которых применяется энергозависимая память.
К классу ППВМ относятся ПЛИС семейств XC2000, XC3000, XC4000, XC5000, SPARTAN, SPARTAN-XL, SPARTAN II, SPARTAN IIE, SPARTAN III, VIRTEX, VIRTEX-E, VIRTEX II, VIRTEX II PRO фирмы Xilinx; ACT1, ACT II фирмы ACTEL; а также FLEX 6000, FLEX 8000, FLEX 10K, STRATIX, STRATIX II фирмы Altera; и некоторые ПЛИС фирм ATMEL и VANTIS.
Обобщенная структура ПЛИС фирмы Altera, названных матрицами элементов гибкой логики (Flexible Logic Element Matrix – FLEX) показано на рисунке:
Здесь имеются блоки логических элементов, объединяемые в LAB модули (Logic Array Block – LAB) по 8 элементов в каждом. Отличительной чертой FLEX устройств является то, что матрицы переключений реализованы в виде горизонтальных и вертикальных каналов меж соединений (каналов трассировки). Это позволило значительно уменьшить площадь кристалла, занимаемого матрицей переключений без существенного снижения свойств. Элементы ввода/вывода IOE (Input/Output Element - IOE) обслуживающие внешние выводы, подсоединяются непосредственно к каналам меж соединений.
Структура ПЛИС с архитектурой FPGA семейства Spartan фирмы Xiinx:
ПЛИС состоит из прямоугольной матрицы конфигурируемых логических блоков (Configurable Logic Block – CLB), окруженных блоками ввода/вывода (Input/Output Block - IOB), позволяющими реализовать двунаправленный ввод-вывод, третье состояние и т.п. Между CLB располагаются программируемые трассировочные линии. Особенностью современных ПЛИС является возможность тестирования узлов с помощью порта JTAG (B-Scan), а так же внутреннего генератора OSC и схем управления последовательной конфигурацией. От микросхем CPLD ПЛИС отличаются тем, что отдельные CLB не имеют индивидуальных выводов, соединенных с внешними выводами ПЛИС. Вместо этого функции преобразования сигналов выполняют выделенные ресурсы – IOB. Между матрицей CLB и блоками ввода/вывода имеются отдельные меж соединения, которые и обеспечивают подключение внешних сигналов. Такой подход весьма актуален ввиду значительно большей логической емкости микросхем FPGA по сравнению с CPLD (для CPLD максимальный логический объем составляет 512 макроячеек, а FPGA могут содержать 10-ки тысяч CLB).
Реализация элементов электрического интерфейса в отдельном блоке дает еще одно преимущество. В то время, как возможности управления электрическим интерфейсом в микросхемах CPLD ограничены установкой скорости нарастания выходного сигнала, блок ввода/вывода FPGA, представляющий собой отдельный элемент кристалла, как правило, обладает существенно большими возможностями. Современные семейства ПЛИС поддерживают до 20 электрических интерфейсов (включая TTL, CMOS, LBDS, LBPECL и др.). Тип интерфейса, реализуемый в каждом блоке, может быть установлен индивидуально. При этом информация о реализуемом блоком протоколе содержится в конфигурационной памяти и может быть задана в процессе проектирования устройства на базе ПЛИС.
Архитектура с разделенным расположением основных логических ресурсов и блоков ввода/вывода создает и некоторые трудности при проектировании топологии внутренних соединений. Если проекты, выполняемые в ПЛИС архитектуры CPLD, часто допускают 100%-ное использование макроячеек, то подобный результат для устройств FPGA является практически недостижимым. Это связано с тем, что выбранное алгоритмами трассировки кристалла взаимное расположение отдельных узлов проекта внутри ПЛИС может оказаться не удобным для последующего соединения их с блоками ввода/вывода. Для семейства Spartan можно ожидать успешной трассировки, относительно сложных проектов вплоть до 60-70% использования CLB.
Структура основного элемента FPGA фирмы Xilinx – CLB:
Базовая логическая ячейка ПЛИС структуры FPGA несколько отличается от макроячейки CPLD. Сравнение их архитектур выявляет 2 основных различия: 1) в состав CLB FPGA входят 2 триггера, 2) вместо достаточно мощного распределителя термов (конъюнкций), который в ПЛИС структуры CPLD может работать с 36 входными переменными, в FPGA используются 4-х входовые логические генераторы LUT.
В составе ПЛИС FPGA отсутствует Flash память для хранения конфигураций, поэтому все таблицы истинности логических элементов должны быть занесены в обычную статическую память. Ее фрагментами и является G и F LUT, которая представляет собой блоки памяти с организацией 16х1, способные воспроизводить любые функции 4-х переменных, значения которых могут быть переданы на выходы У и Х через мультиплексоры 4 и 6 при соответствующем их программировании. Через верхний вход мультиплексора 1 и нижний вход мультиплексора 2 функции G и F могут быть переданы на H-LUT (запоминающее устройство с организацией 8х1) для образования функции от функций с целью получения результирующей функции, зависящей от более чем 4-х аргументов. К 3-му входу H-LUT подключен входной сигнал H1 так, что H=f(G,G,H1). Аргументами для H-LUT, поступающими от мультиплексоров 1 и 2 в зависимости от их программирования может быть не только набор G,F,H1, но также наборы G,H1,DIN; SR,H1,DIN; SR,H1,F. Линии DIN (Data Input) и SR (Ser/Reset) используются либо для передачи в триггер непосредственно входных данных и сигнала установки/сброса, либо как входы H-LUT.
Перечисленные ресурсы логической части CLB позволяют воспроизводить следующие функции:
-
любую функцию с числом аргументов до 4-х + вторую такую же функцию + функцию с числом аргументов до 3-х
-
любую функцию 5 аргументов
-
любую функцию 4-х аргументов и одновременно некоторые функции 6 аргументов и некоторые функции с числом аргументов до 9.
Мультиплексоры 3-6 направляют те или иные сигналы на триггеры 1 и 2. Триггеры могут использоваться для фиксации и хранения входных сигналов LUT или же работать независимо от них. Входной сигнал DIN может быть прямым входом для любого триггера. Сигнал H1 тоже можно передавать любому триггеру, но через H-LUT, что вносит в цепь его передачи некоторую задержку. Оба триггера имеют общие выходы СК тактирования от сигнала К, разрешения тактирования ES и установки сброса SK.
Комбинаторная логика является в FPGA более значимым ресурсом, чем в CPLD. В то же время наличие 2-х триггеров в составе CLB позволяет реализовать на базе ПЛИС FPGA более сложное устройство, насыщенное регистрами, счетчиками и т.п.
Каждая LUT может быть использована как оперативное ЗУ с организацией 16х1 или как 16-разрядный сдвиговый регистр. Это дает возможность использовать в проектах небольшие по объему блоки распределенные по кристаллу памяти.
В процессе разработки цифровых устройств на базе ПЛИС Xilinx в общем случае можно выделить следующие этапы:
-
создание нового проекта (выбор семейства и типа ПЛИС, а также средств синтеза);
-
подготовка описания проектируемого устройства в схемотехнической, алгоритмической или текстовой форме;
-
синтез устройства;
-
функциональное моделирование;
-
размещение и трассировка проекта в кристалле;
-
временное моделирование;
-
программирование ПЛИС (загрузка проекта в кристалл).
Перед созданием нового проекта следует определиться с выбором метода описания разрабатываемого устройства и, соответственно, средств синтеза. Выбранное семейство или тип кристалла при необходимости достаточно легко можно изменить в процессе проектирования. Исходная информация о проектируемом устройстве может быть представлена в виде принципиальных схем, описаний на языке HDL, диаграмм состояний, пакетов и библиотек пользователя. На этом же этапе можно установить временные и топологические ограничения, которые должны учитываться при синтезе, размещении и трассировки проекта в кристалле. В процессе синтеза на основании исходных модулей проекта формируется список соединений (netlist). Результаты синтеза используются далее в качестве исходных данных средствами размещения и трассировки. Функциональное моделирование устройства производится без учета реальных значений задержек прохождения сигналов и позволяет проконтролировать соответствие выходных сигналов алгоритмам работы проектируемого устройства. На этапе размещения и трассировки проекта в кристалл производится распределение выполняемых функций в конфигурируемые логические блоки CLB (Configurable Logic Block) или макроячейки Macrocell, в зависимости от используемого семейства ПЛИС, и формирование необходимых связей в кристалле. Основным результатом этапа размещения и трассировки является формирование файла, в котором содержится информация о конфигурации ПЛИС, реализующей проектируемое устройство. Завершением процесса разработки цифрового устройства является загрузка конфигурационных данных в кристалл с помощью соответствующих программ и загрузочного кабеля. Этапы функционального и временного моделирования не являются обязательными. Тем не менее, не рекомендуется пренебрегать этими этапами, так средства моделирования позволяют обнаружить большинство возможных ошибок и, тем самым, значительно сократить общее время разработки устройства.
Выполнение этапов создания нового проекта и подготовки исходных описаний проектируемого устройства не зависит от выбора типа ПЛИС (CPLD или FPGA), используемого для его реализации.
В процессе проектирования средства пакета WebPACK ISE позволяют сформировать несколько видов моделей разрабатываемого устройства. После создания модулей исходного описания проекта генерируется поведенческая модель, которая позволяет выполнить их функциональную верификацию. На этой стадии проектирования отсутствует информация о значениях задержек распространения сигналов, поэтому при функциональном моделировании можно обнаружить только логические и синтаксические ошибки в описании разрабатываемого устройства. Таким образом, функциональное моделирование устройства позволяет выполнить предварительную верификацию проекта. На этом этапе фактически не учитываются временные характеристики и особенности архитектуры кристалла, на базе которого предполагается реализация проектируемой системы.
При выполнении моделирования средствами пакета WebPACK ISE автоматически создается пакетный файл, который содержит последовательность команд управления программой ModelSim, необходимых для проведения сеанса функционального моделирования проектируемого устройства. Далее автоматически производится запуск средств моделирования, сразу после инициализации которых выполняется этот командный файл. Информация о ходе выполнения пакетного файла отображается в консольной области основного окна программы ModelSim. При этом последовательно открываются дочерние окна этой программы, которые были указаны в параметрах инициализации. После завершения выполнения командного файла при необходимости моделирование может быть продолжено в интерактивном режиме. Наибольший интерес для разработчика представляют результаты моделирования, которые отображаются в графическом виде в окне временных диаграмм программы ModelSim.
4
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















