Primitive: 5-input Dynamically Reconfigurable Look-Up Table (LUT)
- PRIMITIVE_GROUP: CLB
- PRIMITIVE_SUBGROUP: LUT
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
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)