IEEE 1666-2011 en Standard SystemC Language Reference Manual (IEEE Computer Society)《标准系统C语言参考手册》.pdf

上传人:registerpick115 文档编号:1248394 上传时间:2019-09-02 格式:PDF 页数:638 大小:3.15MB
下载 相关 举报
IEEE 1666-2011 en Standard SystemC Language Reference Manual (IEEE Computer Society)《标准系统C语言参考手册》.pdf_第1页
第1页 / 共638页
IEEE 1666-2011 en Standard SystemC Language Reference Manual (IEEE Computer Society)《标准系统C语言参考手册》.pdf_第2页
第2页 / 共638页
IEEE 1666-2011 en Standard SystemC Language Reference Manual (IEEE Computer Society)《标准系统C语言参考手册》.pdf_第3页
第3页 / 共638页
IEEE 1666-2011 en Standard SystemC Language Reference Manual (IEEE Computer Society)《标准系统C语言参考手册》.pdf_第4页
第4页 / 共638页
IEEE 1666-2011 en Standard SystemC Language Reference Manual (IEEE Computer Society)《标准系统C语言参考手册》.pdf_第5页
第5页 / 共638页
点击查看更多>>
资源描述

1、g3g3g3IEEE Standard for Standard SystemCLanguage Reference Manualg3Sponsored by theDesign Automation Standards Committeeg3IEEE 3 Park Avenue New York, NY 10016-5997 USA9 January 2012 IEEE Computer Society IEEE Std 1666-2011 (Revision of IEEE Std 1666-2005)IEEE Std 1666-2011(Revision ofIEEE Std 1666-

2、2005)IEEE Standard for Standard SystemCLanguage Reference ManualSponsorDesign Automation Standards Committeeof theIEEE Computer SocietyApproved 10 September 2011IEEE-SA Standards BoardThe Institute of Electrical and Electronics Engineers, Inc.3 Park Avenue, New York, NY 10016-5997, USACopyright 2012

3、 by the Institute of Electrical and Electronics Engineers, Inc.All rights reserved. Published 9 January 2012. Printed in the United States of America.IEEE is a registered trademark in the U.S. Patent +1 978 750 8400. Permission tophotocopy portions of any individual standard for educational classroo

4、m use can also be obtained through theCopyright Clearance Center.ivCopyright 2012 IEEE. All rights reserved.IntroductionThis document defines SystemC, which is a C+ class library.As the electronics industry builds more complex systems involving large numbers of components includingsoftware, there is

5、 an increasing need for a modeling language that can manage the complexity and size ofthese systems. SystemC provides a mechanism for managing this complexity with its facility for modelinghardware and software together at multiple levels of abstraction. This capability is not available intraditiona

6、l hardware description languages.Stakeholders in SystemC include Electronic Design Automation (EDA) companies who implementSystemC class libraries and tools, integrated circuit (IC) suppliers who extend those class libraries and useSystemC to model their intellectual property, and end users who use

7、SystemC to model their systems.Before the publication of this standard, SystemC was defined by an open-source, proof-of-concept C+library, also known as the reference simulator, available from the Accellera Systems Initiative. In the eventof discrepancies between the behavior of the reference simula

8、tor and statements made in this standard, thisstandard shall be taken to be definitive.This standard is not intended to serve as a users guide or to provide an introduction to SystemC. Readersrequiring a SystemC tutorial or information on the intended use of SystemC should consult the AccelleraSyste

9、ms Initiative Web site (www.accellera.org) to locate the many books and training classes available.Note that the Open Systems Initiative (OSCI) announced in December 2011 its merger with Accellera toform the “Accellera Systems Initiative.” The name of the new organization has been used throughout th

10、isdocument instead of the name “Open SystemC Imitative” or the acronym “OSCI.” The exceptions are instatements that refer to previous OSCI actions, and standards such as “OSCI TLM-2.0.1,” whose nameshave not been changed.Notice to usersLaws and regulationsUsers of these documents should consult all

11、applicable laws and regulations. Compliance with theprovisions of this standard does not imply compliance to any applicable regulatory requirements.Implementers of the standard are responsible for observing or referring to the applicable regulatoryrequirements. IEEE does not, by the publication of i

12、ts standards, intend to urge action that is not incompliance with applicable laws, and these documents may not be construed as doing so.CopyrightsThis document is copyrighted by the IEEE. It is made available for a wide variety of both public and privateuses. These include both use, by reference, in

13、 laws and regulations, and use in private self-regulation,standardization, and the promotion of engineering practices and methods. By making this documentavailable for use and adoption by public authorities and private users, the IEEE does not waive any rights incopyright to this document.This intro

14、duction is not part of IEEE Std 1666-2011, IEEE Standard for Standard SystemCLanguage ReferenceManual.vCopyright 2012 IEEE. All rights reserved.Updating of IEEE documentsUsers of IEEE standards should be aware that these documents may be superseded at any time bythe issuance of new editions or may b

15、e amended from time to time through the issuance ofamendments, corrigenda, or errata. An official IEEE document at any point in time consists of thecurrent edition of the document together with any amendments, corrigenda, or errata then in effect.In order to determine whether a given document is the

16、 current edition and whether it has beenamended through the issuance of amendments, corrigenda, or errata, visit the IEEE StandardsAssociation website at http:/ieeexplore.ieee.org/xpl/standards.jsp, or contact the IEEE at the addresslisted previously.For more information about the IEEE Standards Ass

17、ociation or the IEEE standards development process,visit the IEEE-SA website at http:/standards.ieee.org.ErrataErrata, if any, for this and all other standards can be accessed at the following URL: http:/standards.ieee.org/findstds/errata/index.html. Users are encouraged to check this URL for errata

18、periodically.InterpretationsCurrent interpretations can be accessed at the following URL: http:/standards.ieee.org/findstds/interps/index.html.PatentsAttention is called to the possibility that implementation of this standard may require use of subject mattercovered by patent rights. By publication

19、of this standard, no position is taken with respect to the existence orvalidity of any patent rights in connection therewith. The IEEE shall not be responsible for identifyingpatents or patent applications for which a license may be required to implement an IEEE standard or forconducting inquiries i

20、nto the legal validity or scope of those patents that are brought to its attention.viCopyright 2012 IEEE. All rights reserved.ParticipantsThis entity-based standard was created under the leadership of the following individuals:Stan Krolikoski, ChairJerome Cornet, Vice ChairJohn Aynsley, Technical Le

21、ad and AuthorDavid Long, Co-Author (SystemC Data Types)Dennis Brophy, SecretarySofie Vandeputte, Typographical EditorAt the time this entity-based standard was completed, the LRM Working Group had the followingmembership: The following members of the entity-based balloting committee voted on this st

22、andard. Balloting entitiesmay have voted for approval, disapproval, or abstention. The working group gratefully acknowledges the contributions of the following participants:Accellera OrganizationCadence Design SystemsFreescale SemiconductorsIntel CorporationJEITAMentor GraphicsNXP SemiconductorsOSCI

23、STARCSTMicroelectronicsSynopsysTexas InstrumentsAccellera OrganizationCadence Design SystemsIntel CorporationJEITAMentor GraphicsNXP SemiconductorsOSCIQualcomm IncorporatedSGCCSTARCSTMicroelectronicsSynopsysTexas InstrumentsJohn AynsleyBishnupriya BhattacharyaDavid C. BlackJerome CornetAlan FitchMar

24、k GlasserPuneet GoelAndy GoodrichPhilipp A. HartmannHiroshi ImaiMartin JanssenTor JeremiassenDavid LongMichael McNamaraMike MeredithEric E. RoeslerStuart SwanBart VanthournoutYossi VellerKaz YoshinagaviiCopyright 2012 IEEE. All rights reserved.When the IEEE-SA Standards Board approved this standard

25、on 10 September 2011, it had the followingmembership:Richard H. Hulett, ChairJohn Kulick, Vice ChairRobert Grow, Past ChairJudith Gorman, Secretary*Member EmeritusAlso included are the following nonvoting IEEE-SA Standards Board liaisons:Satish K. Aggarwal, NRC RepresentativeRichard DeBlasio, DOE Re

26、presentativeAlan H. Cookson, NIST RepresentativeMichelle D. TurnerIEEE Standards Program Manager, Document DevelopmentJoan WooleryIEEE Standards Program Manager, Technical Program DevelopmentMasayuki AriyoshiWilliam BartleyTed BurseClint ChaplinWael DiabJean-Philippe FaureAlex GelmanPaul HouzJim Hug

27、hesJoseph L. Koepfinger*David LawThomas Lee Hung LingOleg LogvinovTed OlsenGary RobinsonJon RosdahlSam SciaccaMike SeaveyCurtis SillerPhil WinstonHoward WolfmanDon WrightviiiCopyright 2012 IEEE. All rights reserved.Contents1. Overview 11.1 Scope 11.2 Purpose. 11.3 Subsets . 21.4 Relationship with C+

28、. 21.5 Guidance for readers 22. Normative references. 43. Terminology and conventions used in this standard 53.1 Terminology. 53.1.1 Shall, should, may, can 53.1.2 Implementation, application 53.1.3 Call, called from, derived from 53.1.4 Specific technical terms .53.2 Syntactical conventions . 73.2.

29、1 Implementation-defined. 73.2.2 Disabled . 73.2.3 Ellipsis (.). 73.2.4 Class names 73.2.5 Embolded text 83.3 Semantic conventions 83.3.1 Class definitions and the inheritance hierarchy . 83.3.2 Function definitions and side-effects. 83.3.3 Functions whose return type is a reference or a pointer 83.

30、3.4 Namespaces and internal naming 103.3.5 Non-compliant applications and errors 113.4 Notes and examples . 114. Elaboration and simulation semantics . 124.1 Elaboration. 124.1.1 Instantiation . 124.1.2 Process macros. 144.1.3 Port binding and export binding 144.1.4 Setting the time resolution . 154

31、.2 Simulation 154.2.1 The scheduling algorithm 164.2.2 Initialization, cycles, and pauses in the scheduling algorithm. 194.3 Running elaboration and simulation 204.3.1 Function declarations. 204.3.2 Function sc_elab_and_sim. 204.3.3 Functions sc_argc and sc_argv 214.3.4 Running under application con

32、trol using functions sc_main and sc_start. 214.3.5 Running under control of the kernel 234.4 Elaboration and simulation callbacks 234.4.1 before_end_of_elaboration 244.4.2 end_of_elaboration 254.4.3 start_of_simulation 26ixCopyright 2012 IEEE. All rights reserved.4.4.4 end_of_simulation . 274.5 Othe

33、r functions related to the scheduler 274.5.1 Function declarations. 274.5.2 Function sc_pause284.5.3 Function sc_stop, sc_set_stop_mode, and sc_get_stop_mode 294.5.4 Function sc_time_stamp 304.5.5 Function sc_delta_count 314.5.6 Function sc_is_running 314.5.7 Functions to detect pending activity 314

34、.5.8 Function sc_get_status. 325. Core language class definitions . 355.1 Class header files . 355.1.1 #include “systemc“.355.1.2 #include “systemc.h“ 355.2 sc_module 375.2.1 Description. 375.2.2 Class definition 375.2.3 Constraints on usage 395.2.4 kind 395.2.5 SC_MODULE . 405.2.6 Constructors . 40

35、5.2.7 SC_CTOR 405.2.8 SC_HAS_PROCESS . 415.2.9 SC_METHOD, SC_THREAD, SC_CTHREAD. 425.2.10 Method process 435.2.11 Thread and clocked thread processes. 435.2.12 Clocked thread processes. 445.2.13 reset_signal_is and async_reset_signal_is . 465.2.14 sensitive . 485.2.15 dont_initialize 485.2.16 set_st

36、ack_size. 495.2.17 next_trigger 505.2.18 wait. 525.2.19 Positional port binding.535.2.20 before_end_of_elaboration, end_of_elaboration, start_of_simulation, end_of_simulation . 555.2.21 get_child_objects and get_child_events 555.2.22 sc_gen_unique_name. 565.2.23 sc_behavior and sc_channel. 565.3 sc_

37、module_name . 575.3.1 Description. 575.3.2 Class definition 575.3.3 Constraints on usage 585.3.4 Module hierarchy.585.3.5 Member functions 585.4 sc_sensitive 605.4.1 Description. 605.4.2 Class definition 605.4.3 Constraints on usage 605.4.4 operator and sc_signal_in_if. 1366.2.1 Description. 1366.2.

38、2 Class definition 1366.2.3 Member functions 1376.3 sc_signal_inout_if 1376.3.1 Description. 1376.3.2 Class definition 1376.3.3 Member functions 1386.4 sc_signal. 1396.4.1 Description. 1396.4.2 Class definition 1396.4.3 Template parameter T 1406.4.4 Reading and writing signals. 1406.4.5 Constructors

39、 . 1416.4.6 register_port . 1416.4.7 Member functions for reading . 1416.4.8 Member functions for writing 1426.4.9 Member functions for events . 1426.4.10 Diagnostic member functions 1436.4.11 operator and sc_signal 1446.5.1 Description. 1446.5.2 Class definition 1446.5.3 Member functions 1466.6 sc_

40、buffer 1476.6.1 Description. 1476.6.2 Class definition 1476.6.3 Constructors . 1476.6.4 Member functions 1486.7 sc_clock . 1496.7.1 Description. 1496.7.2 Class definition 1496.7.3 Characteristic properties 1506.7.4 Constructors . 1506.7.5 write . 1516.7.6 Diagnostic member functions 1516.7.7 before_

41、end_of_elaboration 1516.7.8 sc_in_clk 1516.8 sc_in . 1526.8.1 Description. 1526.8.2 Class definition 1526.8.3 Member functions 1536.8.4 Function sc_trace . 1536.8.5 end_of_elaboration 1536.9 sc_in and sc_in. 1536.9.1 Description. 1536.9.2 Class definition 1546.9.3 Member functions 155xiiiCopyright 2

42、012 IEEE. All rights reserved.6.10 sc_inout 1566.10.1 Description. 1566.10.2 Class definition 1566.10.3 Member functions 1576.10.4 initialize . 1576.10.5 Function sc_trace .1576.10.6 end_of_elaboration 1586.10.7 Binding. 1586.11 sc_inout and sc_inout 1586.11.1 Description. 1586.11.2 Class definition

43、 1586.11.3 Member functions 1606.12 sc_out . 1606.12.1 Description. 1606.12.2 Class definition 1606.12.3 Member functions 1616.13 sc_signal_resolved . 1616.13.1 Description. 1616.13.2 Class definition 1616.13.3 Constructors . 1626.13.4 Resolution semantics . 1626.13.5 Member functions 1636.14 sc_in_

44、resolved . 1646.14.1 Description. 1646.14.2 Class definition 1646.14.3 Member functions 1656.15 sc_inout_resolved 1656.15.1 Description. 1656.15.2 Class definition 1656.15.3 Member functions 1666.16 sc_out_resolved . 1666.16.1 Description. 1666.16.2 Class definition 1666.16.3 Member functions 1676.1

45、7 sc_signal_rv . 1676.17.1 Description. 1676.17.2 Class definition 1676.17.3 Semantics and member functions 1676.18 sc_in_rv 1686.18.1 Description. 1686.18.2 Class definition 1686.18.3 Member functions 1696.19 sc_inout_rv. 1696.19.1 Description. 1696.19.2 Class definition 1696.19.3 Member functions

46、1706.20 sc_out_rv 1706.20.1 Description. 1706.20.2 Class definition 1706.20.3 Member functions 1716.21 sc_fifo_in_if. 1716.21.1 Description. 1716.21.2 Class definition 1716.21.3 Member functions 172xivCopyright 2012 IEEE. All rights reserved.6.22 sc_fifo_out_if. 1726.22.1 Description. 1726.22.2 Clas

47、s definition 1726.22.3 Member functions 1736.23 sc_fifo 1736.23.1 Description. 1736.23.2 Class definition 1736.23.3 Template parameter T 1746.23.4 Constructors . 1756.23.5 register_port . 1756.23.6 Member functions for reading . 1756.23.7 Member functions for writing 1766.23.8 The update phase . 176

48、6.23.9 Member functions for events . 1776.23.10Member functions for available values and free slots . 1776.23.11Diagnostic member functions 1776.23.12operator 1776.24 sc_fifo_in . 1786.24.1 Description. 1786.24.2 Class definition 1786.24.3 Member functions 1796.25 sc_fifo_out . 1796.25.1 Description

49、. 1796.25.2 Class definition 1796.25.3 Member functions 1806.26 sc_mutex_if 1826.26.1 Description. 1826.26.2 Class definition 1826.26.3 Member functions 1826.27 sc_mutex 1826.27.1 Description. 1826.27.2 Class definition 1826.27.3 Constructors . 1836.27.4 Member functions 1836.28 sc_semaphore_if 1846.28.1 Description. 1846.28.2 Class definition 1846.28.3 Member functions 1846.29 sc_semaphore. 1856.29.1 Description. 1856.29.2 Class definition 1856.29.3 Constructors . 1856.29.4 Member functions 1856.30 sc_event_queue 1866.30.1 Description. 1866.30.2 Class defi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 标准规范 > 国际标准 > IEC

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1