Storage Binding - Storage Binding - 2026.1 English - UG1399

Vitis High-Level Synthesis User Guide (UG1399)

Document ID
UG1399
Release Date
2026-06-23
Version
2026.1 English

Description

Storage Binding (syn.storage / config_storage)

Sets the global default options for Vitis HLS micro-architecture binding of FIFO storage elements to memory resources. The default configuration can be overridden by the BIND_STORAGE pragma/directive for specific design elements, or by the storage_type option in the INTERFACE pragma/directive.

  • Config file syntax: Space-separated key:value pairs (not "=") for options after the type keyword.
  • Tcl syntax: config_storage [OPTIONS] <type> — the type (fifo) is a positional argument; options use "-" prefix.

Syntax

Table 1. Options Table
Option Config File Tcl Default Description
type (positional)syn.storage=fifo ... (positional)config_storage fifo ... Implementation resource for FIFO storage binding.
impl syn.storage=fifo impl:<value> config_storage fifo -impl <value> | autosrl autosrl Implementation resource for FIFO storage binding.
auto_srl_max_bits syn.storage=fifo ... auto_srl_max_bits=<N> config_storage fifo -impl autosrl -auto_srl_max_bits <N> 1024 Maximum total bit capacity (depth x width) for auto-SRL implementation. Used with -impl autosrl.
auto_srl_max_depth syn.storage=fifo ... auto_srl_max_depth=<N> config_storage fifo -impl autosrl -auto_srl_max_depth <N> 2 Maximum depth for auto-SRL implementation. Used with -impl autosrl.
Table 2. Implementation Values Table
impl Description
autosrl Default: Automatically use SRL when within auto_srl_max_bits/auto_srl_max_depth limits; fall back to BRAM otherwise.
auto Tool chooses implementation.
bram Block RAM
lutram LUT-based RAM
uram Ultra RAM
memory Generic memory
srl Shift register LUT (SRL) — forced SRL regardless of size

Config File Usage


ini
[hls]
syn.storage=fifo impl:bram
syn.storage=fifo impl:srl auto_srl_max_bits=512 auto_srl_max_depth=4
Tip: The latency can be specified for a specific operation without specifying the implementation (-impl). This leaves Vitis HLS to choose the implementation while managing the latency.

Tcl Usage


tcl
config_storage fifo -impl bram
config_storage fifo -impl srl -auto_srl_max_bits 512 -auto_srl_max_depth 4

Examples

Configure the default binding of FIFO to URAM:


tcl
config_storage fifo -impl uram