Embedded Memory User Guide: Agilex™ 3 FPGAs and SoCs

ID 849316
Date 5/22/2025
Public
Document Table of Contents

1.1. Agilex™ 3 Embedded Memory Features

Table 1.  Types of Embedded Memory Blocks in Agilex™ 3 FPGAs and SoCs
  M20K Blocks Memory Logic Array Blocks (MLABs)
Capacity 20-kilobit (Kb) 640-bit
Description Dedicated memory resources providing a large number of independent ports (up to 4 independent ports). Ideal for larger memory arrays with high performance requirements. Memory blocks configured from dual-purpose Logic Array Blocks (LABs). Offers flexibility for various memory designs, especially wide and shallow arrays. Well-suited for implementing functionalities such as:
  • Shift registers (commonly used in Digital Signal Processing)
  • Wide and shallow FIFO buffers (First-In-First-Out)
  • Filter delay lines
Benefits
  • High performance for data access.
  • Suitable for large memory designs.
  • Multiple independent ports for parallel access.
  • Flexibility for customized memory design.
  • Efficient for wide, shallow memory structures.
  • Can be configured as shift registers, FIFOs, or delay lines.

In Agilex™ 3 devices, you can configure each ALM in the MLAB as ten (32×2 bits) blocks. The Agilex™ 3 devices provide one 32×20 bits simple dual-port SRAM block per MLAB.

Table 2.  Memory Access Options for Agilex™ 3 Embedded Memory Blocks
Mode Description
Single-port This mode provides a single access point for both reading and writing data. Only one operation (read or write) can occur at a time.
Simple dual-port This mode provides simultaneous read and write access. It offers two independent ports but with a limitation: reading and writing to the same location at the same time is restricted.
Emulated true dual-port This mode provides two independent ports that can perform simultaneous read and write operations on separate memory locations. It leverages FPGA fabric resources to emulate true dual-port behavior, potentially with slight performance or resource usage trade-offs compared to dedicated hardware true dual-port.
Simple quad-port This mode provides four access points for enhanced data throughput. Similar to simple dual-port, simultaneous access to the same location for reading and writing can lead to data corruption.
ROM (Read-only memory) This mode provides read operations from the memory block only. Agilex™ 3 devices provide two options:
  • Single-port—offers a single access point for reading data.
  • Dual-port—offers simultaneous read operations from two independent ports.
Table 3.   Agilex™ 3 Embedded Memory FeaturesThis table summarizes the features supported by the Agilex™ 3 embedded memory blocks.
Features M20K MLAB
Maximum operating frequency Refer to the memory block specification in the device data sheet.
Total RAM bits (including parity bits) 20,480 bits 640 bits
Byte enable Supported. Supported.
Address Hold

Supported in simple dual-port RAM mode only.

Supported for read address only.
Memory Initialization File (.mif or .hex) Supported. Supported.
Power-up state Output ports are cleared.
  • Registered output ports—cleared.
  • Unregistered output ports—refer to .mif or .hex for the memory contents.
Asynchronous/Synchronous Clears

Supports asynchronous clear on read address registers in simple dual-port and simple quad-port modes only. 1

Output registers only. 1

Same-port read-during-write
  • Single Port RAM—output ports set to Old Data or Don't Care.
  • Emulated True Dual Port RAM—output ports set to New Data
  • Simple Quad Port—output ports set to Don't Care

Output ports set to Don't Care . 2

Mixed-port read-during-write
  • Simple Dual Port RAM—output ports set to Old Data or Don't Care.
  • True Dual Port RAM—output ports set to Don't Care or New Data.
  • Simple Quad Port—output ports set to new_a_old_b.

Output ports set to New Data, Old Data, or Don't Care. 2

Error Correction Code (ECC) support
  • Built-in support ×32-wide simple dual-port mode.
  • Parity bits.
Force-to-Zero Supported.
Coherent read memory Supported.
Freeze logic Supported.
True dual port (TDP) dual clock emulator Supported.
Simple dual-port mixed width Supported.
FIFO buffer mixed width Supported.
Dual-clock mode

Supported in simple dual-port RAM mode only.

Supported.
Full synchronous memory Supported. Supported.
Asynchronous memory For flow-through read memory operations only.
Write/read operation triggering Rising clock edges. Rising clock edges.
1 The actual data stored in the memory remains unchanged.
2 While simulating your design, you can treat the unused ports as Don't Care. However, these ports have definite values in real hardware.