Рис.9 Разделяемый расширитель
Расширитель реализует логические функции, состоящие из термов соседних МЯ. Таким образом, МЯ связываются в цепочку. Расширитель позволяет использовать до 20 термов. Пять термов берутся непосредственно из данной МЯ, остальные 15 из соседних МЯ данного логического блока. Дополнительная временная задержка, вносимая расширителем, обозначается tPEXP. Последовательно в цепочку можно соединить до 8 МЯ. Схема параллельного логического расширителя представлена на рис.10.
Рис.10 Параллельный расширитель
Программируемая матрица соединений (PIA) реализует все внутренние связи. С этой шиной соединены все источники и приемники сигналов. Все специальные сигналы, выводы ввода/вывода, сигналы МЯ. На рис.11 показано как сигналы PIA подводятся к логическим блокам (LAB).
Рис.11 Схема передачи сигналов из программируемой матрицы соединений в логические блоки.
Блок управления вводом/выводом позволяет индивидуально конфигурировать каждый вывод ПЛИС. Вывод ПЛИС может быть настроен на ввод, вывод, двунаправленную передачу данных. Все выводы ПЛИС могут быть выводами буфера с третьим состоянием, который может управляться глобальным сигналом. Кроме того, возможен режим работы с открытым коллектором. На рис.6 показана схема блока управления.
Рис.12 Блок управления вводом/выводом
ПЛИС семейства MAX 7000 соответствуют промышленному стандарту 4-pin Joint Test Action Group (JTAG) IEEE Std. 1149.1-1990). Программирование в системе. (In-System Programmability ISP) быстро и эффективно позволяет изменять конфигурацию ПЛИС как в стадии тестирования проекта, как и в течение эксплуатации. Перепрограммирование может быть выполнено непосредственно в системе, для этого необходим только один уровень напряжения 5В. Пока идет программирование, выводы микросхемы переводятся в третье состояние, для избежания конфликта с системой. Сопротивление внутренних “подтягивающих” резисторов 50 кОм.
Для программирования используется специальный загрузочный кабель Altera MasterBlaster, ByteBlaster или ByteBlasterMV. Программирование ПЛИС в системе позволяет снизить вероятность повреждения при эксплуатации устройства. Кроме того, модернизация устройства может быть выполнена в полевых условиях, например, с помощью модема.
Для программирования ПЛИС во встраиваемых приложениях может быть использован Jam Standard Test and Programming Language (STAPL).
ПЛИС MAX 7000 могут работать в режиме энергосбережения. Этот режим позволяет сократить энергозатраты на 50% и более. Большинство логических функций не используют значительную часть вентилей – этот факт используется для реализации данного режима.
Разработчик может для каждой МЯ выбрать режим высокого быстродействия или энергосбережения (устанавливается или снимается TurboBit). МЯ, работающие в режиме экономии электроэнергии, характеризуются дополнительной временной задержкой tLPA, задержка добавляется к параметрам tLAD, tLAC, tIC, tEN, tSEXP, tACL, tCPPW.
Большинство ПЛИС семейства MAX 7000 поддерживают интерфейс MultiVolt I/O, который обеспечивает работу микросхемы в устройствах с разным уровнем питания. На выводы VCCINT всегда должно быть подано напряжение 5В. При уровне напряжения на выводе VCCINT 5В порог входного напряжения соответствует уровню 5В, однако совместим и с логикой 3,3 В.
На выводы VCCIO может быть подано напряжение питания 3,3В или 5В, в зависимости от требований к выходному каскаду. Когда на выводы VCCIO подано напряжение 5В, уровень выходного каскада соответствует системам 5В. Если подано 3,3В, выходной сигнал соответствует логике 3,3 В, однако совместим и с 5В.
Выводы ПЛИС MAX 7000 могут быть настроены как выводы с открытым коллектором.
Для выходных буферов ПЛИС существует возможность регулирования уровня шумов. Низкий уровень шумов может быть достигнут за счет снижения быстродействия. И наоборот, повышение быстродействия приводит к росту уровня шума. Это достигается посредством настроек Slew Rate Control.
Все микросхемы серии MAX 7000 содержат программируемый бит секретности, который контролирует доступ к “зашитым” в микросхему данным. Если этот бит установлен, прошивка не может быть считана. Такой способ обеспечивает высокую степень защищенности проекта, т.к. информация, находящаяся в ячейках EEPROM, не видима. Бит защиты может быть сброшен только при перепрограммировании ПЛИС.
Микросхемы программируемых пользователями вентильных матриц FPGA (Field Programmable Gate Arrays)
Содержат блоки умножения – суммирования (DSP), которые широко применяются при обработке сигналов, а также логические элементы (как правило на базе таблиц перекодировки (таблиц истинности)) и их блоки коммутации. FPGA обычно используются для обработки сигналов, имеют больше логических элементов и более гибкую архитектуру, чем CPLD. Программа для FPGA хранится в распределённой памяти, которая может быть выполнена как на основе энергозависимых ячеек статического ОЗУ (подобные микросхемы производят, например, фирмы Xilinx и Altera) – в этом случае программа не сохраняется при исчезновении электропитания микросхемы, так и на основе энергонезависимых ячеек Flash-памяти или перемычек antifuse (такие микросхемы производит фирма Actel и Lattice Semiconductor) – в этих случаях программа сохраняется при исчезновении электропитания. Если программа хранится в энергозависимой памяти, то при каждом включении питания микросхемы необходимо заново конфигурировать её при помощи начального загрузчика, который может быть встроен и в саму FPGA. Альтернативой ПЛИС FPGA являются более медленные цифровые процессоры обработки сигналов. FPGA применяются также, как ускорители универсальных процессоров в суперкомпьютерах (например: Cray -XD1, SGI – Проект RASC).
В своей основе состоят из большого числа конфигурируемых логических блоков (ЛБ), расположенных по строкам и столбцам в виде матрицы, и трассировочных ресурсов, обеспечивающих их межсоединения.
В архитектуре FPGA явно прослеживается большое сходство с архитектурой MPGA. Разница в том, что FPGA, поступающая в распоряжение потребителя, имеет уже готовые, стандартные, хотя и не запрограммированные, трассировочные ресурсы, не зависящие от конкретного потребителя. Получение конкретного проекта на базе FPGA, как и на основе других ПЛИС, реализуется воздействием на программируемые межсоединения, в ходе которого обеспечивается замкнутое состояние одних участков и разомкнутое — других. Обращаться к изготовителю FPGA при этом не требуется.
Архитектуры FPGA разрабатываются фирмами Xilinx, Actel, Altera, Atmel, Agere Systems (ранее Lucent Technologies), QuickLogic и др. В качестве примера можно рассмотреть архитектуру микросхем семейства Flex 10K фирмы Altera [5].
Фирма Altera пошла по пути развития FPGA-архитектур и предложила в семействе FLEX10K так называемую двухуровневую архитектуру матрицы соединений (рис. 13). Глобальная матрица соединений представлена группами горизонтальных и вертикальных соединений, реализующих межблочные связи (FastTrack межсоединения – непрерывная структура, обеспечивающая быстрые и предсказуемые задержки). Возможна эмуляция третьего состояния, позволяющая реализовывать внутренние шины с третьем состоянием. Кроме того, по этим каналам мпередается до шести общих тактовых сигналов и четыре общих сигнала сброс.
На рисунке представлены блоки элементов ввода/вывода (I/O Elements), логические блоки (LAB) и блоки встроенной памяти (EAB). Внутри логических блоков связи между логическими элементами (LE) реализуются с помощью локальной программируемой матрицы соединений. СБИС данного семейства имеют в целом сходную внутреннюю архитектуру, в основе которой лежит логический элемент.
Рис.13 Блок схема ПЛИС FLEX10K
LE содержит четырехвходовую таблицу перекодировок (LUT), обеспечивающую реализацию логических функций, синхронный триггер и некоторую дополнительную логику (рис.14).
Цепи переноса (Carry-In и Carry-Out) позволяют быстро выполнять арифметические функции сложения, счета и сравнения (автоматически используются программным обеспечением и мегафункциями) (рис.15). Цепи каскадирования (Cascade-In и Cascade-Out) позволяют реализовывать высокоскоростные логические функции И или ИЛИ с большим количеством переменных (автоматически используются программным обеспечением и мегафункциями (рис.16).
Рис.16 Цепи каскадирования Cascade-In и Cascade-Out
LE объединяются в группы – логические блоки (LAB). Каждый из блоков содержит восемь LE (рис.17). Внутри логических блоков LE соединяются посредством локальной программируемой матрицы соединений, позволяющей соединять любой LE с любым.
Логические блоки связаны между собой и с элементами ввода/вывода посредством глобальной программируемой матрицы соединений. Локальная и глобальная матрицы соединений имеют непрерывную структуру, где для каждого соединения выделяется непрерывный канал.
Двухуровневая архитектура и использование непрерывной структуры соединений на каждом уровне иерархии обеспечивают: