RQS_UTIL-203: Large ROM Inferred using Distributed RAM - 2025.2 English - UG906

Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906)

Document ID
UG906
Release Date
2025-12-10
Version
2025.2 English

ROMs with an array depth significantly over 64 bits are better inferred into block RAM instead of distributed RAM. The synthesis tool attempts this by default but might fail due to coding style or constraint restrictions.

The most common reason block RAM is not inferred is a missing output register, because block RAM supports only synchronous reads. Distributed RAM does not have this limitation. Another reason is use of an array read method or a ROM_STYLE attribute that forces distributed RAM inference.

By making minor coding adjustments, you can improve LUT utilization, timing, and, where applicable, congestion.