Embedded Memory User Guide: Agilex™ 5 FPGAs and SoCs

ID 813901
Date 4/01/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

4.1.8. RAM and ROM Interface Signals

Table 27.  Interface Signals of the Agilex™ 5 RAM and ROM IPs
Signal Direction Required Description
data_a Input Optional Data input to port A of the memory.

The data_a port is required for all RAM operation modes:

  • SINGLE_PORT
  • DUAL_PORT
  • BIDIR_DUAL_PORT
  • QUAD_PORT
address_a Input Yes Address input to port A of the memory.

The address_a signal is required for all operation modes.

address2_a Input Yes

(for simple quad-port)

Read address input to port A of the memory.

The address2_a signal is required if the operation_mode parameter is set to QUAD_PORT.

wren_a Input Optional Write enable input for address_a port.

The wren_a signal is required all RAM operation modes:

  • SINGLE_PORT
  • DUAL_PORT
  • BIDIR_DUAL_PORT
  • QUAD_PORT
rden_a Input Optional Read enable input for address_a port. The rden_a signal is supported depending on your selected memory mode and memory block.
byteena_a Input Optional Byte enable input to mask the data_a port so that only specific bytes, nibbles, or bits of the data are written.

The byteena_a port is not supported in the following conditions:

  • If implement_in_les parameter is set to ON
  • If operation_mode parameter is set to ROM
addressstall_a Input Optional Address clock enable input to hold the previous address of address_a port for provided that the addressstall_a port is high.
q_a Output Yes Data output from port A of the memory.

The q_a port is required if the operation_mode parameter is set to any of the following values:

  • SINGLE_PORT
  • BIDIR_DUAL_PORT
  • QUAD_PORT
  • ROM
The width of q_a port must be equal to the width of data_a port.
data_b Input Optional Data input to port B of the memory.

The data_b port is required if the operation_mode parameter is set to BIDIR_DUAL_PORT and QUAD_PORT .

address_b Input Optional Address input to port B of the memory.

The address_b port is required if the operation_mode parameter is set to the following values:

  • DUAL_PORT
  • BIDIR_DUAL_PORT
  • QUAD_PORT
address2_b Input Yes

(for simple quad-port)

Read address input to port B of the memory.

The address2_b is required if the operation_mode parameter is set to QUAD_PORT.

wren_b Input Yes Write enable input for address_b port.

The wren_b port is required if operation_mode is set to BIDIR_DUAL_PORT and QUAD_PORT .

rden_b Input Optional Read enable input for address_b port. The rden_b port is supported depending on your selected memory mode and memory block
byteena_b Input Optional Byte enable input to mask the data_b port so that only specific bytes, nibbles, or bits of the data are written.

The byteena_b port is not supported in the following conditions:

  • If implement_in_les parameter is set to ON
  • If operation_mode parameter is set to SINGLE_PORT, DUAL_PORT, or ROM
q_b Output Yes Data output from port B of the memory. The q_b port is required if the operation_mode is set to the following values:
  • DUAL_PORT
  • BIDIR_DUAL_PORT
  • QUAD_PORT

The width of q_b port must be equal to the width of data_b port.

clock0 Input Yes The following describes which of your memory clock must be connected to the clock0 port, and port synchronization in different clocking modes:
  • Single clock: Connect your single source clock to clock0 port. All registered ports are synchronized by the same source clock.
  • Read/Write: Connect your read clock to clock0 port. All registered ports related to write operation, such as data_a port, address_a port, wren_a port, and byteena_a port are synchronized by the write clock.
  • Input Output: Connect your input clock to clock0 port. All registered input ports are synchronized by the input clock.
  • Independent clock: Connect your port A clock to clock0 port. All registered input and output ports of port A are synchronized by the port A clock.
clock1 Input Optional The following describes which of your memory clock must be connected to the clock1 port, and port synchronization in different clocking modes:
  • Single clock: Not applicable. All registered ports are synchronized by clock0 port.
  • Read/Write: Connect your read clock to clock1 port. All registered ports related to read operation, such as address_b port and rden_b port are synchronized by the read clock.
  • Input Output: Connect your output clock to clock1 port. All the registered output ports are synchronized by the output clock.
  • Independent clock: Connect your port B clock to clock1 port. All registered input and output ports of port B are synchronized by the port B clock.
clocken0 Input Optional Clock enable input for clock0 port.
clocken1 Input Optional Clock enable input for clock1 port.
eccstatus Output Optional A bit wide error correction status port. Indicate whether the data that is read from the memory has an error in single-bit with correction, fatal error with no correction, or no error bit occurs.

The eccstatus port is supported if all the following conditions are met:

  • operation_mode parameter is set to DUAL_PORT
  • ram_block_type parameter is set to M20K
  • width_a and width_b parameter have the same value
  • Byte enable is not used
eccencbypass Input Optional When active, this port allow user to inject parity flip bits through eccencparity ports. When inactive, parity flip bits is generated using internal ecc encoder. This port can only be used when enable_ecc_encoder_bypass is set to “TRUE”.
eccencparity Input Optional When eccencbypass is active, user can inject 8-bit parity flip through eccencparity port. This port can be used only when enable_ecc_encoder_bypass is set to “TRUE”.
data Input Yes Data input to the memory. The data port is required and the width must be equal to the width of the q port.
wraddress Input Yes Write address input to the memory.
wren Input Yes Write enable input for wraddress port. The wren port is required.
rdaddress Input Yes Read address input to the memory.
rden Input Optional Read enable input for rdaddress port.
byteena Input Optional Byte enable input to mask the data port so that only specific bytes, nibbles, or bits of data are written. It is supported in Agilex™ 5 devices when you set the ram_block_type parameter to MLAB.
wraddressstall Input Optional Write address clock enable input to hold the previous write address of wraddress port for as long as the wraddressstall port is high.
rdaddressstall Input Optional Read address clock enable input to hold the previous read address of rdaddress port for as long as the rdaddressstall port is high.
q Output Yes Data output from the memory.
inclock Input Yes The following describes which of your memory clock must be connected to the inclock port, and port synchronization in different clocking modes:
  • Single clock: Connect your single source clock to inclock port and outclock port. All registered ports are synchronized by the same source clock.
  • Read/Write: Connect your write clock to inclock port. All registered ports related to write operation, such as data port, wraddress port, wren port, and byteena port are synchronized by the write clock.
  • Input/Output: Connect your input clock to inclock port. All registered input ports are synchronized by the input clock.
outclock Input Yes The following describes which of your memory clock must be connected to the outclock port, and port synchronization in different clocking modes:
  • Single clock: Connect your single source clock to inclock port and outclock port. All registered ports are synchronized by the same source clock.
  • Read/Write: Connect your read clock to outclock port. All registered ports related to read operation, such as rdaddress port and rdren port are synchronized by the read clock.
  • Input/Output: Connect your output clock to outclock port. The registered q port is synchronized by the output clock.
inclocken Input Optional Clock enable input for inclock port.
outclocken Input Optional Clock enable input for outclock port.
aclr Input Optional Asynchronously clear the output ports. The asynchronous clear effect on the registered ports can be controlled through their corresponding clear parameter, such as outdata_aclr_a and outdata_aclr_b.
sclr Input Optional Synchronously clear the output ports. The synchronous clear effect on the registered ports can be controlled through their corresponding parameter, such as outdata_sclr_a and outdata_sclr_b.
Note: When running the embedded memory simulation model, you must ensure that you do not provide “X” or dont_care as inputs to the simulation model. Providing “X” or don’t_care may result in unexpected behavior in simulation.