# Adaptive Logic Module (ALM) Definition

The Adaptive Logic Module (ALM) is a basic building block that maximizes
performance and resource usage in
Intel^{®}
FPGAs.
Each ALM has the following characteristics:

- Supports up to eight inputs and eight outputs.
- Contains two or four register logic cells (
`lc_ff`). - Contains two combinational logic cells (
`lc_comb`). - Contains two dedicated full adders, a carry chain, a register chain, and a 64-bit LUT mask.

The ALM operates in adaptive combinational logic mode (normal mode), extended LUT mode (7-input function mode), arithmetic mode, and shared arithmetic mode.

The Intel^{®} Stratix^{®} 10 ALM has a high register count with 4 registers
per 8-input fracturable LUT. The ALM operating in conjunction with the new HyperFlex
architecture enables Intel^{®} Stratix^{®} 10 devices to maximize core
performance at very high core logic utilization. The Intel^{®} Stratix^{®} 10 ALM implements select 7-input logic functions, all 6-input logic functions, and two
independent functions consisting of smaller LUT sizes (such as two independent 4-input
LUTs) to optimize core logic utilization.

You can implement the following types of functions in a single ALM:

- Two independent 4-input functions
- An independent 5-input function and an independent 3-input function
- A 5-input function and a 4-input function, if they share one input
- Two 5-input functions, if they share two inputs
- An independent 6-input function
- Two 6-input functions, if they share four inputs and share function
- Some 7-input functions