Программируемая пользователем вентильная матрица

Программи́руемая по́льзователем ве́нтильная ма́трица(ППВМ,англ.field-programmable gate array, FPGA) —полупроводниковое устройство, которое может быть сконфигурировано производителем или разработчиком после изготовления; наиболее сложная по организации разновидностьпрограммируемых логических интегральных схем.
Программируются путём изменения логики работыпринципиальной схемы, например, с помощьюисходного коданаязыке описания аппаратуры(например,Verilog). Могут быть модифицированы практически в любой момент в процессе их использования. Cостоят из конфигурируемых логических блоков, подобных переключателям с множеством входов и одним выходом (логические вентили,gates). В цифровых схемах такие переключатели реализуют базовые двоичные операцииAND,NAND,OR,NORиXOR. Принципиальное отличие ППВМ состоит в том, что и функции блоков, и конфигурация соединений между ними могут меняться с помощью специальных сигналов, посылаемых схеме. В некоторых специализированных интегральных схемах (ASIC) используются логические матрицы, аналогичные ППВМ по строению, однако они конфигурируются один раз в процессе производства, в то время как ППВМ могут постоянно перепрограммироваться и менять топологию соединений в процессе использования. Однако такая гибкость требует существенного увеличения количестватранзисторовмикросхемы.
В раннихПЛИСпрограммированием можно было изменять только связи между вентилями; в 1985 году сооснователиXilinxРосс Фримен(англ.Ross Freeman) иБернард Вандершмит(англ.Bernard V. Vonderschmitt) разработали первую коммерчески успешную ППВМ — XC2064, имеющую программируемые вентили и программируемые соединения между ними (в 2005 году за это изобретение Фримен был занесён вНациональный зал славы изобретателей США). Сама концепция программируемых вентильных матриц, логических вентилей и логических блоков запатентована Дэвидом Пейджем и Луверном Петерсоном в 1985 году. В 1990-х годах произошёл резкий скачок интереса к ППВМ, возросла их сложность и объёмы производства: если в первые годы они использовались в основном в областителекоммуникацийи сетей связи, то к концу десятилетия они нашли применение в потребительских товарах, в автомобильной промышленности и других отраслях.
В 1997 году Адриан Томпсон объединилгенетические алгоритмыи технологию ППВМ для создания устройства, способного отличать звуковые тоны частотой 1КГци 10КГц. Генетические алгоритмы позволили с помощью вентильной матрицы размером 64×64 на микросхеме фирмы Xilinx создать конфигурацию, необходимую для решения поставленной задачи. В те же годы начали широко применяться для прототипированияспециализированных интегральных схемипроцессоровобщего назначения. В начале 2000-х годов ППВМ начали использоваться для ускорения специфических операций в серверных узлах как в индустриивысокопроизводительных вычислений, так и вмашинах баз данных(Netezza). Во второй половине 2010-х годов отмечен всплеск интереса к технологии в связи с эффективностью применения дляглубокого обучения(прежде всего за счёт возможности реализации арифметики с пониженной точностью и безрегистровых вычислений — аналогатензорного процессора Google), а уинфраструктурных облачных провайдеровпоявилась возможность приобрести ППВМ по подписке изпубличного облака(AmazonF1,Baidu,Tencent,Huawei).
К 2018 году объём мирового рынка ППВМ составил около 5,7 млрд $, крупнейшие производители —Xilinx(51 % рынка),Intel(36 %, за счёт активовAltera),Microchip(7 %),Lattice Semiconductor(5 %).
В ППВМ имеется три типа программируемых элементов:
ПЛБ являются функциональными элементами для построения логики пользователя. БВВ обеспечивают связь между контактами корпуса и внутренними сигнальными линиями. Программируемые ресурсы внутренних связей обеспечивают управление путями соединения входов и выходов ПЛБ и блоков ввода-вывода (БВВ) на соответствующие сети. Всеканалы трассировкиимеют одинаковую ширину (одинаковое количество проводников). Большинство блоков ввода-вывода (БВВ) вписываются либо в одну строку (по высоте), либо в один столбец (по ширине) массива вентилей.
Логический блок (ПЛБ) классической ППВМ состоит изтаблицы истинности(англ.lookup table,LUT) на несколько входов и одинтриггер(в ранних реализациях использовалось 4 входа, впоследствии — большее число входов, что позволило задействовать меньшее число логических блоков для типичных приложений).
Логический блок (ПЛБ) имеет таблицу истинности на четыре входа и вход синхронизации (clock). Выход блока только один — регистровая или нерегистровая выходная таблица истинности. Поскольку сигналы синхронизации в коммерческих ППВМ (а часто и другие сигналы, распараллеливающиеся на большое количество входов — high-fanout signals)трассируютсяособым образом специальными трассировочными цепями, управление этими сигналами делается отдельно.
Для приведённого примера архитектуры расположение контактов логического блока показано ниже.
Входы расположены на отдельных сторонах логического блока; выходной контакт может трассироваться в двух каналах: либо справа от блока, либо снизу.
Выходные контакты каждого логического блока могут соединяться с трассировочными сегментами в смежных каналах. Аналогично, контактная площадка блока ввода-вывода (pad) может соединяться с трассировочным элементом в любом смежном канале. Например, верхняя контактная площадка чипа может соединяться с любым из W проводников (где W — ширина канала) в горизонтальном канале, расположенном непосредственно под ним.
Как правило, трассировка ППВМ несегментирована, то есть каждый сегмент проводника соединяет только один логический блок с переключательным блоком. Из-за огибания программируемых переключателей в переключательном блоке трассировка получается более длинной. Для увеличения скорости внутрисистемных соединений, в некоторых архитектурах ППВМ между логическими блоками используются более длинные трассировочные соединения.
В месте пересечения вертикальных и горизонтальных каналов создаются переключательные блоки. При такой архитектуре для каждого проводника, входящего в переключательный блок, существуют три программируемых переключателя, которые позволяют ему подключаться к трём другим проводникам в смежных сегментах канала. Модель или топология выключателей, используемая в этой архитектуре, является планарной или доменной топологией переключательных блоков. В этой топологии проводник трассы номер 1 подключается только к проводнику трассы номер 1 в смежных каналах, проводник трассы номер 2 подключается только к проводникам трассы номер 2 и так далее.
Современные семейства ППВМ расширяют перечисленные выше возможности и обладают встроенными функциями высокого уровня, благодаря наличию которых удаётся уменьшить площадь кристалла и ускорить выполнение типовых подзадач в сравнении с реализацией на основе примитивов. Примерами таких функций являются мультиплексоры, блокицифровой обработки сигналов, встроенные процессоры, быстрая логика ввода-вывода и встроенная память.
ППВМ также широко применяются для систем проверки пригодности, в том числе в докремниевой и послекремниевой проверке пригодности, а также при разработке программ длявстраиваемых систем. Это позволяет компаниям-производителям интегральных схем проверять работоспособность своих устройств до изготовления их на заводе, сокращая время выхода изделия на рынок.