Типичные схемотехнические решения

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

Простейшими элементами, обеспечивающими конфигурирование микросхем на за­данное функционирование, являются рассмотренные ранее программируемые элемен­ты связей (перемычки типа «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 более разнообразны и могут представлять собою простые логические ячейки

типичные схемотехнические решения - student2.ru

(SLC, Small Logic Cells), схемы на основе мультиплексоров или табличные функцио­нальные преобразователи (LUTs, Look-Up Tables). Подробнее логические (функциональ­ные) блоки разных ИС ПЛ рассмотрены ниже, здесь же остановимся на способах повы­шения функциональной гибкости логической обработки сигналов, используемых как в FPGA, так и в CPLD.

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

1. Программирование полярности вырабатываемых функций. Этот прием наибо­лее характерен для CPLD , реализующих функции в форме ДНФ (SOP). В этом случае можно «сыграть» на том, что логическая функция F и ее инверсия типичные схемотехнические решения - student2.ru не идентичны по сложности и выражения для них могут иметь существенно различные числа термов. Имея возможность перехода от прямых значений функций к их инверсиям и наоборот, можно выбирать для реализации в основном логическом блоке более простую из этих форм независимо от того, какая из этих двух функций понадобится в последующих операциях. Схемотехнически программирование полярности логических переменных осуществля­ется с помощью двух входового элемента сложения по модулю 2, на один из входов которого подается логическая переменная, а на второй - константа «О» или «1» (рис. 7.10, а). Схема программируется заданием определенного состояния ключевому транзистору Т. Если он открыт и находится в низковольтном состоянии, то напряжение на нижнем входе элемента М2 отображает логический нуль и F = F* типичные схемотехнические решения - student2.ru 0 = F*. Если же тран­зистор заперт, то на нижнем входе элемента Ш. действует высокое напряжение, близкое к Ucc, т. е. отображается сигнал логического нуля и F = F* типичные схемотехнические решения - student2.ru 1 = F*.

типичные схемотехнические решения - student2.ru

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 реализуется регистро­вый вариант выхода (выходной сигнал снимается с триггера).

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

7.3.2. СВОЙСТВА ИС ПЛ, ВАЖНЫЕ ДЛЯ ИХ ПРИМЕНЕНИЯ В СОСТАВЕ СИСТЕМ

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

Уровни питающих напряжений.Имеются веские причины для перехода ко все мень­шим напряжениям как для питания микросхем в рабочих режимах, так и для программи­рования таких элементов, как ЛИЗМОП-транзисторы в схемах с памятью конфигурации типов EPROM и EEPROM. Если сравнительно недавно типовым значением питающего напряжения было 5 В, то сейчас все больше используются схемы с напряжениями пита­ния 3,3; 2,5; 1,8 и даже 1,6 В. Кроме того, исключаются требования повышенных напря­жений для программирования, и все процессы в схемах обеспечиваются с помощью внут­ренних средств от единого источника внешнего питания.

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

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

В число программируемых величин может входить так называемый Turbo bit, задаю­щий один из двух режимов, различающихся по соотношению скорость/мощность.

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

Свойство программируемости в системе.Схемы, обладающие этим свойством, на­зываются In-System Programmable (ISP). Свойство ISP могут иметь микросхемы с триг­герной памятью конфигурации (заметим, что термин «программируемость» появился в этом абзаце в связи с его наличием в английском термине ISP, по существу же он означает то же самое, что и термин «конфигурируемость»). Поскольку триггерная память теряет свое содержимое при выключении питания, схемы типа SRAM-based программи­руются при каждом включении питания. Свойство ISP означает, что реконфигурацию можно производить без изъятия микросхемы из системы, перезагружая файл конфигурации, что возможно и во время функционирования системы. Такая возможность позволяет стро­ить системы с многофункциональным использованием одних и тех же программируемых микросхем в качестве разных блоков системы, если эти блоки не используются одновре­менно, а также и другие варианты адаптивных систем.

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

Программирование крутизны фронтов.Известно, что одной из острых проблем при реализации цифровых устройств и систем является борьба с помехами, в том числе создаваемыми самими схемами этих устройств и систем. С целью снижения уровня воз­никающих импульсных помех для мощных буферов, прежде всего тех, которые форми­руют выходные сигналы кристалла, вводится программирование крутизны фронтов. Бит SLC (Slew Rate Control) задает режимы крутых или пологих фронтов. Рекомендуется вез­де, где допустимо, устанавливать режим пологих фронтов, создающий гораздо меньшие помехи. В критичных для быстродействия цепях с целью повышения производительнос­ти системы используются режимы крутых фронтов (т. е. быстрых переключений).

Наши рекомендации