IEC 61691-7:2009
(Main)Behavioural languages - Part 7: SystemC R Language Reference Manual
Behavioural languages - Part 7: SystemC R Language Reference Manual
IEC 61691-7:2009(E) defines SystemC®1 as an ANSI standard C++ class library for system and hardware design. The specific purpose is to provide a precise and complete defination of the System C class library so that a System C implementation can be developed.
General Information
- Status
- Published
- Publication Date
- 13-Dec-2009
- Technical Committee
- TC 91 - Electronics assembly technology
- Drafting Committee
- WG 13 - TC 91/WG 13
- Current Stage
- PPUB - Publication issued
- Start Date
- 14-Dec-2009
- Completion Date
- 15-Jan-2010
Relations
- Effective Date
- 14-Mar-2025
Overview
IEC 61691-7:2009 - Behavioural languages, Part 7: SystemC Language Reference Manual (also published as IEEE Std 1666) defines SystemC as an ANSI C++ class library for system- and hardware-level design. The standard provides a precise, normative description of the SystemC class library so that conformant SystemC implementations, simulators and tools can be developed and interoperated consistently.
Key topics and technical requirements
The standard specifies the language reference and runtime semantics for SystemC, including:
- Elaboration and simulation semantics - formal definitions of instantiation, binding, scheduler behavior, simulation cycles and callbacks.
- Core language classes and headers - normative definitions for module and kernel primitives (for example sc_module, sc_module_name, and the prescribed header usage).
- Process and concurrency models - method, thread and clocked-thread processes, process macros (SC_METHOD, SC_THREAD, etc.), creation and control of processes.
- Event and timing primitives - event classes and lists (sc_event, sc_event_and_list, sc_event_or_list), notification and cancellation semantics, and time representation (sc_time).
- Sensitivity and triggering - mechanisms for expressing process sensitivity and next-trigger semantics.
- Process control and handles - spawning, joining, handles and utilities (sc_spawn, sc_process_handle).
- Kernel control and callbacks - lifecycle callbacks (before_end_of_elaboration, end_of_elaboration, start_of_simulation, end_of_simulation), sc_start/sc_stop and related scheduler controls.
- Conformance and C++ relationship - guidance on relationship to C++, implementation-defined behaviors, naming conventions and constraints.
The standard requires a precise and complete definition of the class library API and the simulator kernel behavior so that compliant implementations behave predictably across tools.
Practical applications
IEC 61691-7 is essential for:
- Implementing SystemC simulators and runtimes used in EDA and tooling.
- Building system-level models, virtual platforms, transaction-level modeling (TLM) components, and ESL (electronic system-level) libraries.
- Enabling hardware/software co-design, architectural exploration, and early software development on virtual prototypes.
- Creating verification environments that rely on consistent scheduling, event and time semantics.
Who should use this standard
- EDA tool vendors and simulator implementers
- SoC architects and system designers using SystemC for modeling
- Verification engineers developing testbenches in SystemC
- Academic researchers and educators in system-level design
- Software teams building SystemC-based virtual platforms or TLM models
Related standards
- IEEE Std 1666-2005 (same normative content) - frequently referenced alongside IEC 61691-7 for SystemC conformance and tool interoperability.
Keywords: IEC 61691-7, SystemC, SystemC Language Reference Manual, IEEE Std 1666, system-level modeling, C++ class library, sc_module, sc_event, sc_time, simulation semantics.
Frequently Asked Questions
IEC 61691-7:2009 is a standard published by the International Electrotechnical Commission (IEC). Its full title is "Behavioural languages - Part 7: SystemC R Language Reference Manual". This standard covers: IEC 61691-7:2009(E) defines SystemC®1 as an ANSI standard C++ class library for system and hardware design. The specific purpose is to provide a precise and complete defination of the System C class library so that a System C implementation can be developed.
IEC 61691-7:2009(E) defines SystemC®1 as an ANSI standard C++ class library for system and hardware design. The specific purpose is to provide a precise and complete defination of the System C class library so that a System C implementation can be developed.
IEC 61691-7:2009 is classified under the following ICS (International Classification for Standards) categories: 25.040.01 - Industrial automation systems in general; 35.060 - Languages used in information technology. The ICS classification helps identify the subject area and facilitates finding related standards.
IEC 61691-7:2009 has the following relationships with other standards: It is inter standard links to IEC 61691-7:2025. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.
You can purchase IEC 61691-7:2009 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of IEC standards.
Standards Content (Sample)
IEC 61691-7
Edition 1.0 2009-12
™
IEEE Std 1666
INTERNATIONAL
STANDARD
Behavioural languages – ®
Part 7: SystemC Language Reference Manual
All rights reserved. IEEE is a registered trademark in the U.S. Patent & Trademark Office, owned by the Institute of
Electrical and Electronics Engineers, Inc.
Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from the IEC Central Office.
Any questions about IEEE copyright should be addressed to the IEEE. Enquiries about obtaining additional rights
to this publication and other information requests should be addressed to the IEC or your local IEC member National
Committee.
IEC Central Office Institute of Electrical and Electronics Engineers, Inc
3, rue de Varembé 3 Park Avenue
CH-1211 Geneva 20 New York, NY10016-5997
Switzerland USA
Email: inmail@iec.ch Email: stds.ipr@ieee.org
Web: www.iec.ch Web: www.ieee.org
About the IEC
The International Electrotechnical Commission (IEC) is the leading global organization that prepares and publishes
International Standards for all electrical, electronic and related technologies.
About IEC publications
The technical content of IEC publications is kept under constant review by the IEC. Please make sure that you have the
latest edition, a corrigenda or an amendment might have been published.
ƒ Catalogue of IEC publications: www.iec.ch/searchpub
The IEC on-line Catalogue enables you to search by a variety of criteria (reference number, text, technical committee,…).
It also gives information on projects, withdrawn and replaced publications.
ƒ IEC Just Published: www.iec.ch/online_news/justpub
Stay up to date on all new IEC publications. Just Published details twice a month all new publications released. Available
on-line and also by email.
ƒ Electropedia: www.electropedia.org
The world's leading online dictionary of electronic and electrical terms containing more than 20 000 terms and definitions
in English and French, with equivalent terms in additional languages. Also known as the International Electrotechnical
Vocabulary online.
ƒ Customer Service Centre: www.iec.ch/webstore/custserv
If you wish to give us your feedback on this publication or need further assistance, please visit the Customer Service
Centre FAQ or contact us:
Email: csc@iec.ch
Tel.: +41 22 919 02 11
IEC 61691-7
Edition 1.0 2009-12
™
IEEE Std 1666
INTERNATIONAL
STANDARD
Behavioural languages – ®
Part 7: SystemC Language Reference Manual
INTERNATIONAL
ELECTROTECHNICAL
COMMISSION
PRICE CODE
XH
ICS 25.040, 35.060 ISBN 978-0-7381-6284-3
– i – IEC 61691-7:2009(E)
IEEE Std 1666-2005(E)
CONTENTS
Foreword.xi
IEEE Introduction .xvi
1. Overview. 1
1.1 Scope. 1
1.2 Purpose. 1
1.3 Subsets . 1
1.4 Relationship with C++. 1
1.5 Guidance for readers. 2
2. References. 3
3. Terminology and conventions used in this standard. 4
3.1 Terminology. 4
3.1.1 Shall, should, may, can. 4
3.1.2 Implementation, application. 4
3.1.3 Call, called from, derived from . 4
3.1.4 Specific technical terms . 4
3.2 Syntactical conventions . 6
3.2.1 Implementation-defined. 6
3.2.2 Disabled . 6
3.2.3 Ellipsis (.). 6
3.2.4 Class names. 6
3.2.5 Embolded text .7
3.3 Semantic conventions . 7
3.3.1 Class definitions and the inheritance hierarchy . 7
3.3.2 Function definitions and side-effects . 7
3.3.3 Functions whose return type is a reference or a pointer. 7
3.3.4 Namespaces and internal naming. 9
3.3.5 Non-compliant applications and errors . 9
3.4 Notes and examples . 10
4. Elaboration and simulation semantics . 11
4.1 Elaboration. 11
4.1.1 Instantiation . 11
4.1.2 Process macros. 13
4.1.3 Port binding and export binding . 13
4.1.4 Setting the time resolution . 14
4.2 Simulation. 14
4.2.1 The scheduling algorithm . 15
4.2.2 Cycles in the scheduling algorithm. 17
4.3 Running elaboration and simulation . 18
4.3.1 Function declarations. 18
4.3.2 Function sc_elab_and_sim. 18
4.3.3 Functions sc_argc and sc_argv . 19
4.3.4 Running under application control using functions sc_main and sc_start. 19
4.3.5 Running under control of the kernel . 20
4.4 Elaboration and simulation callbacks . 20
4.4.1 before_end_of_elaboration . 21
4.4.2 end_of_elaboration . 22
4.4.3 start_of_simulation . 23
Published by IEC under licence from IEEE. © 2005 IEEE. All rights reserved.
IEEE Std 1666-2005(E)
4.4.4 end_of_simulation . 23
4.5 Other functions related to the scheduler . 24
4.5.1 Function declarations . 24
4.5.2 Function sc_stop, sc_set_stop_mode, and sc_get_stop_mode. 24
4.5.3 Function sc_time_stamp. 25
4.5.4 Function sc_delta_count. 26
4.5.5 Function sc_is_running . 26
5. Core language class definitions . 27
5.1 Class header files . 27
5.1.1 #include "systemc". 27
5.1.2 #include "systemc.h". 27
5.2 sc_module . 29
5.2.1 Description . 29
5.2.2 Class definition.29
5.2.3 Constraints on usage. 31
5.2.4 kind. 31
5.2.5 SC_MODULE. 31
5.2.6 Constructors .32
5.2.7 SC_CTOR . 32
5.2.8 SC_HAS_PROCESS. 33
5.2.9 SC_METHOD, SC_THREAD, SC_CTHREAD. 33
5.2.10 Method process . 34
5.2.11 Thread and clocked thread processes. 35
5.2.12 Clocked thread processes and reset_signal_is. 36
5.2.13 sensitive. 37
5.2.14 dont_initialize. 38
5.2.15 set_stack_size. 39
5.2.16 next_trigger . 39
5.2.17 wait. 41
5.2.18 Positional port binding . 43
5.2.19 before_end_of_elaboration, end_of_elaboration, start_of_simulation,
end_of_simulation. 44
5.2.20 get_child_objects. 45
5.2.21 sc_gen_unique_name . 45
5.2.22 sc_behavior and sc_channel. 46
5.3 sc_module_name . 47
5.3.1 Description. 47
5.3.2 Class definition . 47
5.3.3 Constraints on usage . 47
5.3.4 Module hierarchy . 48
5.3.5 Member functions . 48
5.4 sc_sensitive† . 50
5.4.1 Description. 50
5.4.2 Class definition . 50
5.4.3 Constraints on usage . 50
5.4.4 operator<<. 50
5.5 sc_spawn_options and sc_spawn. 52
5.5.1 Description. 52
5.5.2 Class definition . 52
5.5.3 Constraints on usage . 53
5.5.4 Constructors .53
5.5.5 Member functions . 53
Published by IEC under licence from IEEE. © 2005 IEEE. All rights reserved.
– iii – IEC 61691-7:2009(E)
IEEE Std 1666-2005(E)
5.5.6 sc_spawn . 54
5.5.7 SC_FORK and SC_JOIN. 56
5.6 sc_process_handle . 58
5.6.1 Description . 58
5.6.2 Class definition.58
5.6.3 Constraints on usage . 59
5.6.4 Constructors .59
5.6.5 Member functions . 59
5.6.6 sc_get_current_process_handle. 61
5.7 sc_event_finder and sc_event_finder_t . 62
5.7.1 Description . 62
5.7.2 Class definition.62
5.7.3 Constraints on usage. 62
5.8 sc_event_and_list† and sc_event_or_list† . 65
5.8.1 Description . 65
5.8.2 Class definition.65
5.8.3 Constraints on usage. 65
5.8.4 Event lists . 65
5.9 sc_event . 66
5.9.1 Description . 66
5.9.2 Class definition.66
5.9.3 Constraints on usage. 66
5.9.4 notify and cancel . 66
5.9.5 Event lists . 67
5.9.6 Multiple event notifications . 67
5.10 sc_time . 68
5.10.1 Description . 68
5.10.2 Class definition. 68
5.10.3 Time resolution . 69
5.10.4 Functions and operators . 69
5.10.5 SC_ZERO_TIME. 69
5.11 sc_port. 71
5.11.1 Description. 71
5.11.2 Class definition .71
5.11.3 Template parameters. 72
5.11.4 Constraints on usage . 73
5.11.5 Constructors . 74
5.11.6 kind . 74
5.11.7 Named port binding . 74
5.11.8 Member functions for bound ports and port-to-port binding. 75
5.11.9 before_end_of_elaboration, end_of_elaboration, start_of_simulation,
end_of_simulation. 79
5.12 sc_export. 80
5.12.1 Description . 80
5.12.2 Class definition. 80
5.12.3 Template parameters . 81
5.12.4 Constraints on usage. 81
5.12.5 Constructors . 81
5.12.6 kind. 81
5.12.7 Export binding.82
5.12.8 Member functions for bound exports and export-to-export binding. 83
5.12.9 before_end_of_elaboration, end_of_elaboration, start_of_simulation,
end_of_simulation. 84
Published by IEC under licence from IEEE. © 2005 IEEE. All rights reserved.
IEEE Std 1666-2005(E)
5.13 sc_interface . 85
5.13.1 Description . 85
5.13.2 Class definition. 85
5.13.3 Constraints on usage. 85
5.13.4 register_port . 86
5.13.5 default_event . 86
5.14 sc_prim_channel . 88
5.14.1 Description . 88
5.14.2 Class definition. 88
5.14.3 Constraints on usage . 89
5.14.4 Constructors . 89
5.14.5 kind. 89
5.14.6 request_update and update . 89
5.14.7 next_trigger and wait. 90
5.14.8 before_end_of_elaboration, end_of_elaboration, start_of_simulation,
end_of_simulation. 90
5.15 sc_object . 92
5.15.1 Description . 92
5.15.2 Class definition. 92
5.15.3 Constraints on usage. 93
5.15.4 Constructors and hierarchical names. 93
5.15.5 name, basename, and kind. 94
5.15.6 print and dump . 95
5.15.7 Functions for object hierarchy traversal. 95
5.15.8 Member functions for attributes. 97
5.16 sc_attr_base. 99
5.16.1 Description. 99
5.16.2 Class definition .99
5.16.3 Member functions . 99
5.17 sc_attribute. 100
5.17.1 Description . 100
5.17.2 Class definition. 100
5.17.3 Template parameters. 100
5.17.4 Member functions and data members. 100
5.18 sc_attr_cltn. 101
5.18.1 Description .101
5.18.2 Class definition. 101
5.18.3 Constraints on usage. 101
5.18.4 Iterators. 101
6. Predefined channel class definitions. 103
6.1 sc_signal_in_if . 103
6.1.1 Description . 103
6.1.2 Class definition. 103
6.1.3 Member functions . 103
6.2 sc_signal_in_if and sc_signal_in_if. 104
6.2.1 Description . 104
6.2.2 Class definition. 104
6.2.3 Member functions . 105
6.3 sc_signal_inout_if. 106
6.3.1 Description . 106
6.3.2 Class definition. 106
6.3.3 write. 106
Published by IEC under licence from IEEE. © 2005 IEEE. All rights reserved.
– v – IEC 61691-7:2009(E)
IEEE Std 1666-2005(E)
6.4 sc_signal. 107
6.4.1 Description. 107
6.4.2 Class definition . 107
6.4.3 Template parameter T . 108
6.4.4 Reading and writing signals. 108
6.4.5 Constructors . 109
6.4.6 register_port . 109
6.4.7 Member functions for reading . 109
6.4.8 Member functions for writing. 110
6.4.9 Member functions for events . 110
6.4.10 Diagnostic member functions . 110
6.4.11 operator<<.111
6.5 sc_signal and sc_signal. 113
6.5.1 Description . 113
6.5.2 Class definition. 113
6.5.3 Member functions . 114
6.6 sc_buffer . 116
6.6.1 Description. 116
6.6.2 Class definition . 116
6.6.3 Constructors . 116
6.6.4 Member functions . 117
6.7 sc_clock . 119
6.7.1 Description. 119
6.7.2 Class definition . 119
6.7.3 Characteristic properties . 120
6.7.4 Constructors . 120
6.7.5 write . 120
6.7.6 Diagnostic member functions . 120
6.7.7 before_end_of_elaboration . 121
6.7.8 sc_in_clk .121
6.8 sc_in . 122
6.8.1 Description. 122
6.8.2 Class definition . 122
6.8.3 Member functions . 123
6.8.4 Function sc_trace . 123
6.8.5 end_of_elaboration . 123
6.9 sc_in and sc_in. 124
6.9.1 Description . 124
6.9.2 Class definition. 124
6.9.3 Member functions . 126
6.10 sc_inout. 127
6.10.1 Description.127
6.10.2 Class definition . 127
6.10.3 Member functions . 128
6.10.4 initialize. 128
6.10.5 Function sc_trace . 128
6.10.6 end_of_elaboration . 129
6.10.7 Binding. 129
6.11 sc_inout and sc_inout . 130
6.11.1 Description.130
6.11.2 Class definition . 130
6.11.3 Member functions . 132
6.12 sc_out . 133
6.12.1 Description .133
Published by IEC under licence from IEEE. © 2005 IEEE. All rights reserved.
IEEE Std 1666-2005(E)
6.12.2 Class definition. 133
6.12.3 Member functions . 133
6.13 sc_signal_resolved . 134
6.13.1 Description.134
6.13.2 Class definition . 134
6.13.3 Constructors . 134
6.13.4 Resolution semantics . 135
6.13.5 Member functions . 136
6.14 sc_in_resolved . 137
6.14.1 Description.137
6.14.2 Class definition . 137
6.14.3 Member functions . 137
6.15 sc_inout_resolved . 138
6.15.1 Description .138
6.15.2 Class definition. 138
6.15.3 Member functions . 138
6.16 sc_out_resolved . 139
6.16.1 Description .139
6.16.2 Class definition. 139
6.16.3 Member functions. 139
6.17 sc_signal_rv . 140
6.17.1 Description.140
6.17.2 Class definition . 140
6.17.3 Semantics and member functions . 140
6.18 sc_in_rv. 142
6.18.1 Description.142
6.18.2 Class definition . 142
6.18.3 Member functions . 142
6.19 sc_inout_rv. 143
6.19.1 Description .143
6.19.2 Class definition. 143
6.19.3 Member functions . 143
6.20 sc_out_rv. 145
6.20.1 Description .145
6.20.2 Class definition. 145
6.20.3 Member functions . 145
6.21 sc_fifo_in_if. 146
6.21.1 Description .146
6.21.2 Class definition. 146
6.21.3 Member functions . 146
6.22 sc_fifo_out_if. 148
6.22.1 Description.148
6.22.2 Class definition . 148
6.22.3 Member functions . 148
6.23 sc_fifo . 150
6.23.1 Description .150
6.23.2 Class definition. 150
6.23.3 Template parameter T . 151
6.23.4 Constructors . 151
6.23.5 register_port .152
6.23.6 Member functions for reading. 152
6.23.7 Member functions for writing . 152
6.23.8 The update phase.
...
The article discusses IEC 61691-7:2009, which is a standard that defines SystemC as a C++ class library for system and hardware design. The purpose of the standard is to provide a clear and comprehensive definition of the SystemC class library, enabling the development of SystemC implementations.
아래 기사를 한국어로 요약해주세요: 기사 제목: IEC 61691-7:2009 - 행동언어 - 제7부: SystemC R 언어 참조 매뉴얼 기사 내용: IEC 61691-7:2009(E)는 SystemC®1을 시스템 및 하드웨어 디자인을 위한 ANSI 표준 C++ 클래스 라이브러리로 정의합니다. 구체적인 목적은 System C 클래스 라이브러리의 정확하고 완전한 정의를 제공하여 System C 구현을 개발할 수 있도록 하는 것입니다.
以下の記事を日本語で要約します: 記事のタイトル:IEC 61691-7:2009 - ビヘイビア言語 - 第7部:SystemC R言語リファレンスマニュアル 記事の内容:IEC 61691-7:2009(E)は、SystemC®1をシステムおよびハードウェア設計のためのANSI標準C++クラスライブラリとして定義しています。具体的な目的は、SystemCクラスライブラリの正確で完全な定義を提供することで、SystemCの実装を開発できるようにすることです。










Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...