СХЕМОТЕХНИКА ЭВМ_18.2.17 (855859), страница 19
Текст из файла (страница 19)
Вопрос 1. Что такое синхронная схема?
Вопрос 2.Чем отличаются методы параллелизма и конвейеризации?
Вопрос 3. Что такое латентность конвейера?
Вопрос 4. Что такое управляемый синхросигнал и почему его не рекомендуется применять в быстродействующих схемах
Вопрос 5. Как подсчитать время тактового периода при известной задержке критического пути в синхронной схеме?
Вопрос 6. Чем определяется разброс моментов поступления синхросигнала в различные участки схемы?
Упражнение
Применяя методы параллелизма и конвейеризации разработайте структуру схемы с минимальным периодом обработки 10- разрядных входных сигналов Х по алгоритму Ут=Ут-1 *К1 +Ут-2 * К2 + Х *К3. при временах выполнения операции умножения Тумн=2* Тслож и К- константах.
ГЛАВА 6. ПРОГРАММИРУЕМЫЕ ЛОГИЧЕСКИЕ ИНТЕГРАЛЬНЫЕ СХЕМЫ (ПЛИС). (Лекции 13-14)
Программируемые логические интегральные схемы (ПЛИС) – в англоязычной терминологии PLD (Programmable Logic Device) – одно из перспективных направлений развития элементной базы современной цифровой, а в последнее время и аналого-цифровой электроники. Их применение дает разработчику возможность быстро и с малыми затратами создавать сложные устройства, многократно менять и совершенствовать их функции в ходе отладки путем перепрограммирования функций и связей элементов .
Преимущества и недостатки применения ПЛИС
Достоинства ПЛИС
1) Небольшой период от начала процесса проектирования устройств на ПЛИС до выпуска серийной продукции.
2) Возможность организации мелкосерийного производства без больших начальных вложений в технологию.
3) Использование ПЛИС позволяет выпускать высокотехнологичные электронные изделия даже в странах не производящих современных Больших Интегральных Схем (БИС).
4) САПР ПЛИС на порядок дешевле и проще в освоении, чем САПР БИС.
4) Применением ПЛИС обеспечивается относительная простота исправления ошибок проектировщиков в процессе отладки изделий.
5) В проектах на ПЛИС меньше проблем с разводкой и расфазировкой синхросигналов за счет использования встроенных в микросхемы ПЛИС соответствующих средств.
6) При использовании ПЛИС легче решаются задачи согласования интерфейсов микросхем за счет возможности перенастройки блоков ввода–вывода ПЛИС на множество различных сигнальных стандартов.
7) Отладка и тестирование аппаратуры на ПЛИС упрощается, как за счет обязательной реализации в них стандарта периферийного сканирования JITAG, так и возможности встраивания в проекты (на стадии их отладки) схем логических анализаторов. В последнем случае микросхема ПЛИС сама накапливает временную диаграмму интересующих разработчиков сигналов, которую потом можно вывести и проследить на компьютере.
8) ПЛИС – идеальная база для обучения студентов цифровой схемотехнике и САПР.
9) ПЛИС особенно эффективны при реализации принципа массового параллелизма, например в устройствах цифровой обработки сигналов (DSP–Digital Signal Processing).
10) ПЛИС– удобное средство для создания и исследования прототипов и макетов устройств перед их реализацией в виде БИС.
Основные недостатки ПЛИС по сравнению с БИС.
1) Площадь, занимаемая схемой проекта на кристалле ПЛИС больше, а быстродействие меньше, чем у тех же проектов, реализованных в виде заказных БИС, при одинаковых технологических нормах изготовления микросхем (за гибкость приходится платить).
2) Надежность аппаратуры, реализованной на ПЛИС меньше, чем у функционально эквивалентной аппаратуры, реализованной в виде заказных БИС.
3) Стоимость изделий на БИС при больших сериях производства этих изделий меньше, чем на ПЛИС.
4) При эмбарго на поставки современных ПЛИС сложно решаются вопросы импортозамещения.
В настоящее время наиболее распространены две архитектуры ПЛИС: СPLD и FPGA (Field Programmable Gate Array). Основными производителями ПЛИС являются американские фирмы XILINX и ALTERA. Фирма XILINX немного (примерно на год), идет впереди, и в дальнейшем мы в качестве примеров будем ссылаться на продукцию этой фирмы. Тем более, что в соответствии с программой помощи университетам (XUP–Xilinx University Program) фирма XILINX бесплатно снабжает учебные заведения полной версией своих систем автоматизации проектирования ПЛИС ISE (Integrated Software Environment) и VIVADO.
6.1. Структуры первых ПЛИС.
Прототипами современных ПЛИС типа CPLD являлись микросхемы ПЛМ – программируемые логические матрицы (PLA–Programmable Logic Array) и ПМЛ – программируемая матричная логика (PAL–Programmable Array Logic).
6.1.1. Программируемая Логическая Матрица (ПЛМ).
ПЛМ – комбинационная схема, которая имеет N входов и M выходов.
Пример-входы IN и выходы OUT на рис 6.1. Она состоит из двух блоков– матрицы И и матрицы ИЛИ (рис.6.1), а так же входных и выходных буферов. Матрица И представляет собой совокупность из К штук 2*N– входовых схем И, образующих строки матрицы (термы). На строки из входных буферов поступают прямые и инверсные значения внешних входов ПЛМ. Выходы каждой из этих строк можно соединить с входами К– входовых схем ИЛИ, образующих столбцы матрицы ИЛИ, их М штук. Выходы этих схем ИЛИ и являются выходами ПЛМ.
Рис.6.1. Структура ПЛМ и реализация функций X=(A & B) |C
и Y=(A & B) | ~ C
.
При программировании ПЛМ каждый вход каждой схемы И может быть соединен с прямым или инверсным (рис.6.1) значением соответствующего входного сигнала или быть разомкнут, что соответствует значению логической 1 на этом входе. Итак, матрица И имеет 2*N столбцов и K строк, а матрица ИЛИ – К строк и M столбцов. Нетрудно провести аналогию с реализацией СДНФ произвольной логической функции на элементах И, имеющими N входов, элементах ИЛИ, имеющими К входов и N элементов НЕ.
На рис.6.1 приведен пример реализации двух логических функций
( & | ~- обозначения логических операций И, ИЛИ,НЕ)
X=(A & B) |C
Y=(A & B) | ~ C
[следует упомянуть о приоритете логических операций]
Если говорить про реализацию типовых функциональных узлов, то например, функция мультиплексора 2–1 с тремя входами in1, in2 ,sel и выходом out_m, описываемая булевским уравнением
out_m=in1 & sel | in2 & ~ sel;
(обозначения– &– операция И, |– операция ИЛИ,~ операция инверсии НЕ) реализуется двумя строками матрицы И, соединенными с одним столбцом матрицы ИЛИ.
В общем случае на ПЛМ с N–входами и M– выходами можно реализовать M разных N – входовых логических функций, число термов в которых ограничивается K.
6.1.2. Программируемая Матрица Логики (ПМЛ-PAL).
П МЛ (рис.6.2) в отличие от ПЛМ, имеет не программируемые, а фиксированные связи строк–схем И со столбцами– схемами ИЛИ, что ограничивает их логические возможности, но резко упрощает процесс изготовления микросхем. В примере на рис.6.2 представлен вариант с двухвходовыми ИЛИ.
Рис.6.2. Структура ПМЛ (PAL) и реализация функций X=(A & B) |C
и Y=(A & B) | ~ C.
.
В первых ПЛИС для программирования их функций использовались однократно пережигаемые перемычки.
Развитие технологии ПЛМ и ПМЛ пошло по пути реализации в ПЛИС возможности многократного перепрограммирования (конфигурирования) соединений и реализации большого числа таких узлов в одной микросхеме.
Кроме того, в состав микросхемы были включены запоминающие элементы – триггера, что резко повысило логические возможности ПЛИС. Эти ПЛИС стали называться сложными (CPLD–Complex Programmable Logic Device). Таким образом, в отличие от технологии заказных БИС, в ПЛИС используются не фиксированные, а программируемые пользователем соединения элементов, а функции элементов тоже не фиксированные, а программируемые. Информация, осуществляющая функцию программирования, в современных ПЛИС хранится в так называемой теневой (конфигурационной) памяти микросхемы. Меняя содержимое этой памяти, мы изменяем функцию, реализуемую микросхемой.
6.1.3. Схемотехника ПЛИС типа CPLD.
CPLD (Complex Programmable Device) – ПЛИС с относительно небольшим числом функциональных блоков (ФБ– FB), состоящих из многовходовой ПЛМ (или ПМЛ) и триггера и как правило с энергонезависимой конфигурационной (FLASH) памятью, программирование которой реализует настройку блоков и их связей. В упрощенном виде (рис.6.3) СPLD можно представить как набор из множества ФБ, коммутируемых друг с другом через так называемую главную коммутационную матрицу (ГТМ или AIM–Advanced Interconnection Matrix)). На периферии расположены блоки ввода–вывода (БВВ или I/O). [привести пример из жизни-аналогию]
Рис.6.3. Структура микросхемы ПЛИС семейства COOLRUNNER 2
Внутреннюю структуру ПЛИС типа CPLD поясним на примере семейства маломощных дешевых микросхем COOLRUNNER 2 фирмы XILINX. Каждая такая микросхема (рис.6.3) состоит из множества функциональных блоков типа ПЛМ, составляющих ее логический ресурс. ФБ в свою очередь, состоят из так называемых макроячеек (МЯ). Например, функциональный блок ПЛИС семейства COOLRUNNER 2 содержит 16 макроячеек (МС1–МС16) со структурой 40-входовых ПЛМ, что позволяет реализовать 16 логических функций от 40 переменных. Каждая макроячеека (рис.6.4) помимо комбинационной схемы – одновыходовой ПЛМ, имеет триггер, который может быть запрограммирован как D–триггер или как триггер-защелка. На него, кроме выходного сигнала от ПЛМ(D/T), приходят сигналы разрешения(CE), установки/сброса(S,R)и синхросигнал(C).
Рис. 6.4. Упрощенная схема макроячейки ПЛИС семейства COOLRUNNER 2.
Семейство ПЛИС COOLRUNNER 2 отличается пониженным энергопотреблением (статический ток не превышает 100 мкА). Эти ПЛИС выпускаются в плоских корпусах. Снизу корпуса или с боков расположены выводы микросхемы, сверху указано ее обозначение.
Например, обозначение XC2C256 говорит о том, что это микросхема фирмы XILINX (X), типа CPLD серии COOLRUNNER 2 (C2), число макроячеек в которой 256. Микросхемы этого типа могут быть применены при создании нестандартных АЛУ, дешифраторов, мультиплексоров, конечных автоматов и т.д., т.е. при создании устройств, в которых реализуются логические функции большого числа переменных и используется относительно небольшое число триггеров. Более подробно с архитектурой CPLD можно ознакомиться на сайтах производителей или продавцов ПЛИС – www.xilinx.com, www.altera.com, www.plis.ru и др.
6.2. Схемотехника ПЛИС типа FPGA.
FPGA (Field Programmable Gate Array)–это другой тип ПЛИС. На площади кристалла микросхемы ПЛИС (рис.6.5) типа FPGA размещена матрица из множества программируемых функциональных блоков и множество программируемых соединений (PM–Programmable Interconnections). Функциональные логические блоки в ПЛИС типа FPGA называются конфигурируемыми логическими блоками (КЛБ), а в англоязычной литературе CLB–Сonfigurable Logic Block. В свою очередь КЛБ состоят из логических ячеек (ЛЯ).
Рис. 6.5. Структура микросхемы ПЛИС типа FPGA.
По периметру микросхемы размещены блоки ввода–вывода сигналов (IOB–Input Output Block). В отличие от ПЛИС типа CPLD функциональные блоки FPGA имеют другую организацию и логические возможности, а трассировочные ресурсы более разнообразны, т.к. состоят из линий разной длины и коммутаторов.
[провести аналогию с PLD]
6.2.1. Логическая ячейка ПЛИС типа FPGA.
Конфигурируемый Логический блок (КЛБ) образован из нескольких секций–slice, которые в свою очередь состоят обычно из двух логических ячеек (ЛЯ).Логическая ячейка является базовым логическим элементом ПЛИС типа FPGA(рис.6.6).Она состоит из 4–6-ти входовой (в зависимости от типа FPGA) схемы, выполняющей логическую функцию– логической таблицы (ЛТ,ЛУТ) по-английски – LUT–Luc Up Table), реализуемую с помощью постоянного запоминающего устройства (ПЗУ), D–триггера (DFF–D–Flip Flop), дополнительной управляющей логики и схемы ускорения переноса, используемой при построении сумматоров.Часто для всей логической ячейки используется то же наименование ЛУТ (LUT) как и для отдельной логической таблицы.
Рис. 6.6. Упрощенная структура четырехвходовой логической ячейки.
Обычно, как уже отмечалось, логическая функция ячейки ПЛИС типа FPGA реализуется таблично с помощью Постоянного Запоминающего Устройства ( ПЗУ). ПЗУ после записи хранит записанную в него информацию. Каждому информационному слову сопоставлен его адрес. C помощью ПЗУ емкостью в 16 одноразрядных слов (16 х 1) можно реализовать любую булевскую функцию от четырех аргументов, записав в ПЗУ таблицу истинности этой функции, а при обращении к ПЗУ в качестве адреса использовать набор значений аргументов( четырехразрядный вектор или четырехразрядное двоичное число. В качестве примера в табл.6.1 представлена таблица истинности логической функции мультиплексора 2–1, имеющего три входа: in1, in2 и sel и один выход– out_m (рис.6.7, а также см.гл.3, раздел мультиплексор). При sel=0 мультиплексор пропускает на выход сигнал с входа in1, а при sel=1 с входа in2.
Рис. 6.7. УГО мультиплексора 2-1(ANSI).