Programmable Array Devices and Complementary Programming CPLDs fundamentally differ in their architecture . Devices typically feature a matrix of programmable operation blocks interconnected via a flexible routing fabric . This permits for sophisticated design construction, though often with a significant footprint and greater energy . Conversely,