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
| 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. |
| 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