Sie sind auf Seite 1von 3

Verification Academy Patterns Library

Verification Academy Patterns Library


Pattern Name: The BFM Notification Pattern
 Intent: The BFM Notification Pattern is an Analysis Pattern to facilitate the
design of transactors for dual domain partitioned testbenches that provide
effective and efficient notifications of protocol transaction occurrences, and any
other interesting protocol and design events and conditions, for testbench
control and analysis.

 Motivation: In accordance with the established analysis connection topology of


a modern testbench, and for optimal performance in a dual domain testbench
with partitioned HVL and HDL module hierarchies, HDL BFM interfaces or
modules should autonomously observe protocol transactions, and any signal-
level protocol and design events and conditions, and push out corresponding
notifications (interrupt occurred, reset asserted, transaction completed, etc.) to
their respective HVL class proxies where these notifications can be further
broadcasted to the upper testbench layers, for instance using standard TLM-
based communication semantics. This is in contrast with the upper testbench
layers initiating such monitoring activity, through the proxies, by polling for
transactions, or signal or state changes, which is unnatural and generally
inefficient.

 Applicability: The BFM Notification Pattern is applicable in any situation


demanding a common dual domain partitioned testbench architecture (i.e.,
separated HVL and HDL module hierarchies) for both simulation and emulation,
and across verification engines in general.

Page 1 © Mentor Graphics Corporation, all rights reserved.


Verification Academy Patterns Library

 Structure: The following diagram illustrates the BFM push behavior advocated
by this pattern.

 Implementation: A transactor following the prescribed BFM Notification


Pattern to provide sampled transactions for control and analysis (such as a
monitor) or, in general, notifying relevant event occurrences or status
information, implements an HDL BFM and HVL proxy according to the BFM-
Proxy Pair Pattern, with the BFM (not the proxy) initiating the required cross-
domain data transfer via dedicated proxy class member function calls.

 Example: A BFM Notification Pattern source code example for a UVM monitor
is provided below.

Page 2 © Mentor Graphics Corporation, all rights reserved.


Verification Academy Patterns Library

 Consequences: The outbound communication – i.e. HDL to HVL – encouraged


by this BFM Notification Pattern is unidirectional and “passive”, and generally
essential for performance in comparison with the alternative of HVL proxy
initiated communication which is inevitably bidirectional.

 Related Patterns: A prerequisite for this BFM Notification Pattern is the BFM-
Proxy Pair Pattern. Additionally, the BFM Notification Pattern resembles the
observer pattern as one of the behavioral patterns of the Gang-of-Four’s OOP
design patterns (though applying instead from a static interface or module to a
dynamic object).

 Contributor: Hans van der Schoot, based on the following works:

https://verificationacademy.com/cookbook/emulation
https://verificationacademy.com/cookbook/emulation/backpointers
“UVM & Emulation: How to Get Your Ultimate Testbench Acceleration Speed-
up,” H. van der Schoot and A. Yehia, in Proc. of DVCon Europe 2015, Munich,
Germany, November 2015
“Off to the Races with Your Accelerated SystemVerilog Testbench,” H. van der
Schoot, A. Saha, A. Garg and K. Suresh, in Proc. of DVCon 2011, San Jose, CA,
USA, March 2011

 Release Date: February 25, 2016

Corrections and Suggestions: To improve the quality of the Verification Academy


Patterns Library we welcome your comments, suggestions, and corrections. Please
contact us at: https://verificationacademy.com/contact

Page 3 © Mentor Graphics Corporation, all rights reserved.

Das könnte Ihnen auch gefallen