CFGLUT5 - CFGLUT5 - 2026.1 English - Primitive: 5-input Dynamically Reconfigurable Look-Up Table (LUT) - UG953

Vivado Design Suite 7 Series FPGA and Zynq 7000 SoC Libraries Guide (UG953)

Document ID
UG953
Release Date
2026-06-23
Version
2026.1 English

Primitive: 5-input Dynamically Reconfigurable Look-Up Table (LUT)

  • PRIMITIVE_GROUP: CLB
  • PRIMITIVE_SUBGROUP: LUT
Page-1 Sheet.1 CFGLUT5 5-Input Reconfigurable LUT CFGLUT55-Input Reconfigurable LUT Text Line.6 I4 I4 Text Line.1 I3 I3 Text Line.5 I2 I2 Sheet.5 I0 I0 Sheet.6 CDI CDI Sheet.7 CE CE Sheet.8 CLK CLK D Flip-Flop.40 Text Line.13 CDO CDO 8pt. Arial Text.15 8pt. Arial Text.16 Text Line.3 O5 O5 Text Line.18 O6 O6 Text Line.9 I1 I1 Graphic ID: SW & IP X10938 X10938-061119

Introduction

This element is a runtime, dynamically reconfigurable, 5-input look-up table (LUT) that enables the changing of the logical function of the LUT during circuit operation. Using the CDI pin, a new INIT value can be synchronously shifted in serially to change the logical function. The O6 output pin produces the logical output function, based on the current INIT value loaded into the LUT and the currently selected I0-I4 input pins. Optionally, you can use the O5 output in combination with the O6 output to create two individual 4-input functions sharing the same inputs or a 5-input function and a 4-input function that uses a subset of the 5-input logic (see the following tables). This component occupies one of the eight LUT6 components within a SLICEM.

To cascade this element, connect the CDO pin from each element to the CDI input of the next element. This will allow a single serial chain of data (32-bits per LUT) to reconfigure multiple LUTs.

Port Descriptions

Port Direction Width Function
CDI Input 1 Reconfiguration data serial input.
CDO Output 1 Reconfiguration data cascaded output (optionally connect to the CDI input of a subsequent LUT).
CE Input 1 Active-High reconfiguration clock enable.
CLK Input 1 Reconfiguration clock.
O5 Output 1 4-LUT output.
O6 Output 1 5-LUT output.
LUT Inputs: Logic inputs to the programmable look-up table.
I0 Input 1 Logic inputs to the programmable look-up table.
I1 Input 1 Logic inputs to the programmable look-up table.
I2 Input 1 Logic inputs to the programmable look-up table.
I3 Input 1 Logic inputs to the programmable look-up table.
I4 Input 1 Logic inputs to the programmable look-up table.

Design Entry Method

Instantiation Yes
Inference No
IP and IP Integrator Catalog No

Available Attributes

Attribute Type Allowed Values Default Description
INIT HEX Any 32-bit HEX value All zeroes Specifies the initial logical expression of this element.
IS_CLK_INVERTED BINARY 1'b0 to 1'b1 1'b0 Indicates whether the CLK is active-High or active-Low.

VHDL Instantiation Template

Unless they already exist, copy the following two statements and paste them before the entity declaration.
Library UNISIM;
use UNISIM.vcomponents.all;

-- CFGLUT5: Reconfigurable 5-input LUT (Mapped to SliceM LUT6)
--          7 Series
-- Xilinx HDL Language Template, version 2026.1

CFGLUT5_inst : CFGLUT5
generic map (
   INT => X"00000000")
port map (
   CDO => CDO, -- Reconfiguration cascade output
   O5 => O5,   -- 4-LUT output
   O6 => O6,   -- 5-LUT output
   CDI => CDI, -- Reconfiguration data input
   CE => CE,   -- Reconfiguration enable input
   CLK => CLK, -- Clock input
   I0 => I0,   -- Logic data input
   I1 => I1,   -- Logic data input
   I2 => I2,   -- Logic data input
   I3 => I3,   -- Logic data input
   I4 => I4    -- Logic data input
);

-- End of CFGLUT5_inst instantiation

Verilog Instantiation Template


// CFGLUT5: Reconfigurable 5-input LUT  (Mapped to a SliceM LUT6)
//          7 Series
// Xilinx HDL Language Template, version 2026.1

CFGLUT5 #(
   .INIT(32'h00000000) // Specify initial LUT contents
) CFGLUT5_inst (
   .CDO(CDO), // Reconfiguration cascade output
   .O5(O5),   // 4-LUT output
   .O6(O6),   // 5-LUT output
   .CDI(CDI), // Reconfiguration data input
   .CE(CE),   // Reconfiguration enable input
   .CLK(CLK), // Clock input
   .I0(I0),   // Logic data input
   .I1(I1),   // Logic data input
   .I2(I2),   // Logic data input
   .I3(I3),   // Logic data input
   .I4(I4)    // Logic data input
);

// End of CFGLUT5_inst instantiation

Related Information

  • 7 Series FPGAs Configurable Logic Block User Guide (UG474)