Welcome to AVL-RAL's Documentation
=========================================
What is AVL?
------------
**AVL** is the Apheleia Verification Library.
For full details see `AVL Documentation `_.
What is AXI-RAL?
-------------------
**AXI-RAL** is the Register Abstraction Layer for the AVL library.
Why Use AVL-RAL?
----------------
AVL-RAL is a library designed to provided a simple API for accessing registers and fields within an AVL test-bench. \
AVL-RAL is quick and easy to integrate into any test-bench provided the registers are defined in `systemrdl `_ \
format or `IPXACT `_ XML format.
AVL-RAL provides both:
- Front-door access. Via read / write callbacks.
- Back-door access. Via peek / poke methods (after assigning a HDL path to the underlying state).
Unlike UVM-RAL, AVL-RAL makes no attempt to model the wide range of user defined register definitions. These often involve difficult hardware interactions \
resulting in the user creating too many hooks into the RTL for the test-bench to remain simple and HDL independent.
Instead, AVL-RAL implements read and write callbacks for registers, but fields update by a register read-modify-write (as would be used by Software).