UVM RAL Training
UVM RAL Training
Prerequisites:
• Concepts Covered:
• Exercise:
o Create a simple Register Block with one register, define its field, and add reset
values.
• Concepts Covered:
• Exercise:
o Define a uvm_reg_block with multiple registers and fields (RO, RW, WO attributes).
Day 3: Defining Registers and Fields
• Concepts Covered:
o Field Attributes: Reset values, bit masks, width, and access control.
• Exercise:
o Create registers with fields of different types (e.g., control, status, and data
registers). Set reset values and define access types.
• Concepts Covered:
• Exercise:
o Define a block with multiple registers and map addresses to them using
address_map.
• Concepts Covered:
• Exercise:
o Integrate a simple register block into a UVM testbench. Initialize registers and
configure reset behavior.
• Concepts Covered:
• Exercise:
o Perform basic read and write operations on registers. Validate the behavior of read
and write methods.
• Concepts Covered:
• Exercise:
o Create a custom adapter and integrate it into a simple testbench. Verify correct
transactions.
• Concepts Covered:
o Synchronizing register model with the DUT through adapter and predictor.
• Exercise:
o Connect the register model to the DUT via an adapter. Perform a simple register
read/write operation with the DUT.
• Concepts Covered:
• Exercise:
o Implement advanced register access methods and validate them with blocking/non-
blocking operations.
Day 10: Register Sequences
• Concepts Covered:
• Exercise:
• Concepts Covered:
• Exercise:
o Implement callbacks for error injection during register access and logging register
read/write activities.
• Concepts Covered:
• Exercise:
o Debug a faulty register access scenario using logging and waveform viewers.
• Concepts Covered:
• Exercise:
o Create and analyze register coverage for a register block.
• Concepts Covered:
• Exercise:
o Define a memory model with registers, perform memory read/write operations, and
validate memory access.
• Concepts Covered:
o Review of key UVM RAL concepts: Adapters, sequences, callbacks, debugging, and
coverage.
o Q&A and final discussion on the application of UVM RAL in real-world verification.
• Exercise:
Generating RAL Models using Python Script (Additional concepts – if time permits)
o Creating configurations for address mapping and register field attributes using
Python.