SNUG Canada 2015: Replacing Hardcoded Register Values with Hardcore Abstraction


Today’s complex protocols typically involve built-in register functionality for configuration and operation purposes. This requires corresponding VIPs to mimic register functionality in order to enable exact behaviour and complex operations. VIP developers may resort to using a large number of hardcoded values representing register addresses, reset values or field locations. However, this approach is prone to errors and demands a high level of maintenance during the course of a project as register definitions often change. Our solution enables VIP developers to include register functionality in a manner that is not only scalable, but also flexible and robust to any changes. The solution involves leveraging the derived UVM register model classes, typically defined for mirroring and automating checks on DUT registers. These derived register classes can be used to create a layer of abstraction, allowing the VIP to be transparent to all predefined register related values in the protocol.

( Hilmar Van Der Kooij , Alex Melikian )

October 1, 2015