Программируемые вентильные матрицы (FPGA) являются развитием технологической линии базовых матричных кристаллов (БМК), на основе которых создаются полузаказные БИС и СБИС. Полузаказные БИС и СБИС на основе БМК более просты в изготовлении: начальные этапы их технологии являются общими, различны они лишь на заключительных стадиях их производства. Таким образом, БМК, который называется также вентильной матрицей с масочным программированием, т. е. MPGA (Mask Programmable GAs), представляет собой стандартный полуфабрикат, который доводится до готового изделия с помощью индивидуальных межсоединений. Потребитель может реализовать на основе БМК некоторое множество устройств (БИС) определенного класса, задав для кристалла тот или иной рисунок межсоединений компонентов, что требует изготовления лишь небольшого числа фотошаблонов. При этом полуфабрикаты производятся в массовом количестве без ориентации на конкретного потребителя. Стоимость и длительность цикла проектирования полузаказных БИС на основе БМК, называемых матричными БИС (МаБИС), в сравнении с заказными СБИС сокращаются в 3–4 раза. Однако матричные БИС, по сравнению с заказными, имеют более низкое быстродействие. Кроме того, в них менее рационально используется площадь кристалла, т. к. часть элементов МаБИС оказывается избыточной (не используется в данной схеме), из-за того, что взаимное расположение элементов и пути межсоединений не являются наилучшими и, следовательно, длины связи неминимальными. Эти недостатки в определенной степени устранены в программируемых потребителем вентильных матрицах, которые топологически сходны с канальными БМК.
Основу вентильной матрицы составляет множество регулярно расположенных на кристалле базовых ячеек (БЯ), между которыми имеются свободные зоны (трассировочные каналы) для создания соединений. Базовые ячейки, называемые также логическими блоками (ЛБ), занимают внутреннюю область (ВО) кристалла, в которой они располагаются в заранее предусмотренном порядке (обычно в цепочку). В периферийной области (ПО) кристалла размещаются контактные площадки, объединенные с буферами ввода/вывода, набор схемных компонентов которых ориентирован на реализацию связей кристалла (вентильной матрицы) с внешними цепями. Базовые ячейки представляют собой набор схемных элементов (нескоммутированных и частично скоммутированных), регулярно повторяющихся на определенной площади кристалла.
Применяются следующие способы организации БЯ:
Обычно поставщик вентильных матриц предопределяет и полностью описывает набор ЛЭ в матрице, так что разработчик осуществляет проектирование не на транзисторном, а на вентильном уровне. Далее создание СБИС с заданной структурой сводится к автоматическому выбору (с помощью САПР) надлежащих вентилей из библиотеки, размещению их на кристалле и трассировке межсоединений (определению рисунка соединений между ЛЭ).
При проектировании СБИС на основе вентильных матриц стремятся наилучшим образом сбалансировать число БЯ, трассировочные ресурсы кристалла и число контактных площадок для подключения буферов ввода/вывода. Неудачное соотношение между указанными параметрами может существенно ограничивать полноту использования ресурсов кристалла при разработке СБИС. Проектирование СБИС на основе вентильных матриц с БЯ в виде простых ЛЭ И НЕ, ИЛИ НЕ и т. д., широко применяемые инженерами-системотехниками, отличаются сравнительной простотой. Применение в вентильной матрице простых ЛЭ (в качестве БЯ), обладающих большой гибкостью использования, предоставляет возможность реализовать воспроизводимые функции различными способами, обеспечивающими компромиссное решение проблемы минимизации площади кристалла – повышения быстродействия. Вместе с тем данный вариант реализации БЯ вентильной матрицы имеет и недостатки: например, при надлежащем выборе базового кристалла для группы изделий снижается эффективность использования площади кристалла из-за сложности системы межсоединений, обусловленной большим числом программируемых точек связи.
Данная проблема в определенной степени может быть решена с помощью стандартных ячеек. При проектировании микросхем на основе стандартных ячеек, как и в случае вентильных матриц, предполагается наличие у разработчика предварительно разработанной и описанной библиотеки ЛЭ с заранее спроектированным рисунком внутренних меж-соединений. Однако в этом случае топология кристалла разрабатывается только после того, как схема спроектирована. В результате этого в кристалле оказывается столько элементов, контактных площадок и буферов ввода/вывода, сколько необходимо для создания данной конкретной СБИС. Изготовление СБИС на стандартных ячейках начинается с самых первых этапов технологического процесса, в то время как в случае вентильных матриц могут использоваться готовые кристаллы-полуфабрикаты уже в конце – на этапе создания соединений. Соответственно цикл изготовления для вентильных матриц на несколько недель короче, чем для схемы на стандартных ячейках. Стандартные ячейки характеризуются рядом дополнительных ограничений, например, постоянством высоты ячейки, заранее заданным расположением шин питания и тактовых сигналов и т. д. Главной причиной этих ограничений является упрощение проблемы разработки программного обеспечения САПР для размещения и трассировки. Вместе с тем успешное решение данной проблемы является чрезвычайно сложным.
В этой связи более широкое распространение получили СБИСы на основе вентильных матриц с базовыми ячейками (логическими блоками (ЛБ)), представляющими собой не простые ЛЭ, а законченные функциональные элементы. В таких вентильных матрицах в качестве БЯ (или ЛБ) могут быть использованы различные по своим типоразмерам и функциональным возможностям блоки, например, мультиплексоры, триггеры, ППЗУ и т. д. Применение в вентильных матрицах таких крупных логических блоков, реализующих более сложные функции, чем простые ЛЭ, приводит к упрощению программируемой части межсоединений. Однако для кристаллов больших размеров результаты автоматического проектирования СБИС на вентильных матрицах с применением крупных и различных по величине блоков существенно уступают результатам ручного проектирования. При этом неэффективно используется площадь кристалла (часть элементов блоков оказывается избыточной), а также происходит потеря быстродействия.