The PL includes block RAM that can be configured and operated in different ways.
- Synchronous Operation
- Each memory access, read, and write is controlled by the clock. All inputs, data, address, clock enable, and write enable are registered. The data output is always latched, retaining data until the next operation. An optional output data pipeline register allows higher clock rates at the cost of an extra cycle of latency. During a write operation, the data output can be made to reflect the previously stored data, the newly written data, or remain unchanged. There is independent reset control of output latches and registers.
- Asynchronous Operation
- The data outputs can also be set or reset asynchronously. Sleep input (places array in low power state) can be optionally asynchronous.
- True Dual-port Operation
- The block RAM has two completely independent ports that share nothing but the stored data.
- Simple Dual-port Operation
- One port is dedicated as a write port and the other as a read port. Consequently, the data width can be extended to 72 bits for the 36 Kb full block RAM or 36 bits for the split 18 Kb block RAM.
Cascade mode supports all configurations available in 36 Kb RAM or 18 Kb RAM. Cascading refers to combining multiple block RAMs to build larger ones, without using additional logic resources.
Each 64-bit-wide block RAM can generate, store, and use eight additional bits to perform single-bit error correction and double-bit error detection (ECC) during the read process. The ECC logic can also be used when writing to, or reading from, external 64- or 72-bit-wide memories. Block RAM contents can be initialized or cleared by the configuration bitstream.
For additional features and functionality, see the Versal Adaptive SoC Memory Resources Architecture Manual (AM007).
The number of block RAMs in a device are listed in the Versal Architecture and Product Data Sheet: Overview (DS950).
MPSoC to Versal Block RAM Comparisons
The block RAM has several notable differences compared to the block RAM in the AMD UltraScale+™ device. Several features are removed, including x1, x2, x4 widths, hard FIFO (can be instantiated), address enable/compare, and systolic cascade. See the Versal Adaptive SoC Memory Resources Architecture Manual (AM007) for a complete list, including a few changes and enhancements.