IEC 61691-8:2021
(Main)Behavioural languages - Part 8: Standard SystemC Analog/Mixed-Signal Extensions Language Reference Manual
Behavioural languages - Part 8: Standard SystemC Analog/Mixed-Signal Extensions Language Reference Manual
IEC 61691-8:2021(E) defines the Analog/Mixed-Signal extensions for SystemC®, as an ANSI standard C++ class
library based on SystemC for system and hardware design including analog/mixed-signal elements. The general purpose of the SystemC AMS extensions is to provide a C++ standard for designers and architects, who need to address complex heterogeneous systems that are a hybrid between hardware and software. This standard is built on the IEEE Std 1666™-2011 (SystemC Language Reference Manual) and extends it to create analog/mixed-signal, multi-disciplinary models to simulate continuous-time, discrete-time, and discrete-event behavior simultaneously.
This standard is published as a double logo IEC-IEEE standard.
General Information
Standards Content (sample)
IEC 61691-8
Edition 1.0 2021-07
IEEE Std 1666.1
INTERNATIONAL
STANDARD
Behavioural languages –
Part 8: Standard SystemC® Analog/Mixed-Signal Extensions Language
Reference Manual
IEC 61691-8:2021-07(en) IEEE Std 1666.1-2016
---------------------- Page: 1 ----------------------
THIS PUBLICATION IS COPYRIGHT PROTECTED
Copyright © 2016 IEEE
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. Enquiri es 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, NY 10016-5997
Switzerland United States of America
Tel.: +41 22 919 02 11 stds.info@ieee.org
info@iec.ch www.ieee.org
www.iec.ch
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 corrigendum or an amendment might have been published.IEC publications search - webstore.iec.ch/advsearchform IEC online collection - oc.iec.ch
The advanced search enables to find IEC publications by aDiscover our powerful search engine and read freely all the
variety of criteria (reference number, text, technical publications previews. With a subscription you will always
committee, …). It also gives information on projects, replaced have access to up to date content tailored to your needs.
and withdrawn publications.Electropedia - www.electropedia.org
IEC Just Published - webstore.iec.ch/justpublished
The world's leading online dictionary on electrotechnology,
Stay up to date on all new IEC publications. Just Published
containing more than 22 000 terminological entries in English
details all new publications released. Available online and
and French, with equivalent terms in 18 additional languages.
once a month by email.
Also known as the International Electrotechnical Vocabulary
(IEV) online.
IEC Customer Service Centre - webstore.iec.ch/csc
If you wish to give us your feedback on this publication or
need further assistance, please contact the Customer Service
Centre: sales@iec.ch.
---------------------- Page: 2 ----------------------
IEC 61691-8
Edition 1.0 2021-07
IEEE Std 1666.1™
INTERNATIONAL
STANDARD
Behavioural languages –
Part 8: Standard SystemC® Analog/Mixed-Signal Extensions Language
Reference Manual
INTERNATIONAL
ELECTROTECHNICAL
COMMISSION
ICS 25.040.01; 35.060 ISBN 978-2-8322-9951-7
Warning! Make sure that you obtained this publication from an authorized distributor.
® Registered trademark of the International Electrotechnical Commission---------------------- Page: 3 ----------------------
IEC 61691-8:2021 © IEC 2021
IEEE Std 1666.1™-2016
Contents
1. Overview................................................................................................................................................. 1
1.1 Scope............................................................................................................................................1
1.2 Purpose.........................................................................................................................................1
1.3 Subsets......................................................................................................................................... 2
1.4 Relationship with C++................................................................................................................ 2
1.5 Relationship with SystemC......................................................................................................... 2
1.6 Guidance for readers................................................................................................................... 2
2. Normative references..............................................................................................................................4
3. Terminology and conventions used in this standard..............................................................................5
3.1 Terminology.................................................................................................................................5
3.1.1 Shall, should, may, can....................................................................................................5
3.1.2 Implementation, application............................................................................................. 5
3.1.3 Call, called from, derived from....................................................................................... 5
3.1.4 Specific technical terms................................................................................................... 5
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 Prefixes............................................................................................................................. 7
3.3 Typographical conventions..........................................................................................................7
3.4 Semantic conventions.................................................................................................................. 7
3.4.1 Class definitions and the inheritance hierarchy............................................................... 7
3.4.2 Function definitions and side-effects............................................................................... 7
3.4.3 Functions whose return type is a reference or a pointer..................................................8
3.4.4 Namespaces and internal naming.....................................................................................8
3.4.5 Non-compliant applications and errors............................................................................9
3.5 Notes and examples.....................................................................................................................9
4. Core language definitions.....................................................................................................................10
4.1 Class header files.......................................................................................................................10
4.1.1 #include “systemc-ams”................................................................................................. 10
4.1.2 #include “systemc-ams.h”.............................................................................................. 10
4.2 Base class definitions................................................................................................................ 11
4.2.1 sca_core::sca_module..................................................................................................... 11
4.2.2 sca_core::sca_interface................................................................................................... 13
4.2.3 sca_core::sca_prim_channel........................................................................................... 14
viiiPublished by IEC under licence from IEEE. © 2016 IEEE. All rights reserved.
Copyright © 2016 IEEE. All rights reserved.
---------------------- Page: 4 ----------------------
IEC 61691-8:2021 © IEC 2021
IEEE Std 1666.1™-2016
4.2.4 sca_core::sca_port...........................................................................................................15
4.2.5 sca_core::sca_time.......................................................................................................... 16
4.2.6 sca_core::sca_max_time................................................................................................. 16
4.2.7 sca_core::sca_parameter_base........................................................................................ 16
4.2.8 sca_core::sca_parameter................................................................................................. 18
4.2.9 sca_core::sca_assign_from_proxy .................................................................................20
4.2.10 sca_core::sca_assign_to_proxy ....................................................................................21
5. Timed data flow model of computation...............................................................................................22
5.1 Class definitions........................................................................................................................ 22
5.1.1 sca_tdf::sca_module........................................................................................................22
5.1.2 sca_tdf::sca_signal_if......................................................................................................29
5.1.3 sca_tdf::sca_signal.......................................................................................................... 30
5.1.4 sca_tdf::sca_default_interpolator....................................................................................31
5.1.5 sca_tdf::sca_in................................................................................................................ 32
5.1.6 sca_tdf::sca_out.............................................................................................................. 37
5.1.7 sca_tdf::sca_out....................................................................................................... 39
5.1.8 sca_tdf::sca_out...............................................44
5.1.9 sca_tdf::sca_out.............................................................. 50
5.1.10 sca_tdf::sca_de::sca_in, sca_tdf::sc_in...........................................................................55
5.1.11 sca_tdf::sca_de::sca_in, sca_tdf::sc_in....................................................62
5.1.12 sca_tdf::sca_de::sca_in, sca_tdf::sc_in.................. 69
5.1.13 sca_tdf::sca_de::sca_out, sca_tdf::sc_out.......................................................................75
5.1.14 sca_tdf::sca_trace_variable.............................................................................................82
5.2 Hierarchical composition and port binding...............................................................................83
5.3 Elaboration and simulation........................................................................................................83
5.3.1 Elaboration......................................................................................................................84
5.3.2 Simulation.......................................................................................................................85
5.4 Embedded linear dynamic equations........................................................................................ 87
5.4.1 sca_tdf::sca_ct_proxy ....................................................................................................88
5.4.2 sca_tdf::sca_ct_vector_proxy ........................................................................................89
5.4.3 sca_tdf::sca_ltf_nd..........................................................................................................91
5.4.4 sca_tdf::sca_ltf_zp.......................................................................................................... 96
5.4.5 sca_tdf::sca_ss.............................................................................................................. 102
6. Linear signal flow model of computation..........................................................................................110
6.1 Class definitions...................................................................................................................... 110
6.1.1 sca_lsf::sca_module...................................................................................................... 110
6.1.2 sca_lsf::sca_signal_if.................................................................................................... 110
6.1.3 sca_lsf::sca_signal........................................................................................................ 111
6.1.4 sca_lsf::sca_in...............................................................................................................111
6.1.5 sca_lsf::sca_out.............................................................................................................112
Published by IEC under licence from IEEE. © 2016 IEEE. All rights reserved.Copyright © 2016 IEEE. All rights reserved.
---------------------- Page: 5 ----------------------
IEC 61691-8:2021 © IEC 2021
IEEE Std 1666.1™-2016
6.1.6 sca_lsf::sca_add............................................................................................................ 113
6.1.7 sca_lsf::sca_sub............................................................................................................ 114
6.1.8 sca_lsf::sca_gain........................................................................................................... 115
6.1.9 sca_lsf::sca_dot.............................................................................................................115
6.1.10 sca_lsf::sca_integ..........................................................................................................116
6.1.11 sca_lsf::sca_delay......................................................................................................... 117
6.1.12 sca_lsf::sca_source........................................................................................................118
6.1.13 sca_lsf::sca_ltf_nd........................................................................................................ 119
6.1.14 sca_lsf::sca_ltf_zp.........................................................................................................120
6.1.15 sca_lsf::sca_ss...............................................................................................................121
6.1.16 sca_lsf::sca_tdf::sca_gain, sca_lsf::sca_tdf_gain......................................................... 122
6.1.17 sca_lsf::sca_tdf::sca_source, sca_lsf::sca_tdf_source.................................................. 123
6.1.18 sca_lsf::sca_tdf::sca_sink, sca_lsf::sca_tdf_sink..........................................................124
6.1.19 sca_lsf::sca_tdf::sca_mux, sca_lsf::sca_tdf_mux.........................................................125
6.1.20 sca_lsf::sca_tdf::sca_demux, sca_lsf::sca_tdf_demux................................................. 126
6.1.21 sca_lsf::sca_de::sca_gain, sca_lsf::sca_de_gain...........................................................127
6.1.22 sca_lsf::sca_de::sca_source, sca_lsf::sca_de_source....................................................127
6.1.23 sca_lsf::sca_de::sca_sink, sca_lsf::sca_de_sink........................................................... 128
6.1.24 sca_lsf::sca_de::sca_mux, sca_lsf::sca_de_mux.......................................................... 129
6.1.25 sca_lsf::sca_de::sca_demux, sca_lsf::sca_de_demux...................................................130
6.2 Hierarchical composition and port binding.............................................................................131
6.3 Elaboration and simulation......................................................................................................131
6.3.1 Elaboration....................................................................................................................131
6.3.2 Simulation.....................................................................................................................132
7. Electrical linear networks model of computation.............................................................................. 134
7.1 Class definitions...................................................................................................................... 134
7.1.1 sca_eln::sca_module..................................................................................................... 134
7.1.2 sca_eln::sca_node_if.....................................................................................................135
7.1.3 sca_eln::sca_terminal....................................................................................................135
7.1.4 sca_eln::sca_node......................................................................................................... 136
7.1.5 sca_eln::sca_node_ref...................................................................................................137
7.1.6 sca_eln::sca_r................................................................................................................138
7.1.7 sca_eln::sca_c............................................................................................................... 138
7.1.8 sca_eln::sca_l................................................................................................................139
7.1.9 sca_eln::sca_vcvs..........................................................................................................140
7.1.10 sca_eln::sca_vccs.......................................................................................................... 141
7.1.11 sca_eln::sca_ccvs.......................................................................................................... 142
7.1.12 sca_eln::sca_cccs.......................................................................................................... 142
7.1.13 sca_eln::sca_nullor........................................................................................................143
7.1.14 sca_eln::sca_gyrator......................................................................................................144
7.1.15 sca_eln::sca_ideal_transformer.....................................................................................145
Published by IEC under licence from IEEE. © 2016 IEEE. All rights reserved.Copyright © 2016 IEEE. All rights reserved.
---------------------- Page: 6 ----------------------
IEC 61691-8:2021 © IEC 2021
IEEE Std 1666.1™-2016
7.1.16 sca_eln::sca_transmission_line.....................................................................................146
7.1.17 sca_eln::sca_vsource.....................................................................................................147
7.1.18 sca_eln::sca_isource......................................................................................................148
7.1.19 sca_eln::sca_tdf::sca_r, sca_eln::sca_tdf_r...................................................................149
7.1.20 sca_eln::sca_tdf::sca_c, sca_eln::sca_tdf_c..................................................................150
7.1.21 sca_eln::sca_tdf::sca_l, sca_eln::sca_tdf_l................................................................... 151
7.1.22 sca_eln::sca_tdf::sca_rswitch, sca_eln::sca_tdf_rswitch..............................................152
7.1.23 sca_eln::sca_tdf::sca_vsource, sca_eln::sca_tdf_vsource.............................................153
7.1.24 sca_eln::sca_tdf::sca_isource, sca_eln::sca_tdf_isource.............................................. 154
7.1.25 sca_eln::sca_tdf::sca_vsink, sca_eln::sca_tdf_vsink.................................................... 155
7.1.26 sca_eln::sca_tdf::sca_isink, sca_eln::sca_tdf_isink......................................................156
7.1.27 sca_eln::sca_de::sca_r, sca_eln::sca_de_r.................................................................... 157
7.1.28 sca_eln::sca_de::sca_c, sca_eln::sca_de_c................................................................... 158
7.1.29 sca_eln::sca_de::sca_l, sca_eln::sca_de_l.................................................................... 159
7.1.30 sca_eln::sca_de::sca_rswitch, sca_eln::sca_de_rswitch............................................... 160
7.1.31 sca_eln::sca_de::sca_vsource, sca_eln::sca_de_vsource..............................................161
7.1.32 sca_eln::sca_de::sca_isource, sca_eln::sca_de_isource................................................162
7.1.33 sca_eln::sca_de::sca_vsink, sca_eln::sca_de_vsink..................................................... 162
7.1.34 sca_eln::sca_de::sca_isink, sca_eln::sca_de_isink....................................................... 163
7.2 Hierarchical composition and port binding.............................................................................164
7.3 Elaboration and simulation......................................................................................................164
7.3.1 Elaboration....................................................................................................................165
7.3.2 Simulation.....................................................................................................................165
8. Predefined analyses.............................................................................................................................167
8.1 Time-domain analysis..............................................................................................................167
8.1.1 Elaboration and simulation.......................................................................................... 167
8.1.2 Running elaboration and simulation............................................................................ 167
8.2 Small-signal frequency-domain analyses................................................................................ 167
8.2.1 Elaboration and simulation.......................................................................................... 168
8.2.2 Running elaboration and simulation............................................................................ 168
8.2.3 Small-signal frequency-domain analysis of TDF descriptions.................................... 169
8.2.4 Small-signal frequency-domain analysis of LSF descriptions.....................................173
8.2.5 Small-signal frequency-domain analysis of ELN descriptions.................................... 173
9. Utility definitions................................................................................................................................174
9.1 Trace files................................................................................................................................ 174
9.1.1 Class definitions........................................................................................................... 174
9.1.2 Function declarations....................................................................................................177
9.2 Data types and constants.........................................................................................................180
9.2.1 Class definition and function declarations...................................................................180
9.2.2 Definition of constants................................................................................................. 188
Published by IEC under licence from IEEE. © 2016 IEEE. All rights reserved.Copyright © 2016 IEEE. All rights reserved.
---------------------- Page: 7 ----------------------
IEC 61691-8:2021 © IEC 2021
IEEE Std 1666.1™-2016
9.3 Reporting information............................................................................................................. 189
9.3.1 Class definition and function declarations...................................................................189
9.3.2 Mask definitions........................................................................................................... 190
9.4 Version and copyright............................................................................................................. 191
9.4.1 Macro definitions......................................................................................................... 191
9.4.2 Constants.......................................................................................................................193
9.4.3 Function declarations....................................................................................................193
Annex A (informative) Introduction to the SystemC Analog/Mixed-Signal extensions...............................195
Annex B (informative) Glossary................................................................................................................... 208
Annex C (informative) Participants ............................................................................................................. 210
Index...............................................................................................................................................................211
xiiPublished by IEC under licence from IEEE. © 2016 IEEE. All rights reserved.
Copyright © 2016 IEEE. All rights reserved.
---------------------- Page: 8 ----------------------
IEC 61691-8:2021 © IEC 2021
IEEE Std 1666.1™-2016
Behavioural languages –
Part 8: Standard SystemC® Analog/Mixed-Signal
Extensions Language Reference Manual
FOREWORD
1) The International Electrotechnical Commission (IEC) is a worldwide organization for standardization comprising
all national electrotechnical committees (IEC National Committees). The object of IEC is to promote international
co-operation on all questions concerning standardization in the electrical and electronic fields. To this end and
in addition to other activities, IEC publishes International Standards, Technical Specifications, Technical Reports,
Publicly Available Specifications (PAS) and Guides (hereafter referred to as "IEC document(s)"). Their
preparation is entrusted to technical committees; any IEC National Committee interested in the subject dealt with
may participate in this preparatory work. International, governmental and non-governmental organizations liaising
with the IEC also participate in this preparation.IEEE Standards documents are developed within IEEE Societies and Standards Coordinating Committees of the
IEEE Standards Association (IEEE SA) Standards Board. IEEE develops its standards through a consensus
development process, approved by the American National Standards Institute, which brings together volunteers
representing varied viewpoints and interests to achieve the final product. Volunteers are not necessarily members
of IEEE and serve without compensation. While IEEE administers the process and establishes rules to promote
fairness in the consensus development process, IEEE does not independently evaluate, test, or verify the
accuracy of any of the information contained in its standards. Use of IEEE Standards documents is wholly
voluntary. IEEE documents are made available for use subject to important notices and legal disclaimers (see
http://standards.ieee.org/ipr/disclaimers.html for more information).IEC collaborates closely with IEEE in accordance with conditions determined by agreement between the two
organizations. This Dual Logo International Standard was jointly developed by the IEC and IEEE under the terms
of that agreement.2) The formal decisions of IEC on technical matters express, as nearly as possible, an international consensus of
opinion on the relevant subjects since each technical committee has representation from all interested IEC
National Committees. The formal decisions of IEEE on technical matters, once consensus within IEEE Societies
and Standards Coordinating Committees has been reached, is determined by a balanced ballot of materially
interested parties who indicate interest in reviewing the proposed standard. Final approval of the IEEE standards
document is given by the IEEE Standards Association (IEEE SA) Standards Board.3) IEC/IEEE Publications have the form of recommendations for international use and are accepted by IEC National
Committees/IEEE Societies in that sense. While all reasonable efforts are made to ensure that the technical
content of IEC/IEEE Publications is accurate, IEC or IEEE cannot be held responsible for the way in which they
are used or for any misinterpretation by any end user.4) In order to promote international uniformity, IEC National Committees undertake to apply IEC Publica
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.