The UltraRAM (URAM) is a high density FPGA 288Kb memory building block. UltraRAMs coexist with block RAMs in UltraScale+ devices. The 288 Kb blocks are cascadable to enable deeper memory implementation. The URAMs may exist with very little or no fabric resources and with no timing penalty, if pipelined appropriately.
Both of the ports share the same clock and can address all of the 4K x 72 bits. Each port can independently read from or write to the memory array. UltraRAM supports two types of write enable schemes. The first mode is consistent with the block RAM byte write enable mode.
The second mode allows gating the data and parity byte writes separately. Multiple UltraRAM blocks can be cascaded together to create larger memory arrays. Dedicated routing in the UltraRAM column enables the entire column height to be connected together. This makes UltraRAM an ideal solution for replacing external memories such as SRAM.
The UltraRAM Sheet provides columns to enter the number and configurations of the UltraRAMs intended to be used for the design. It also displays the resulting power for the VCCINT and VCCBRAM power rails. The Utilization shows the number of UltraRAM blocks (URAM288) used in the target device.
Following are descriptions of the columns used for design entry:
- Name
- Enter a name to identify the UltraRAM or UltraRAM module.
- URAMs
- The Number of UltraRAMs in this module.
- Cascade Group Size
- UltraRAM blocks support cascading to create larger memory arrays while
reducing the overall power by enabling only one UltraRAM of a cascade at a
time.
Example: 20 UltraRAM blocks with a Cascade Group Size of 4 represents 20/4 = 5 sets of cascaded URAMs of 4 blocks each. If there is no cascading, use 1 as the value of cascade group size.
- Latency
- The optional UltraRAM pipeline registers are IREG_PRE (input) or REG_CAS (cascade). The default value is Cascade Group Size divided by 3. If there is no UltraRAM cascading, only IREG_PRE can be used which corresponds to a Latency of 1.
- Mode
- Chooses between URAM288 (no ECC) and URAM288_with_ECC.
- Sleep Rate
- The percentage of time the URAM SLEEP input pin is asserted. The value of Auto is also supported for Automatic Sleep Mode.
- Average Inactive Cycles
- The average number of consecutive inactive cycles when in Sleep Mode. The minimum value is > 10 or the Cascade Group Size minus 2.
- Input Toggle Rate
- The average toggle rate of the data inputs (DIN) for both ports A and B.
- Output Toggle Rate
- The average toggle rate of the data outputs (DOUT) for both ports A and B.
- Clock (MHz)
- Clock frequency of the UltraRAM or UltraRAM module.
Following are values specified for both UltraRAM ports A and B:
- Data Width
- Specify the exact data width if less than the maximum 72 bits.
- Enable Rate
- The percentage of time the UltraRAM is enabled.
- Write Enable
- The percentage of time the write enable input is asserted, independently of the Enable Rate. The write enable pins are the URAM RDB_WR_A and RDB_WR_B pins.