- •Глава7 программируемая логика и ее применение в микропроцессорных системах
- •7.1. Общие сведения, классификация
- •7.1.1. Уровень интеграции интегральных схем (ис) и его влияние на качество цифровой аппаратуры и ее проектирование.
- •7. 1. 4. Области применения микросхем с программируемой логикой
- •7.2. Первые поколениямикросхем с программируемой структурой
- •7.2.1. Программируемые логические матрицы и программируемая матричная логика
- •7.2.2. Базовые матричные кристаллы
- •7.3. Типичные фрагменты схемотехники ис пл. Общие свойства ис пл
- •7.3.1. Типичные схемотехнические решения
- •7.3.2. Свойства ис пл, важные для их применения в составе систем
- •7.4. Fpga-программируемые пользователем вентильные матрицы
- •7.4.1. Архитектура и блоки fpga
- •7.4.2. Популярные fpga фирмы «xilinx»
- •7.5. Cpld - сложные программируемые логические устройства
- •7.5.1. Архитектура и блоки cpld
- •7.5.2. Популярные cpld фирмы «altera»
- •7.6. Сбис пл комбинированной архитектуры
- •7.6.1. Общие сведения
- •7.6.2. Сбис пл комбинированной архитектуры flex10k
- •7.7. Сбис программируемой логики типа «система на кристалле»
- •7.7.1. Общие сведения
- •7.7.2. Сбис пл с конфигурируемостью всех областей кристалла
- •7.7.3. Сбис пл класса «система на кристалле» с блочной архитектурой
- •7.8. Конфигурирование бис/сбис программируемой логики
- •7.9. Методика оценки параметров ис пл
- •7.9.1. Вводные замечания
- •7.9.2. Об оценке сложности микросхем программируемой логики
- •7.9.3. Об оценке быстродействия микросхем программируемой логики
- •7.9.4. Параметры популярных семейств микросхем программируемой логики
- •7.10. Аналоговые программируемые микросхемы
- •7.10.1 Общие сведения
- •7.10.2. Практические разработки
7.2.2. Базовые матричные кристаллы
Представителями БИС/СБИС первого поколения для микросхем с программируемыми структурами были и базовые матричные кристаллы (БМК), называемые также вентильными матрицами (ВМ). Второй из этих терминов менее распространен, хотя и удобен тем, что совпадает с английским обозначением таких БИС/СБИС - Gale Array (GA).
Основой БМК является его внутренняя область, в которой регулярно (по строкам и столбцам) расположены базовые ячейки или их компактные группы, между которыми оставлены горизонтальные и вертикальные зоны (каналы) для реализации межсоединений. Базовые ячейки - совокупности нескоммутированных схемных элементов, на основе которых при том или ином варианте схемных межсоединений реализуются определенные схемы (функциональные ячейки). В периферийных областях БМК размещены периферийные ячейки, выполняющие операции ввода/вывода сигналов.
БМК получили название полузаказных БИС/СБИС, хорошо отражающее их главную особенность. В отличие от полностью заказных БИС/СБИС, которые проектируются по индивидуальному заказу, БМК примерно на 3/4 стандартны. Независимо от конкретного потребителя делается матрица базовых ячеек и периферийные ячейки. Специализация кристалла, т. е. получение на его основе требуемой схемы (такие схемы называют МАБИС или БИСМ), производится с помощью заключительных операций создания металлизированных межсоединений. Таким образом, для превращения полуфабриката БМК в МАБИС требуется разработка лишь малого числа дорогостоящих фотошаблонов. Сам же БМК сравнительно недорог, так как выпускается как массовая продукция широкого потребления. Сроки и стоимость проектирования МАБИС в 3—4 раза меньше, чем аналогичные показатели для полностью заказных БИС/СБИС. Понятно также, что сокращение в 3-4 раза очень больших сумм все же оставляет стоимость проектирования МАБИС довольно высокой, так что их использование экономически целесообразно при достаточно большой тиражности производства. Область целесообразного применения МАБИС зависит от конкретных условий, нередко она начинается с объемов выпуска в 5-10 тыс. экземпляров.
Проектирование МАБИС облегчается тем, что разработчики БМК предоставляют проектировщику обширную библиотеку функциональных ячеек, т. е. вариантов готовых решений, соответствующих той или иной схеме (логическим элементам, триггерам, более сложным узлам).
Платой за сокращение сроков и стоимости проектирования является неоптимальность МАБИС, быстродействие и компактность которой уступают тем, которые можно было бы получить при полностью заказном проектировании реализуемой схемы. Это вполне объяснимо, так как отсутствие ориентации БМК на конкретный проект означает неполное использование его элементов в составе данной МАБИС, неминимальность длин связей между схемными элементами и т. д.
7.3. Типичные фрагменты схемотехники ис пл. Общие свойства ис пл
7.3.1. Типичные схемотехнические решения
Разработкой и производством микросхем программируемой логики занимаются десятки фирм, каждая из которых выпускает обычно одновременно несколько семейств микросхем. Семейства, в свою очередь, представлены совокупностью микросхем, отличающихся своими архитектурными и схемотехническими особенностями. Так образуется чрезвычайно большое число вариантов микросхем, и на первый взгляд сориентироваться в их многообразии достаточно сложно. Вместе с тем при внимательном рассмотрении обнаруживается, что для построения разных вариантов микросхем программируемой логики используется та или иная комбинация типичных элементов и блоков, число которых относительно невелико. Такие элементы и блоки рассмотрены ниже.
Простейшими элементами, обеспечивающими конфигурирование микросхем на заданное функционирование, являются рассмотренные ранее программируемые элементы связей (перемычки типа «antifuse», ЛИЗМОП-транзисторы с плавающим затвором, ключевые транзисторы, управляемые триггерами памяти конфигурации). Такие элементы могут просто замыкать или размыкать участки цепей, в которые они включены, либо входить в схемы резисторных делителей напряжения с программируемым коэффициентом деления для задания сигналов логического нуля или логической единицы. На рис. 7.9, а показан делитель напряжения, состоящий из резистора с постоянным сопротивлением R и программируемого сопротивления Rn, выходное напряжение делителя U = Ucc Rпр /(R + Rnp). В зависимости от программирования сопротивление Rnp имеет значения Rпр « R или Rпр » R. В первом случае напряжение U мало (близко к нулю) и с делителя снимается "сигнал логического нуля, во втором случае значение U близко к Uсс и соответствует логической единице.
Для конфигурирования межсоединений, а также построения логических блоков используются программируемые мультиплексоры. В первом из названных режимов (рис. 7.9, б) мультиплексор можно условно отобразить в виде переключателя, который под управлением адресующих входов (в данном случае это двухразрядное двоичное число ef) передает на выход Fодну из входных величин -а,b,с или d. На линии каждого входа отмечена комбинация адресующих величин, подключающая данный вход к выходу мультиплексора. В условном обозначении программируемого мультиплексора в режиме коммутации сигналов (рис. 7.9, в) факт программируемости обозначается кружком на адресующем входе. При программировании устанавливается определенный код еf и соответственно ему связь между выходом схемы и одним из входов. Для часто применяемых программируемых мультиплексоров размерности 2-1 условное обозначение имеет вид, изображенный на рис. 7.9, г. Комбинации адресующих величин против линий входов могут и не показываться, если в этом нет необходимости.
В п. 7.1.2 указано, что логические блоки CPLD выполняются как двухуровневые схемы И-ИЛИ, на входы которых подаются парафазные входные переменные. Логические блоки FPGA более разнообразны и могут представлять собою простые логические ячейки
(SLC, Small Logic Cells), схемы на основе мультиплексоров или табличные функциональные преобразователи (LUTs, Look-Up Tables). Подробнее логические (функциональные) блоки разных ИС ПЛ рассмотрены ниже, здесь же остановимся на способах повышения функциональной гибкости логической обработки сигналов, используемых как в FPGA, так и в CPLD.
Из числа приемов дополнительной обработки сигналов, получаемых от основных логических блоков, можно выделить следующие.
1. Программирование полярности вырабатываемых функций. Этот прием наиболее характерен для CPLD , реализующих функции в форме ДНФ (SOP). В этом случае можно «сыграть» на том, что логическая функция F и ее инверсия не идентичны по сложности и выражения для них могут иметь существенно различные числа термов. Имея возможность перехода от прямых значений функций к их инверсиям и наоборот, можно выбирать для реализации в основном логическом блоке более простую из этих форм независимо от того, какая из этих двух функций понадобится в последующих операциях. Схемотехнически программирование полярности логических переменных осуществляется с помощью двух входового элемента сложения по модулю 2, на один из входов которого подается логическая переменная, а на второй - константа «О» или «1» (рис. 7.10, а). Схема программируется заданием определенного состояния ключевому транзистору Т. Если он открыт и находится в низковольтном состоянии, то напряжение на нижнем входе элемента М2 отображает логический нуль и F = F* 0 = F*. Если же транзистор заперт, то на нижнем входе элемента Ш. действует высокое напряжение, близкое к Ucc, т. е. отображается сигнал логического нуля и F = F* 1 = F*.
2. Организация двунаправленных выводов. В зависимости от конкретного проекта для ИС ПЛ одной и той же сложности могут потребоваться различные соотношения чисел входов и выходов. Поэтому специализация выводов и жесткое разделение их на входы и выходы сужает функциональные возможности микросхемы. Вследствие этого широкое применение находят микросхемы с двунаправленными выводами, которые путем программирования можно сделать либо входами, либо выходами. Микросхема, имеющая т специализированных входов, n специализированных выходов и р двунаправленных выводов, может программироваться на число входов от т до т + р и на число выходов от n до n + р при условии, что в сумме число выводов не превысит m + n + р. Схемотехнически это реализуется с помощью буферов, имеющих третье состояние (рис 7.10, б). Если сигналом ОЕ1 (Output Enable 1) буфер 1 разрешен, то вывод является выходом и переменная F поступает на внешний контакт (КП - контактная площадка). Если буфер 1 находится в третьем состоянии «отключено», а буфер 2 разрешен сигналом ОЕ2, то вывод служит входом. При этом входной сигнал преобразуется буфером 2 в парафазный. При активном буфере 1 через буфер 2 можно подавать в схему сигнал обратной связи, что также существенно увеличивает функциональные возможности микросхемы.
Если сигнал управления буфером 1 вырабатывается как терм, формируемый в матрице И, то возможны такие варианты программирования функций вывода:
вывод является входом, если терм ОЕ1 запрограммирован на константу 0;
вывод является простым выходом, если терм ОЕ1 запрограммирован на константу 1, а сигнал ОЕ2 запрещает буфер 2;
выходной сигнал подается как сигнал обратной связи, если разрешена работа обоих буферов, причем выходной сигнал может вырабатываться постоянно при неизменном разрешающем сигнале ОЕ1 или появляться только в момент возникновения определенной комбинации входных переменных матрицы И соответственно программированию терма ОЕ1.
3. Введение триггеров. Еще один прием обогащения функциональных возможностей микросхем программируемой логики - введение триггеров в их макроячейки (это понятие объясняется ниже) или непосредственно в логические блоки, причем чаще всего логическое функционирование триггеров программируется. Обычно триггеры строятся на основе триггера типа D и дополнительных логических элементов. Триггеры типа D легко обеспечивают режим триггера типа Т (рис. 7.10, в) с помощью подключенных к ним элемента М2 и программируемого мультиплексора 1.
Если мультиплексор запрограммирован на передачу сигнала от верхнего входа D, то триггер работает как триггер типа D , принимая по разрешению тактового сигнала ТИ значение F. Если мультиплексор 1 запрограммирован на передачу сигнала от нижнего входа, то под воздействием тактового сигнала при F = 0 триггер принимает свое собственное состояние Q, т. е. находится в режиме хранения, а при F= 1 - инверсию своего состояния, т. е. переключается. Отсюда видно, что триггер функционирует как синхронный Т-триггер, ко входу Т которого подключен сигнал F.
В ряде микросхем программируемой логики возможно программирование триггеров на режимы не только D и Т, но и JK, RS (с помощью дополнительной внешней логики).
Для обогащения функциональных возможностей микросхем часто программируется тип выхода как комбинационный (combinatorial) или регистровый (registered). Для этого также используются программируемые мультиплексоры. Из рис. 7.10, в видно, что при программировании мультиплексора 2 на передачу сигнала от входа С реализуется комбинационный вариант выхода, когда величина F в обход триггера передается прямо на выход, а при передаче через мультиплексор сигнала от входа R реализуется регистровый вариант выхода (выходной сигнал снимается с триггера).
Перечисленные приемы повышения функциональной гибкости микросхем программируемой логики являются наиболее общими и характерны для многих из них. Ряд приемов более специфичен, такие приемы будут рассмотрены при описании конкретных разновидностей микросхем или их блоков.