https://cybersectors.com/cpld-complex-programmable-logic-device-explained/