29 CLB - Configurable Logic Block

The Configurable Logic Block (CLB) is a collection of logic elements that can be programmed to perform a wide variety of digital logic functions. The logic function may be completely combinatorial, sequential, or a combination of the two, enabling users to incorporate hardware-based custom logic into their applications.

The CLB has the following features:
  • 32 Basic Logic Elements (BLEs):
    • Each BLE consists of one 4-input 16-value Look-up Table (LUT), a Flip-Flop, a mux for combinational or registered result, and an AND gate to zero the output when the module is in Reset
  • Interconnected Fabric:
    • Connects all 32 BLEs
  • Dedicated 3-bit hardware counter
  • Selectable clock sources with configurable clock divider
    • One PPS clock input pin
  • Up to four PPS inputs
  • Up to eight PPS outputs with read-lock
  • CLB Auto Configuration:
    • Can be automatically configured during system boot
    • Allows for CLB operation without CPU

The CLB module is configured using two sets of register interfaces: the standard Special Function Register (SFR) interface, and the Microchip CLB Synthesizer.

The SFR interface contains the following registers:

These SFRs allow user software the ability to enable the module, program input bits into the CLB memory, select a clock source, and enable PPS outputs for specific BLE outputs.

The Microchip CLB Synthesizer allows for complete configuration of the CLB module. Configuration data for the CLB is written from Program Memory through the NVM Scanner Module. The Interface does not appear as SFRs in the Register Map and is not directly user-accessible; it is accessible only through a programming system such as Microchip MPLAB® Tools for VS Code® that support programming the CLB.

Important: The logic elements of the CLB cannot be configured using the SFR interface. The Microchip CLB Synthesizer must be used to configure them.