1、 IEEE Standard for the Functional Verification Language e Sponsored by the Design Automation Standards Committee IEEE 3 Park Avenue New York, NY 10016-5997 USA IEEE Computer Society IEEE Std 1647-2016(Revision ofIEEE Std 1647-2011) IEEE Std 1647-2016(Revision ofIEEE Std 1647-2011)IEEE Standard for t
2、he Functional Verification Language eSponsorDesign Automation Standards Committeeof theIEEE Computer SocietyApproved 30 June 2016IEEE-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
3、and Electronics Engineers, Inc.All rights reserved. Published 6 January 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 ofmater
4、ial. In addition, 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 produc
5、e, test, measure, 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 fro
6、m users of the 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 I
7、EEE Standards 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
8、 DIRECT, INDIRECT, 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
9、(INCLUDING NEGLIGENCE 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.TranslationsThe IEEE consensus developm
10、ent process involves 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
11、-SA Standards 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 in
12、formation on 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 ofmembershi
13、p affiliation 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 aconse
14、nsus of concerned 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 ques
15、tionsexcept in 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
16、 submitted to 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 complian
17、ce to any applicable 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
18、may not be construed 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 regula
19、tions, and use 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 ri
20、ghts reserved.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, ple
21、ase contact Copyright 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 document
22、s Users of IEEE 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 e
23、dition of thedocument 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
24、still ofsome value, 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 amendme
25、nts, corrigenda, 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 IE
26、EE standards can 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 m
27、attercovered by 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 t
28、he statement is 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 cond
29、itions that are 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
30、, for conductinginquiries 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 ar
31、e expressly advised 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.ParticipantsAt the time this
32、 standard was submitted to the IEEE-SA Standards Board for approval, theIEEE e Functional Verification Language (eWG) Working Group had the following members andobservers: Darren Galpin, ChairSrinivasan Venkataramanan, Vice ChairAlan Perlman, Karen Ochoa, Amy Witherow, Technical EditorsThe following
33、 members of the individual balloting committee voted on this standard. Balloters may havevoted for approval, disapproval, or abstention. When the IEEE-SA Standards Board approved this standard on 30 June 2016, it had the followingmembership:Jean-Philippe Faure, ChairTed Burse, Vice ChairJohn D. Kuli
34、ck, Past ChairKonstantinos Karachalios, Secretary*Member EmeritusCristian AmitroaieMike BartleyErez BashiStefan BirmanHannes FroehlichKishore KarnaneYaron KashaiSilas McDermottGenadi OsowieckiAndrew PizialiAleksandar RandjicScott RolandDamian SavageUwe SimmAkash SinghMarat TeplitskyYuri TsoglinMatan
35、 VaxGreg WhiteSourav DuttaHannes FroehlichDarren GalpinRandall GrovesWerner HoelzlNoriyuki IkeuchiAdri JovinPiotr KarockiYaron KashaiAdam LeyNick S.A. NikjooBansi PatelAndrew PizialiIulian ProfirRobert RobinsonWalter StrupplerRichard ThayerJohn VergisPaul WorkChuck AdamsMasayuki AriyoshiStephen Duke
36、sJianbin FanRonald W. HotchkissJ. Travis GriffithGary HoffmanMichael Janezic Joseph L. Koepfinger*Hung LingKevin LuGary RobinsonAnnette D. ReillyMehmet UlemaYingli WenHoward WolfmanDon WrightYu YuanDaidi Zhong7Copyright 2017 IEEE. All rights reserved.IntroductionThe e functional verification languag
37、e is an application-specific programming language aimed at theproblem of verifying functional correctness of hardware and software designs. Simply stated, functionalverification attempts to provide a quantitative answer to the question: How well does the design match thefunctional specification?Func
38、tional correctness of chip designs grew in criticality from the mid-1980s. As design complexity keptgrowing, ad hoc testing methods ran out of steam and a more systematic verification approach wasnecessary. Manually constructed test suites, the early method of choice, became both uneconomical andine
39、ffective when scaled up. As a result, many companies supplemented manual test suites withpseudo-random generation of input stimulus. Such test generation programs were typically built for aparticular project or a particular architecture. They turned out to be expensive to develop and maintain, buton
40、ce functional, they would clean up the design in a very thorough way.A key observation made by Yoav Hollander, the creator of e, was that verification environments of differentprojects have a lot in common and yet each verification environment is structured to match a particulardesign specification.
41、 Hollanders solution was to create a language that had verification-specific constructsas primitives and the full capabilities of a high-level language for customization. In particular,pseudo-random test generation became a built-in capability of the language. Early prototypes of thelanguage were ex
42、perimented with as early as 1993, showing significant productivity gains.The e language was productized by Verisity, Ltd., in 1996, as part of a functional verification tool suite. Theproliferation of the e language and the growing investment in e-based intellectual property (IP) compelledthe creati
43、on of the e steering committee in June of 2002, composed of individuals from Texas Instruments,Rambus, ST Microelectronics, Cisco, Intel, Axis System, STARC, and Verisity. The e steering committeerecommended the e language be standardized through The Institute of Electrical and Electronics Engineers
44、(IEEE). Accepting the recommendation, Verisity released the rights to the language to the IEEE in June of2003.The e language, in its current form, brings together concepts from many domains. e has a basic object-oriented (OO) programming model, with implicit memory management andsingle inheritance.
45、In this, e is similar to Java.1 Beyond objects, e supports aspects, which can be viewed as layers cutting across multiple objects.Adding an aspect to an existing program refines the program by introducing a coherent change to aplurality of objects. e supports constraints as object features. Constrai
46、nts are used to refine object modeling. Theexecution model of the language involves resolving constraint systems and picking random valuesthat would satisfy constraint systems. e is a strongly typed language, like Pascal and Modula. e has concurrency constructs and modeling blocks for hierarchical c
47、omposition, similar to hardwaredescription languages like Verilog (see IEEE Std 1364) and VHDL (see IEC/IEEE 61691-1-1).1, 2Concurrency in e is synchronous, like in Esterel.1Java is a trademark of Sun Microsystems, Inc. in the United States and other countries. Verilog is a registered trademark of C
48、adenceDesign Systems, Inc. This information is given for the convenience of users of this standard and does not constitute an endorsementby the IEEE of these products. Equivalent products may be used if they can be shown to lead to the same results.2Information on references can be found in Clause 2
49、.This introduction is not part of IEEE Std 1647-2016, IEEE Standard for the Functional Verification Language e.8Copyright 2017 IEEE. All rights reserved. e contains a temporal language that borrows from Linear Temporal Logic and Interval TemporalLogic. e has many built-in constructs aimed at simplifying common programming tasks; built-in support forlists and hashes; and pattern matching and string- and file-manipulation features, which areborrowed from Perl.3 The e syntax is extendable with a powerful macro capability.This combination of concepts caters directl