Intel® MAX™ 10 Embedded Memory User Guide

ID 683431
Date 5/05/2023
Public
Document Table of Contents

2.2.1. Supported Memory Operation Modes

Table 3.  Supported Memory Operation Modes in the M9K Embedded Memory Blocks
Memory Operation Mode Related IP Core Description
Single-port RAM RAM: 1-PORT IP Core

Single-port mode supports non-simultaneous read and write operations from a single address.

Use the read enable port to control the RAM output ports behavior during a write operation:

  • To show either the new data being written or the old data at that address, activate the read enable (rden) during a write operation.
  • To retain the previous values that are held during the most recent active read enable, perform the write operation with the read enable port deasserted.
Simple dual-port RAM RAM: 2-PORT IP Core

You can simultaneously perform one read and one write operations to different locations where the write operation happens on Port A and the read operation happens on Port B.

In this memory mode, the M9K memory blocks support separate wren and rden signals. To save power, keep rden signal low (inactive) when not reading.

True dual-port RAM RAM: 2-PORT IP Core

You can perform any combination of two port operations:

  • Two reads, two writes, or;
  • One read and one write at two different clock frequencies.

In this memory mode, the M9K memory blocks support separate wren and rden signals. To save power, keep rden signal low (inactive) when not reading.

Single-port ROM ROM: 1-PORT IP Core Only one address port is available for read operation.

You can use the memory blocks as a ROM.

  • Initialize the ROM contents of the memory blocks using a .mif or .hex file.
  • The address lines of the ROM are registered.
  • The outputs can be registered or unregistered.
  • The ROM read operation is identical to the read operation in the single-port RAM configuration.
Dual-port ROM ROM: 2-PORT IP Core

The dual-port ROM has almost similar functional ports as single-port ROM. The difference is dual-port ROM has an additional address port for read operation.

You can use the memory blocks as a ROM.

  • Initialize the ROM contents of the memory blocks using a .mif or .hex file.
  • The address lines of the ROM are registered.
  • The outputs can be registered or unregistered.
  • The ROM read operation is identical to the read operation in the single-port RAM configuration.
Shift-register Shift Register (RAM-based) IP Core

You can use the memory blocks as a shift-register block to save logic cells and routing resources.

The input data width (w), the length of the taps (m), and the number of taps (n) determine the size of a shift register (w × m × n). The size of the shift register must be less than or equal to the maximum number of memory bits (9,216 bits). The size of (w × n) must be less than or equal to the maximum of width of the blocks (36 bits).

You can cascade memory blocks to implement larger shift registers.

FIFO FIFO IP Core

You can use the memory blocks as FIFO buffers.

  • Use the FIFO IP core in single clock FIFO (SCFIFO) mode and dual clock FIFO (DCFIFO) mode to implement single- and dual-clock FIFO buffers in your design.
  • Use dual clock FIFO buffers when transferring data from one clock domain to another clock domain.
  • The M9K memory blocks do not support simultaneous read and write from an empty FIFO buffer.
Memory-based multiplier ALTMEMMULT IP Core You can use the memory blocks as a memory-based multiplier.