Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК Б1_В_12 - ИУЭ_2.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
9.76 Mб
Скачать

2.1.2Архитектуры плис.

ПЛИС – удобные в освоении и применении элементы, альтернативы которым зачастую не найти. Последние годы характеризуются резким ростом плотности упаковки элементов на кристалле, многие ведущие производители либо начали серийное производство, либо анонсировали ПЛИС с эквивалентной емкостью более 1 млн. логических вентилей. Цены на ПЛИС неуклонно падают. Еще несколько лет назад ПЛИС емкостью 100 000 вентилей стоила от 1500 до 3000 долларов, а сейчас такая микросхема стоит от 100 до 350 долларов, то есть цены упали практически на порядок, и эта тенденция устойчива. В продаже появились ПЛИС емкостью 10000…30000 логических вентилей стоимостью менее 10 долларов.

Приведем классификацию ПЛИС по структурному признаку, так как она дает наиболее полное представление о классе задач, пригодных для решения на той или иной ПЛИС. Следует заметить, что общепринятой оценкой логической емкости ПЛИС является число эквивалентных вентилей, определяемое как среднее число вентилей "2И-НЕ", необходимых для реализации эквивалентного проекта на ПЛИС и базовом матричном кристалле (БМК). Понятно, что эта оценка весьма условна, поскольку ПЛИС не содержат вентилей "2И-НЕ" в чистом виде, однако для проведения сравнительного анализа различных архитектур она вполне пригодна. Основным критерием такой классификации является наличие, вид и способы коммутации элементов логических матриц. По этому признаку можно выделить несколько классов ПЛИС.

1. Программируемые логические матрицы ПЛМ (PLA, Programmable Logic Array) – ПЛИС, имеющие программируемые матрицы И и ИЛИ. Примерами таких ПЛИС могут служить отечественные схемы K556PT1,PT2,PT21. Недостаток такой архитектуры – слабое использование ресурсов программируемой матрицы "ИЛИ".

2. Программируемая матричная логика ПМЛ (PAL) – это ПЛИС, имеющие программируемую матрицу "И" и фиксированную матрицу "ИЛИ". К этому классу относятся большинство современных ПЛИС небольшой степени интеграции. В качестве примеров можно привести отечественные ИС КМ1556ХП4, ХП6, ХП8, ХЛ8, ранние разработки ПЛИС фирм INTEL, ALTERA, AMD и др.

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

3. Базовые матричные кристаллы БМК, второе название которых – вентильные матрицы ВМ (GA, Gate Array), представляют собой набор несоединенных логических элементов.

4. Программируемые вентильные матрицы ПВМ (FPGA, Field Programmable Gate Array) состоят из логических блоков (ЛБ) и коммутирующих путей – программируемых матриц соединений. Логические блоки таких ПЛИС состоят из одного или нескольких относительно простых логических элементов, в основе которых лежит таблица перекодировки, программируемый мультиплексор, D-триггер, а также цепи управления. Таких простых элементов может быть достаточно много, например, у современных ПЛИС eмкостью до 1 млн. вентилей число логических элементов достигает нескольких десятков тысяч. За счeт такого большого числа логических элементов они содержат значительное число триггеров, а также некоторые семейства ПЛИС имеют встроенные реконфигурируемые модули памяти, что делает ПЛИС данной архитектуры весьма удобным средством реализации алгоритмов цифровой обработки сигналов, основными операциями в которых являются перемножение, умножение на константу, суммирование и задержка сигнала. Вместе с тем, возможности комбинационной части таких ПЛИС ограничены.

5. Программируемые коммутируемые матричные блоки ПКМБ (CPLD, Complex Programmable Logic Devices) содержат несколько матричных логических блоков (каждый из которых имеет структуру ПЛМ), объединенных коммутирующей матрицей. ПКМБ чаще применяют для реализации управляющих и интерфейсных схем

6. Программируемые аналоговые интегральные схемы ПАИС (FPAA, Functional Programmable Analog Array) – содержат комбинацию как цифровых, так и аналоговых элементов.

7. Система на кристалле SOРC (System On Programmable Chip), имеющая другое название – SoC (System-on-Chip). Дальнейшее развитие архитектур идeт по пути создания комбинированных архитектур, сочетающих удобство реализации алгоритмов ЦОС на базе таблиц перекодировок и реконфигурируемых модулей памяти, характерных для FPGA-структур и многоуровневых ПЛИС с удобством реализации цифровых автоматов на CPLD-архитектурах. В основе идеи SOРC лежит интеграция всей электронной системы в одном кристалле (например, в случае ПК такой чип объединяет процессор, память, и т. д.). Компоненты этих систем разрабатываются отдельно и хранятся в виде файлов параметризируемых модулей. Окончательная структура SOPC-микросхемы выполняется на базе этих "виртуальных компонентов" с помощью программ систем автоматизации проектирования (САПР) электронных устройств – EDA (Electronic Design Automation). Благодаря стандартизации в одно целое можно объединять "виртуальные компоненты" от разных разработчиков.

Программируемые логические матрицы (PLA)

Программируемые логические матрицы появились в середине 70-х годов. Основой их служит последовательность программируемых матриц элементов И и ИЛИ. В структуру входят также блоки входных и выходных буферных каскадов (БВХ и БВЫХ).

Входные буферы, если они не выполняют сложных действий, преобразуют однофазные входные сигналы в парафазные и формируют сигналы необходимой мощности для питания матрицы элементов И.

Выходные буферы обеспечивают необходимую нагрузочную способность выходов, разрешают или запрещают выход ПЛМ на внешние шины с помощью сигнала ОЕ, а иногда выполняют и более сложные действия.

Рис. 4.1. Базовая структура ПЛМ

Основными параметрами ПЛМ (рис. 4.1) являются число входов m, число термов l и число выходов n.

Переменные x1xm подаются через БВX на входы элементов И (конъюнкторов), и в матрице И образуются l термов t.

Под термом здесь понимается конъюнкция, связывающая входные переменные, представленные в прямой или инверсной форме. Число формируемых термов равно числу конъюнкторов или, что то же самое, числу выходов матрицы И. Термы подаются далее на входы матрицы ИЛИ, т. е. на входы дизъюнкторов, формирующих выходные функции. Число дизъюнкторов равно числу вырабатываемых функций n.

Таким образом, ПЛМ реализует дизъюнктивную нормальную форму (ДНФ) воспроизводимых функций (двухуровневую логику). ПЛМ способна реализовать систему n логических функций от m аргументов, содержащую не более l термов. Воспроизводимые функции являются комбинациями из любого числа термов, формируемых матрицей И. Какие именно термы будут выработаны и какие комбинации этих термов составят выходные функции, определяется программированием ПЛМ.

Выпускаются ПЛМ как на основе биполярной технологии, так и на МОП-транзисторах. В матрицах имеются системы горизонтальных и вертикальных связей в узлах, пересечения которых при программировании создаются или ликвидируются элементы связи.

На рис. 4.2, а в упрощенном виде (без буферных элементов) показана схемотехника биполярной ПЛМ К556РТ1 с программированием пережиганием перемычек. Показан фрагмент для воспроизведения системы функций размерностью 4, 7, 3: параметры микросхемы К556РТ1 обеспечивают размерность 16, 48, 8, что достаточно для ее использования при решении указанной системы.

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

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

Рис. 4.2. Схемотехника ПЛМ, реализованной в биполярной технологии(а), элементы связей в матрицах И (б) и ИЛИ (в)

Элементами связи в матрице ИЛИ служат транзисторы (рис. 4.2, в), включенные по схеме эмиттерного повторителя относительно линий термов и образующие схему ИЛИ относительно выхода (горизонтальной линии). На рис. 4.2, в показана выработка функции F1. Работа схемы ИЛИ, реализована в виде параллельного соединения эмиттерных повторителей.

При изображении запрограммированных матриц наличие элементов связей (целые перемычки) отмечается точкой в соответствующем узле.

Для подбора ПЛМ минимальной сложности, следует уменьшить по возможности число термов в рассматриваемой системе функций. Содержанием минимизации функций будет поиск кратчайших дизъюнктивных форм. Вести поиск минимальных по числу термов представлений задачи следует до уровня, когда число термов становится равным l – параметру обеспечиваемому ПЛМ. Дальнейшая минимизация не требуется. Если размерность имеющихся ПЛМ обеспечивает решение задачи в ее исходной форме, то минимизация не требуется вообще, т. к. не ведет к сокращению оборудования.

Программирование ПЛМ, выполняемое пользователем, проводится с помощью специальных устройств (программаторов) и сведения для них должны иметь определенную форму. Имеются программаторы, которые принимают в качестве информации о ПЛМ таблицу функционирования (истинности), однако удобнее задавать сведения о самих перемычках. Символы, используемые при таком задании сведений для программирования ПЛМ:

Н – переменная входит в терм в прямом виде, т. е. нужно оставить целой перемычку прямого входа и пережечь перемычку инверсного входа;

L – переменная входит в терм в инверсном виде, т. е. нужно сохранить перемычку у инверсного входа и пережечь у прямого;

«–» – переменная не входит в терм и не должна влиять на него, т. е, нужно пережечь перемычки обоих входов.

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

А – указывается в выходном столбце (столбце функции) и свидетельствует о связи данной схемы И с выходом ПЛМ через матрицу ИЛИ. Перемычка должна быть сохранена.

« • » – указывает на то, что данная схема И не подключается к выходу и должна иметь пережженную перемычку в матрице ИЛИ.

В принятой символике для программирования ПЛМ взятого ранее примера сведения будут заданы таблицей (таблица 27.1).

Таблица 27.1

Символика программирования ПЛМ

x1

x2

x3

x4

F1

F2

F3

L

L

H

A

A

H

L

A

H

L

A

A

H

L

L

A

H

H

H

A

H

L

H

A

H

L

A

Схемы ПЛМ достаточно громоздки, и поэтому изображать их желательно с максимально возможным упрощением. Используются изображения, в которых многовходовые элементы И, ИЛИ условно заменяются одновходовыми.

Единственная линия входа таких элементов пересекается с несколькими линиями входных переменных. Если пересечение отмечено точкой, данная переменная подается на вход изображаемого элемента, если точки нет, то переменная на элемент не подается. Пример многовходового конъюнктора с входами показан на рис. 4.3, а. Схема, изображенная на рис. 4.2, в новом упрощенном изображении имеет вид, приведенный на рис. 4.3, б.

Рис. 4.3. Упрощенное изображение схемы многовходового логического элемента (а) и ПЛМ (б)

Программируемая матричная логика (PAL)

Программируемая матричная логика ПМЛ – это ПЛИС, имеющие программируемую матрицу "И" и фиксированную матрицу "ИЛИ". Фрагмент схемы ПМЛ приведен на рис. 4.4, где на пересечении шин входных переменных xi и шин входных выводов И условно показано наличие всех перемычек ( • ). Программирование ПМЛ выполняется устранением лишних с точки зрения реализуемого алгоритма связей между указанным шинами.

Рис.4.4. Фрагмент схемы ПМЛ

По сравнению с ПЛМ эта схема имеет меньшую функциональную гибкость, так как матрица ИЛИ фиксирована, но их изготовление и использование проще.

В ПМЛ имеется ограничение на максимальное число конъюнкций в логических функциях, поскольку матрица ИЛИ фиксирована. Это приводит к необходимости минимизировать логическую функцию при ее реализации с использованием ПМЛ.

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

Базовые матричные кристаллы (GA)

Базовые матричные кристаллы (БМК) – альтернатива полностью заказным БИС и СБИС, проектирование и изготовление которых является достаточно дорогостоящим процессом и оправдано только при больших сериях. БМК явились тем средством, на основе которых при сравнительно низких затратах стало возможным выполнение специализированных устройств в виде БИС.

БМК – совокупность регулярно расположенных на полупроводниковых кристаллах топологических ячеек, между которыми оставлены свободные зоны для создания межсоединений. Такой кристалл является полуфабрикатом, который производится в массовых количествах без ориентации на конкретного потребителя. Чтобы на его основе было получено конкретное устройство, необходимо выполнить требуемые соединения элементов и ячеек. Выполнение соединений осуществляется на заключительных этапах изготовления, а проектирование устройства сводится к созданию рисунка межсоединений. Такие БИС/СБИС называют полузаказными. Процесс проектирования и изготовления такой микросхемы значительно дешевле, чем разработка и изготовление оригинальной БИС.

Недостатком БМК является неоптимальность результата проектирования, который проявляется в худшем использовании площади кристалла (часть элементов не используется) по сравнению со специализированными БИС и меньшем быстродействии.

В настоящее время с БМК применяются технологии КМОП, ТТЛШ, ЭСЛ. Уровень интеграции БМК достиг десятков миллионов вентилей на кристалле.

Внутренняя организация БМК представлена следующими элементами.

Базовая ячейка (БЯ) – набор схемных элементов, регулярно повторяющихся на кристалле. БЯ бывают нескоммутированными и частично скоммутированными. БЯ внутренней области называются матричными БЯ, ячейки периферийной зоны – периферийными БЯ. Соединением компонентов БЯ можно сформировать один логический элемент, из которых соответственно можно сформировать любой функциональный узел.

Функциональная ячейка (ФЯ) – функционально законченная схема, реализуемая путем соединения компонентов в пределах одной или нескольких БЯ.

Библиотека функциональных ячеек – совокупность ФЯ, используемых при проектировании. Эта библиотека содержит типовые подсхемы, предназначенные для решения стандартных задач. Библиотека содержит большое число функциональных элементов, узлов и их частей. Библиотеки избавляют проектировщика схем на БМК от рутинной работы создания стандартных подсистем. Работая с библиотекой, он ведет проектирование на функционально-логическом уровне, поскольку проблемы схемотехнического уровня уже решены при создании библиотеки.

Каналы трассировки – пути на БМК, позволяющие осуществлять межсоединения ячеек.

Канальные БМК (рис. 4.5, а) представляют собой матрицу ячеек, которые располагаются в центральной области кристалла и изолированы друг от друга. Области кристалла, не занятые ячейками, служат для выполнения соединений между ячейками – организаций каналов трассировки. У канальных БМК больше возможности по созданию связей, но низкая плотность упаковки из-за значительных затрат площади кристалле на области межсоединений. Эта структура использует биполярные транзисторы.

Бесканальные БМК (рис. 4.5, б) представляют собой структуру, в которой вся внутренняя область заполнена ячейками. В этой структуре любая область может быть использована как для создания логической схемы, так и для создания межсоединений. Бесканальные БМК характерны для КМОП-схемотехники, в которой малая мощность рассеяния базовых ячеек позволяет добиваться высокой плотности упаковки. Бесканальные БМК реализуются в вариантах «море вентилей» и «море транзисторов». Первый содержит массив законченных логических элементов, второй – массив транзисторов.

Рис. 4.5. Структуры БМК канального (а), бесканального (б) и блочного (в) типов: 1 – базовые ячейки: 2 – каналы трассировки

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

Блочные БМК (рис. 4.5, в) содержат как блоки логической обработки данных, так и память или другие специализированные блоки. Каждый из таких блоков представляет собой БМК в миниатюре. Между этими блоками располагаются трассировочные каналы. На периферии блоков размещают внутренние буферные каскады для формирования сигналов, обеспечивающих передачу сигналов по межблочным связям, имеющим относительно большую длину.

Основой БМК является кристалл полупроводника, на котором расположена матрица базовых ячеек, а по его краям – периферийные ячейки, содержащие элементы ввода/вывода сигналов, контактные площадки, выходные усилители и т.д. БМК выполняют многослойными (число слоев 2…6), что позволяет выполнять микросхемы более высокого уровня интеграции.

БМК, в зависимости от схемотехнической разновидности базовых ячеек, подразделяют на цифровые, аналоговые и аналого-цифровые. Аналоговые БМК позволяют реализовать операционные усилители, коммутаторы, фильтры и т.д. Они менее распространены по сравнению с цифровыми.

Программируемые вентильные матрицы (FPGA)

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

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

В современных ПЛИС используются следующие типы ключей:

- перемычки типа antifuse (создаваемые в процессе программирования);

- ЛИЗМОП-транзисторы с плавающим затвором;

- ключевые МОП транзисторы, управляемые триггерами памяти конфигурации.

Первый тип ключей организован по принципу ПЗУ (ROM), второй – по принципу EEPROM или Flash. Информация о конфигурации системы не стирается при выключении питания.

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

Именно МОП ключи с управляющими триггерами сейчас доминируют, что обусловлено их технологической однородностью с другими частями ПЛИС.

Типичным примером FPGA ПЛИС могут служить микросхемы семейства Spartan фирмы XILINX.

Центральную часть кристалла занимает матрица конфигурируемых логических блоков (CLB, Configurable Logic Blocks), объединенных с помощью матрицы каналов соединений(Routing Channels). Характерными для FPGA-архитектур являются элементы ввода/вывода (IOB, Input/Output Blocks), позволяющие реализовать двунаправленный ввод/вывод, третье состояние. По углам кристалла расположены вспомогательные блоки – внутренний генератор (OSC), схема инициализации (Start-Up) и т.д.

Средства коммутации, связанные с блоками ввода/вывода, сведены в так называемый VersaRing Routing Channel, окружающий внутреннюю область кристалла. Они связывают IOB с каналами трассировки. С помощью VersaRing можно перераспределять внешние контакты микросхемы относительно выводов, сформированных во внутренней области кристалла.

Рис.4.6. Структура FPGA

Особенностью современных ПЛИС является возможность тестирования узлов с помощью порта JTAG (B-SCAN). Порт JTAG полезен не только для программирования. Через него компьютер может получить информацию о логических уровнях на всех выводах ПЛИС и в контрольных точках внутри нее.

Программируемые коммутируемые матричные блоки (CPLD)

Программируемые коммутируемые матричные блоки (ПКМБ, CPLD) явились дальнейшим развитием ПМЛ. CPLD состоят из программируемой матрицы соединений (ПМС), логических блоков (ЛБ), имеющих архитектуру ПМЛ. Такие логические блоки содержат макроячейки, каждая из которых включает программируемые матрицы логических элементов И, фиксированных матриц ИЛИ и других элементов. На периферии кристалла расположены блоки ввода/вывода (БВВ), осуществляющие прием и передачу сигналов между кристаллом микросхемы и контактными площадками. Фрагмент структуры CPLD приведен на рис. 4.7.

CPLD представляет собой объединение нескольких ПМЛ в единое устройство средствами программируемой коммутационной матрицы. Контроллеры интерфейсов JTAG и ISP предназначены для конфигурирования и тестирования создаваемых структур.

Система коммутации CPLD отличается от системы коммутации FPGA. Она является не сегментированной, а непрерывной системой связей и обеспечивает возможность коммутации логических блоков друг с другом, подачи на требуемые входы логических блоков сигналов от различных источников: сигналов обратной связи, входных и выходных сигналов и т.д.

Рис.4.7. Фрагмент структуры CPLD

Вся коммутация сигналов внутри кристалла осуществляется программируемой матрицей связи. Фрагмент программируемой матрицы связи представлен на рис. 4.8.

Рис.4.8. Фрагмент схемы программируемой матрицы связи

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

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

Блоки ввода/вывода обеспечивают возможность гибкого управления выходными буферами и позволяют организовывать режимы работы с выхода с открытым коллектором и с тремя состояниями.

Конфигурация CPLD осуществляется чтением данных конфигурации, расположенных в памяти типа EEPROM или Flash. Эта память, как правило, расположена на самом кристалле CPLD. Содержимое памяти конфигурации обычно защищается битом секретности, сбросить который можно только при стирании всего содержимого памяти конфигурации.

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

Существуют ПЛИС типа FLEX, занимающие промежуточное положение между CPLD и FPGA. Их архитектура содержит элементы как одного, так и другого типа ПЛИС. FLEX содержат табличные логические модули на основе программируемых ПЗУ (LUT), а сами логические блоки располагаются в виде матрицы, при этом трассировочные каналы проходят горизонтально и вертикально между ЛБ. Эти признаки характерны для FPGA. В то же время межсоединения выполняются не на основе сегментов, коммутируемых с помощью программируемых ключей, а на основе программируемых матриц связи, что характерно для CPLD.