1、 IEEE Standard for Universal Verification Methodology Language Reference Manual Sponsored by the Design Automation Standards Committee IEEE 3 Park Avenue New York, NY 10016-5997 USA IEEE Computer Society IEEE Std 1800.2-2017 IEEE Std 1800.2-2017IEEE Standard for Universal Verification Methodology La
2、nguage Reference ManualSponsorDesign Automation Standards Committeeof theIEEE Computer SocietyApproved 14 February 2017IEEE-SA Standards BoardThe Institute of Electrical and Electronics Engineers, Inc.3 Park Avenue, New York, NY 10016-5997, USACopyright 2017 by The Institute of Electrical and Electr
3、onics Engineers, Inc.All rights reserved. Published 26 May 2017. Printed in the United States of America.IEEE and POSIX are registered trademarks in the U.S. Patent fitnessfor a particular purpose; non-infringement; and quality, accuracy, effectiveness, currency, or completeness ofmaterial. In addit
4、ion, IEEE disclaims any and all conditions relating to: results; and workmanlike effort.IEEE standards documents are supplied “AS IS” and “WITH ALL FAULTS.”Use of an IEEE standard is wholly voluntary. The existence of an IEEE standard does not imply that thereare no other ways to produce, test, meas
5、ure, purchase, market, or provide other goods and services related tothe scope of the IEEE standard. Furthermore, the viewpoint expressed at the time a standard is approved andissued is subject to change brought about through developments in the state of the art and commentsreceived from users of th
6、e standard.In publishing and making its standards available, IEEE is not suggesting or rendering professional or otherservices for, or on behalf of, any person or entity nor is IEEE undertaking to perform any duty owed by anyother person or entity to another. Any person utilizing any IEEE Standards
7、document, should rely upon hisor her own independent judgment in the exercise of reasonable care in any given circumstances or, asappropriate, seek the advice of a competent professional in determining the appropriateness of a given IEEEstandard.IN NO EVENT SHALL IEEE BE LIABLE FOR ANY DIRECT, INDIR
8、ECT, INCIDENTAL, SPECIAL,EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO:PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ORBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEG
9、LIGENCE OROTHERWISE) ARISING IN ANY WAY OUT OF THE PUBLICATION, USE OF, OR RELIANCE UPONANY STANDARD, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE ANDREGARDLESS OF WHETHER SUCH DAMAGE WAS FORESEEABLE.4Copyright 2017 IEEE. All rights reserved.Translations The IEEE consensus development process i
10、nvolves the review of documents in English only. In the eventthat an IEEE standard is translated, only the English version published by IEEE should be considered theapproved IEEE standard.Official statements A statement, written or oral, that is not processed in accordance with the IEEE-SA Standards
11、 BoardOperations Manual shall not be considered or inferred to be the official position of IEEE or any of itscommittees and shall not be considered to be, or be relied upon as, a formal position of IEEE. At lectures,symposia, seminars, or educational courses, an individual presenting information on
12、IEEE standards shallmake it clear that his or her views should be considered the personal views of that individual rather than theformal position of IEEE.Comments on standardsComments for revision of IEEE Standards documents are welcome from any interested party, regardless ofmembership affiliation
13、with IEEE. However, IEEE does not provide consulting information or advicepertaining to IEEE Standards documents. Suggestions for changes in documents should be in the form of aproposed change of text, together with appropriate supporting comments. Since IEEE standards represent aconsensus of concer
14、ned interests, it is important that any responses to comments and questions also receivethe concurrence of a balance of interests. For this reason, IEEE and the members of its societies andStandards Coordinating Committees are not able to provide an instant response to comments or questionsexcept in
15、 those cases where the matter has previously been addressed. For the same reason, IEEE does notrespond to interpretation requests. Any person who would like to participate in revisions to an IEEEstandard is welcome to join the relevant IEEE working group.Comments on standards should be submitted to
16、the following address:Secretary, IEEE-SA Standards Board 445 Hoes Lane Piscataway, NJ 08854 USALaws and regulations Users of IEEE Standards documents should consult all applicable laws and regulations. Compliance with theprovisions of any IEEE Standards document does not imply compliance to any appl
17、icable regulatoryrequirements. Implementers of the standard are responsible for observing or referring to the applicableregulatory requirements. IEEE does not, by the publication of its standards, intend to urge action that is notin compliance with applicable laws, and these documents may not be con
18、strued as doing so.CopyrightsIEEE draft and approved standards are copyrighted by IEEE under U.S. and international copyright laws.They are made available by IEEE and are adopted for a wide variety of both public and private uses. Theseinclude both use, by reference, in laws and regulations, and use
19、 in private self-regulation, standardization,and the promotion of engineering practices and methods. By making these documents available for use andadoption by public authorities and private users, IEEE does not waive any rights in copyright to thedocuments.5Copyright 2017 IEEE. All rights reserved.
20、Photocopies Subject to payment of the appropriate fee, IEEE will grant users a limited, non-exclusive license tophotocopy portions of any individual standard for company or organizational internal use or individual, non-commercial use only. To arrange for payment of licensing fees, please contact Co
21、pyright Clearance Center,Customer Service, 222 Rosewood Drive, Danvers, MA 01923 USA; +1 978 750 8400. Permission tophotocopy portions of any individual standard for educational classroom use can also be obtained throughthe Copyright Clearance Center.Updating of IEEE Standards documents Users of IEE
22、E Standards documents should be aware that these documents may be superseded at any timeby the issuance of new editions or may be amended from time to time through the issuance of amendments,corrigenda, or errata. An official IEEE document at any point in time consists of the current edition of thed
23、ocument together with any amendments, corrigenda, or errata then in effect. Every IEEE standard is subjected to review at least every ten years. When a document is more than ten yearsold and has not undergone a revision process, it is reasonable to conclude that its contents, although still ofsome v
24、alue, do not wholly reflect the present state of the art. Users are cautioned to check to determine thatthey have the latest edition of any IEEE standard.In order to determine whether a given document is the current edition and whether it has been amendedthrough the issuance of amendments, corrigend
25、a, or errata, visit the IEEE-SA Website at http:/ieeexplore.ieee.org/ or contact IEEE at the address listed previously. For more information about the IEEE-SA or IEEEs standards development process, visit the IEEE-SA Website at http:/standards.ieee.org.Errata Errata, if any, for all IEEE standards c
26、an be accessed on the IEEE-SA Website at the following URL: http:/standards.ieee.org/findstds/errata/index.html. Users are encouraged to check this URL for errataperiodically.PatentsAttention is called to the possibility that implementation of this standard may require use of subject mattercovered b
27、y patent rights. By publication of this standard, no position is taken by the IEEE with respect to theexistence or validity of any patent rights in connection therewith. If a patent holder or patent applicant hasfiled a statement of assurance via an Accepted Letter of Assurance, then the statement i
28、s listed on the IEEE-SA Website at http:/standards.ieee.org/about/sasb/patcom/patents.html. Letters of Assurance may indicatewhether the Submitter is willing or unwilling to grant licenses under patent rights without compensation orunder reasonable rates, with reasonable terms and conditions that ar
29、e demonstrably free of any unfairdiscrimination to applicants desiring to obtain such licenses.Essential Patent Claims may exist for which a Letter of Assurance has not been received. The IEEE is notresponsible for identifying Essential Patent Claims for which a license may be required, for conducti
30、nginquiries into the legal validity or scope of Patents Claims, or determining whether any licensing terms orconditions provided in connection with submission of a Letter of Assurance, if any, or in any licensingagreements are reasonable or non-discriminatory. Users of this standard are expressly ad
31、vised thatdetermination of the validity of any patent rights, and the risk of infringement of such rights, is entirely theirown responsibility. Further information may be obtained from the IEEE Standards Association.6Copyright 2017 IEEE. All rights reserved.ParticipantsThe Universal Verfication Meth
32、olodogy (UVM) Working Group is entity based. At the time this standardwas completed, the Universal Verfication Metholodogy (UVM) Working Group had the followingmembership:Tom Alsop, ChairHillel Miller, Vice ChairChristeen Gray, SecretaryJoe Daniels, Technical EditorThe following members of the entit
33、y balloting committee voted on this standard. Balloters may have votedfor approval, disapproval, or abstention. When the IEEE-SA Standards Board approved this standard on 14 February 2017, it had the followingmembership:Jean-Philippe Faure, ChairVacant position, Vice ChairJohn D. Kulick, Past ChairK
34、onstantinos Karachalios, Secretary*Member EmeritusJamsheed AgahiMala BandyopahdyayMartin BarnasconiDennis BrophyJoel FeldmanTom FitzpatrickCourtney FricanoMark GlasserChristeen GrayShuang HanShobhit KapoorAdiel KhanJustin ReficeUwe SimmMark StricklandSrivatsa VasudevanKarl WhitingAccellera Systems I
35、nitiative, Inc.Advanced Micro Devices (AMD)Analog Devices Inc.Cadence Design Systems, Inc.Cisco Systems, Inc.IBMIntel CorporationMentor GraphicsNVIDIA CorporationNXP SemiconductorsSemifore, Inc.Southwest Jiaotong UniversitySynopsys, Inc.Verific Design Automation, Inc.Chuck AdamsMasayuki AriyoshiTed
36、BurseStephen DukesDoug EdwardsJ. Travis GriffithGary HoffmanMichael JanezicThomas KoshyJoseph L. Koepfinger*Kevin LuDaleep MohlaDamir NovoselRonald C. PetersenAnnette D. ReillyRobby RobsonDorothy StanleyAdrian StephensMehmet UlemaPhil WennblomHoward WolfmanYu Yuan7Copyright 2017 IEEE. All rights res
37、erved.IntroductionVerification has evolved into a complex project that often spans internal and external teams, but thediscontinuity associated with multiple, incompatible methodologies among those teams can limitproductivity. The Universal Verification Methodology (UVM) Language Reference Manual (L
38、RM)addresses verification complexity and interoperability within companies and throughout the electronicsindustry for both novice and advanced teams while also providing consistency. While UVM is revolutionary,being the first verification methodology to be standardized, it is also evolutionary, as i
39、t is built on the OpenVerification Methodology (OVM), which combined the Advanced Verification Methodology (AVM) withthe Universal Reuse Methodology (URM) and concepts from the e Reuse Methodology (eRM).Furthermore, UVM also infuses concepts and code from the Verification Methodology Manual (VMM),pl
40、us the collective experience and knowledge of the over 300 members of the Accellera UVM WorkingGroup to help standardize verification methodology. Finally, the transaction level modeling (TLM) facilitiesin UVM are based on what was developed by Open SystemC Initiative (OSCI) for SystemC, though they
41、 arenot an exact replication or re-implementation of the SystemC TLM library.This introduction is not part of IEEE Std 1800.2-2017, IEEE Standard for Universal Verification MethodologyLanguage Reference Manual.8Copyright 2017 IEEE. All rights reserved.9Copyright 2017 IEEE. All rights reserved.Conten
42、ts1. Overview 131.1 Scope 131.2 Purpose. 131.3 Conventions used. 132. Normative references. 163. Definitions, acronyms, and abbreviations 163.1 Definitions . 163.2 Acronyms and abbreviations . 174. UVM class reference . 185. Base classes 205.1 Overview 205.2 uvm_void . 205.3 uvm_object. 205.4 uvm_tr
43、ansaction. 315.5 uvm_port_base #(IF) 365.6 uvm_time . 406. Reporting classes . 436.1 Overview 436.2 uvm_report_message . 436.3 uvm_report_object . 466.4 uvm_report_handler. 526.5 Report server 556.6 uvm_report_catcher . 597. Recording classes. 657.1 uvm_tr_database 657.2 uvm_tr_stream . 677.3 UVM li
44、nks . 718. Factory classes . 768.1 Overview 768.2 Factory component and object wrappers . 768.3 UVM factory 8210Copyright 2017 IEEE. All rights reserved.9. Phasing. 899.1 Overview 899.2 Implementation 899.3 Phasing definition classes 899.4 uvm_domain 989.5 uvm_bottomup_phase 999.6 uvm_task_phase. 10
45、09.7 uvm_topdown_phase . 1019.8 Predefined phases 10210. Synchronization classes . 10710.1 Event classes 10710.2 uvm_event_callback 11010.3 uvm_barrier 11110.4 Pool classes 11310.5 Objection mechanism 11410.6 uvm_heartbeat 11910.7 Callbacks classes 12111. Container classes 12611.1 Overview 12611.2 u
46、vm_pool #(KEY,T) 12611.3 uvm_queue #(T). 12812. UVM TLM interfaces 13112.1 Overview 13112.2 UVM TLM 1 13112.3 UVM TLM 2 14813. Predefined component classes . 16813.1 uvm_component. 16813.2 uvm_test. 18113.3 uvm_env. 18213.4 uvm_agent 18213.5 uvm_monitor 18313.6 uvm_scoreboard. 18313.7 uvm_driver #(R
47、EQ,RSP) . 18413.8 uvm_push_driver #(REQ,RSP) . 18413.9 uvm_subscriber 18511Copyright 2017 IEEE. All rights reserved.14. Sequences classes 18714.1 uvm_sequence_item. 18714.2 uvm_sequence_base. 19114.3 uvm_sequence #(REQ,RSP) 20014.4 uvm_sequence_library . 20115. Sequencer classes. 20615.1 Overview 20
48、615.2 Sequencer interface 20615.3 uvm_sequencer_base . 21115.4 Common sequencer API 21715.5 uvm_sequencer #(REQ,RSP). 21815.6 uvm_push_sequencer #(REQ,RSP) . 21916. Policy classes . 22016.1 uvm_policy 22016.2 uvm_printer 22216.3 uvm_comparer . 23716.4 uvm_recorder . 24316.5 uvm_packer 25116.6 uvm_co
49、pier 25717. Register layer . 26017.1 Overview 26017.2 Global declarations 26018. Register model . 26418.1 uvm_reg_block 26418.2 uvm_reg_map 27618.3 uvm_reg_file 28418.4 uvm_reg . 28618.5 uvm_reg_field 30318.6 uvm_mem 31418.7 uvm_reg_indirect_data 32818.8 uvm_reg_fifo . 32918.9 uvm_vreg . 33218.10 uvm_vreg_field 34218.11 uvm_reg_cbs 34718.12 uvm_mem_mam 35212Copyright 2017 IEEE. All rights reserved.19. Register layer interaction with RTL design. 36119.1 Generic register operation descriptors . 36119.2 Classes for adapting between register and bus operations. 36519.3 u