Программируемая пользователем вентильная матрица
Программи́руемая по́льзователем ве́нтильная ма́трица (ППВМ, англ. field-programmable gate array, FPGA) — полупроводниковое устройство, которое может быть сконфигурировано производителем или разработчиком после изготовления; отсюда название: «программируемая пользователем». ППВМ программируются путём изменения логики работы принципиальной схемы, например, с помощью исходного кода на языке описания аппаратуры (например Verilog), на котором можно описать эту логику работы микросхемы. ППВМ является одной из архитектурных разновидностей программируемых логических интегральных схем (ПЛИС).
ППВМ могут быть модифицированы практически в любой момент в процессе их использования. Они состоят из конфигурируемых логических блоков, подобных переключателям с множеством входов и одним выходом (логические вентили или gates). В цифровых схемах такие переключатели реализуют базовые двоичные операции AND, NAND, OR, NOR и XOR. В большинстве современных микропроцессоров функции логических блоков фиксированы и не могут изменяться. Принципиальное отличие ППВМ состоит в том, что и функции блоков, и конфигурация соединений между ними могут меняться с помощью специальных сигналов, посылаемых схеме. В некоторых специализированных интегральных схемах (ASIC) используются логические матрицы, аналогичные ППВМ по строению, однако они конфигурируются один раз в процессе производства, в то время как ППВМ могут постоянно перепрограммироваться и менять топологию соединений в процессе использования. Однако такая гибкость требует существенного увеличения количества транзисторов микросхемы.
История
Отрасль ППВМ выросла из программируемых ПЗУ (ППЗУ) и программируемых логических интегральных схем (ПЛИС). Оба эти типа устройств являются программируемыми, причём программирование может выполняться либо на заводе-изготовителе, либо пользователем, однако, программирование их работы состоит только в изменении связей между вентилями[1]. Сооснователи Xilinx Росс Фримен[англ.] и Бернард Вандершмит[англ.] изобрели первую коммерчески пригодную ППВМ XC2064 в 1985 году. Эта микросхема, имеющая программируемые вентили и программируемые соединения между вентилями, положила начало новой технологии и новому рынку. Через 20 лет за это изобретение Росс Фримен был занесён в Национальный Зал славы изобретателей США[англ.].
Сама концепция программируемых вентильных матриц, логических вентилей и логических блоков запатентована Дэвидом Пейджем и Луверном Петерсоном в 1985 году[2][3]. В 1990-х годах произошёл резкий скачок интереса к ППВМ, возросла их сложность и объёмы производства. Если в начале 1990-х годов ППВМ использовались в основном в области телекоммуникаций и сетей связи, то к концу десятилетия они нашли своё применение в потребительских товарах, в автомобильной промышленности и других отраслях.
Всплеск славы ППВМ произошёл в 1997 году, когда Адриан Томпсон объединил генетические алгоритмы и технологию ППВМ для создания устройства, способного отличать звуковые тоны частотой 1 КГц и 10 КГц. Генетические алгоритмы позволили с помощью вентильной матрицы размером 64 х 64 клетки на микросхеме фирмы Xilinx создать конфигурацию, необходимую для решения поставленной задачи[4].
Архитектура
ППВМ включают в себя три главных программируемых элемента:
- нескоммутированные программируемые логические блоки (ПЛБ);
- блоки ввода-вывода (БВВ);
- внутренние связи.
ПЛБ являются функциональными элементами для построения логики пользователя. БВВ обеспечивают связь между контактами корпуса и внутренними сигнальными линиями. Программируемые ресурсы внутренних связей обеспечивают управление путями соединения входов и выходов ПЛБ и блоков ввода-вывода (БВВ) на соответствующие сети[5]. Все каналы трассировки имеют одинаковую ширину (одинаковое количество проводников). Большинство блоков ввода-вывода (БВВ) вписываются либо в одну строку (по высоте), либо в один столбец (по ширине) массива вентилей.
Логический блок (ПЛБ) классической ППВМ состоит из таблицы истинности (см.обсуждение) (англ. lookup table, LUT) на четыре входа и одного триггера (см. рисунок ниже). В последние годы производители начали переходить на таблицы истинности с большим числом входов, что позволяет задействовать меньшее число логических блоков для типичных приложений[6].
Логический блок (ПЛБ) имеет таблицу истинности на четыре входа и вход синхронизации (clock). Выход блока только один — регистровая или нерегистровая выходная таблица истинности. Поскольку сигналы синхронизации в коммерческих ППВМ (а часто и другие сигналы, распараллеливающиеся на большое количество входов — high-fanout signals) трассируются особым образом специальными трассировочными цепями, управление этими сигналами делается отдельно.
Для приведённого примера архитектуры расположение контактов логического блока показано ниже.
Входы расположены на отдельных сторонах логического блока; выходной контакт может трассироваться в двух каналах: либо справа от блока, либо снизу. Выходные контакты каждого логического блока могут соединяться с трассировочными сегментами в смежных каналах. Аналогично, контактная площадка блока ввода-вывода (pad) может соединяться с трассировочным элементом в любом смежном канале. Например, верхняя контактная площадка чипа может соединяться с любым из W проводников (где W — ширина канала) в горизонтальном канале, расположенном непосредственно под ним.
Как правило, трассировка ППВМ несегментирована, то есть каждый сегмент проводника соединяет только один логический блок с переключательным блоком. Из-за огибания программируемых переключателей в переключательном блоке трассировка получается более длинной. Для увеличения скорости внутрисистемных соединений, в некоторых архитектурах ППВМ между логическими блоками используются более длинные трассировочные соединения.
В месте пересечения вертикальных и горизонтальных каналов создаются переключательные блоки. При такой архитектуре для каждого проводника, входящего в переключательный блок, существуют три программируемых переключателя, которые позволяют ему подключаться к трём другим проводникам в смежных сегментах канала. Модель или топология выключателей, используемая в этой архитектуре, является планарной или доменной топологией переключательных блоков. В этой топологии проводник трассы номер 1 подключается только к проводнику трассы номер 1 в смежных каналах, проводник трассы номер 2 подключается только к проводникам трассы номер 2 и так далее. На рисунке ниже показаны соединения в переключательном блоке.
Современные семейства ППВМ расширяют перечисленные выше возможности и включают встроенную функциональность высокого уровня. Благодаря наличию этих общих функции в кристалле кремния можно уменьшить площадь кристалла, к тому же при такой схеме эти функции будут работать быстрее, чем при их реализации на основе примитивов. Примерами таких функций являются мультиплексоры, блоки цифровой обработки сигналов, встроенные процессоры, быстрая логика ввода-вывода и встроенная память. Особенностью семейства ПЛИС Zynq UltraScale+RFSoCs компании Xilinx является наличие до 16 быстродействующих АЦП и ЦАП, интегрированных в их структуру[7].
ППВМ также широко применяются для систем проверки пригодности, в том числе в докремниевой и послекремниевой проверке пригодности, а также при разработке программ для встраиваемых систем. Это позволяет компаниям-производителям интегральных схем проверять работоспособность своих устройств до изготовления их на заводе, сокращая время выхода изделия на рынок.
Производители
Основными производителями ППВМ являются:
См. также
- Базовый матричный кристалл
- ПЛИС
- Матрица макроячеек
- ASIC
- Язык проектирования
- Язык описания аппаратуры
- VHDL
- Verilog
- SystemC
Примечания
- ↑ History of FPGAs (англ.)
- ↑ Google Patent Search, "Re-programmable PLA".
- ↑ Google Patent Search, "Dynamic data re-programmable PLA".
- ↑ On the Origin of Circuits.
- ↑ Архитектура FPGA (англ.)
- ↑ Achieving Higher System Performance with the Virtex-5 Family of FPGA, WP245 (v1.1.1) July 7, 2006 Архивировано 27 сентября 2007 года. xilinx.com (англ.)
- ↑ Слюсар В.И. Развитие схемотехники ЦАР: некоторые итоги. Часть 2.// Первая миля. Last mile (Приложение к журналу "Электроника: наука, технология, бизнес"). – N2. - 2018. С. 76 - 80. (2018).