The amount of Block RAM (BRAM) in UltraScale FPGAs varies significantly across the product family. Here's a detailed breakdown:
UltraScale BRAM Overview
Basic BRAM Unit: 36Kb block (can be configured as two independent 18Kb blocks)
Organization: All UltraScale devices use 36Kb BRAM primitives (RAMB36E2)
BRAM Capacity by Device Family
1. UltraScale (Standard) FPGAs
2. UltraScale+ FPGAs (Higher Density)
3. UltraScale+ MPSoCs (with Processing System)
- Effective Capacity:
Each 36Kb block can store:
- 36Kb × 1 (deep narrow memory)
- 18Kb × 2 (when split)
- Various width configurations (×1, ×2, ×4, ×9, ×18, ×36)
- UltraRAM (in some UltraScale+ devices):
- Additional high-density memory (288Kb blocks)
- Not counted in BRAM totals above
- Example: XCZU19EG has 32.4 Mb BRAM + 108 Mb UltraRAM
- Configuration Options:
- Can be initialized during configuration
- Supports ECC in some configurations
- Cascadable for wider/deeper memory
How to Check for Your Specific Device
- In Vivado:
tcl report_property [get_parts <your_part>]
Look for "BLOCK_RAM" properties
- In documentation:
- Consult the "UltraScale Architecture Configurable Logic Block" (UG574)
- Or the specific device datasheet
Top comments (0)