Volatile - 2021.2 English

Vitis High-Level Synthesis User Guide (UG1399)

Document ID
UG1399
ft:locale
English (United States)
Release Date
2021-12-15
Version
2021.2 English

The volatile qualifier impacts how many reads or writes are performed in the RTL when pointers are accessed multiple times on function interfaces. Although the volatile qualifier impacts this behavior in all functions in the hierarchy, the impact of the volatile qualifier is primarily discussed in the section on top-level interfaces.

Note: Accesses to/from volatile variables is preserved. Currently the volatile per object is supported. This means:
  • no burst access
  • no port widening
  • no dead code elimination

Tip: Arbitrary precision types do not support the volatile qualifier for arithmetic operations. Any arbitrary precision data types using the volatile qualifier must be assigned to a non-volatile data type before being used in arithmetic expression.