CPLD یا Complex Programmable Logic Device یک دستگاه Logic ( منطقی ) با آرایه های AND/OR و ماکروسل های کاملاً قابل برنامه ریزی است. ماکروسلها بلوکهای اصلی یک CPLD هستند که شامل عملیات منطقی پیچیده و لاجیک برای پیادهسازی عبارات فرم نرمال منفک هستند. آرایه های AND/OR کاملاً قابل برنامه ریزی مجدد هستند و مسئولیت انجام توابع منطقی مختلف را بر عهده دارند. ماکروسل ها را همچنین می توان به عنوان بلوک های عملکردی که مسئول اجرای منطق ترتیبی یا ترکیبی هستند تعریف کرد.
کاربرد CPLD
CPLD ها کاربرد بسیاری در مدارهای کنترل دیجیتال و پردازش سیگنال با پیچیدگی کم تا متوسط را دارا می باشند. برخی از کاربردهای مهم آن به شرح زیر است:
CPLD ها می توانند به عنوان بوت لودر ( Bootloaders ) برای FPGA و سایر سیستم های قابل برنامه ریزی استفاده شوند.
CPLD ها اغلب به عنوان Decoder آدرس و ماشین های سفارشی در سیستم های دیجیتال استفاده می شوند.
به دلیل اندازه کوچک و مصرف انرژی کم، CPLD ها برای استفاده در دستگاه های دیجیتال قابل حمل و دستی ایده آل هستند.