Understanding configurable device architecture is vital for successful FPGA and CPLD design. Common building elements feature Configurable Logic Blocks (CLBs) or Functionally Programmable Logic Block (FPLBs) which house lookup registers and flip-flops, coupled with programmable interconnect lines. CPLDs typically employ sum-of-products architecture