Сложное программируемое логическое устройство ( CPLD ) — это программируемое логическое устройство со сложностью между PAL и FPGA и архитектурными особенностями обоих. Основным строительным блоком CPLD является макроячейка , которая содержит логику, реализующую дизъюнктивные выражения нормальной формы и более специализированные логические операции.
Некоторые особенности CPLD схожи с особенностями PAL :
Другие характеристики, общие с ПЛИС :
Наиболее заметное различие между большой CPLD и маленькой FPGA заключается в наличии энергонезависимой памяти на кристалле CPLD, что позволяет использовать CPLD для функций « загрузчика », прежде чем передавать управление другим устройствам, не имеющим собственного постоянного хранилища программ. Хорошим примером является случай, когда CPLD используется для загрузки данных конфигурации для FPGA из энергонезависимой памяти. [1]
CPLD были эволюционным шагом по сравнению с еще более мелкими устройствами, которые им предшествовали: PLA (впервые поставляемые Signetics ) и PAL . Им, в свою очередь, предшествовали стандартные логические продукты, которые не предлагали программируемости и использовались для создания логических функций путем физического соединения нескольких стандартных логических микросхем (или сотен) вместе (обычно с помощью разводки на печатной плате или платах, но иногда, особенно для прототипирования, с использованием монтажа накруткой ).
Основное различие между архитектурами устройств FPGA и CPLD заключается в том, что CPLD внутренне основаны на наборе ПЛИС, сопровождаемых программируемой структурой взаимосвязей, тогда как FPGA используют логические блоки .