IEC 61691-1-1:2023
(Main)Behavioural languages - Part 1-1: VHDL Language Reference Manual
Behavioural languages - Part 1-1: VHDL Language Reference Manual
IEC 61691-1-1:2023 defines the syntax and semantics of the VHSIC Hardware Description Language (VHDL). The acronym VHSIC (Very High Speed Integrated Circuits) in the language’s name comes from the U.S. government program that funded early work on the standard. This is an IEC/IEEE dual logo standard.
General Information
Relations
Standards Content (Sample)
IEC 61691-1-1 ®
Edition 3.0 2023-10
™
IEEE Std 1076
INTERNATIONAL
STANDARD
Behavioural languages –
Part 1-1: VHDL 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 Secretariat 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 Products & Services Portal - products.iec.ch
The advanced search enables to find IEC publications by a Discover our powerful search engine and read freely all the
variety of criteria (reference number, text, technical publications previews. With a subscription you will always have
committee, …). It also gives information on projects, replaced 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 300 terminological entries in English
details all new publications released. Available online and once
and French, with equivalent terms in 19 additional languages.
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.
IEC 61691-1-1 ®
Edition 3.0 2023-10
IEEE Std 1076™
INTERNATIONAL
STANDARD
Behavioural languages –
Part 1-1: VHDL Language Reference Manual
INTERNATIONAL
ELECTROTECHNICAL
COMMISSION
ICS 25.040.01, 35.060 ISBN 978-2-8322-7517-7
– i – IEEE Std 1076™-2019
Contents
1. Overview. 14
1.1 Scope. 14
1.2 Purpose. 14
1.3 Structure and terminology of this standard . 14
1.4 Word usage . 16
2. Normative references. 18
3. Design entities and configurations. 19
3.1 General . 19
3.2 Entity declarations. 19
3.3 Architecture bodies . 22
3.4 Configuration declarations. 25
4. Subprograms and packages. 32
4.1 General . 32
4.2 Subprogram declarations. 32
4.3 Subprogram bodies . 37
4.4 Subprogram instantiation declarations. 39
4.5 Subprogram overloading. 40
4.6 Resolution functions . 43
4.7 Package declarations . 44
4.8 Package bodies. 45
4.9 Package instantiation declarations . 47
4.10 Conformance rules . 48
5. Types. 49
5.1 General . 49
5.2 Scalar types . 50
5.3 Composite types. 58
5.4 Access types. 68
5.5 File types. 70
5.6 Protected types . 75
5.7 String representations. 79
5.8 Unspecified types. 81
6. Declarations . 85
6.1 General . 85
6.2 Type declarations . 86
6.3 Subtype declarations . 86
6.4 Objects . 88
6.5 Interface declarations . 96
6.6 Alias declarations. 119
6.7 Attribute declarations. 122
6.8 Component declarations.123
6.9 Group template declarations . 123
This is a copyrighted IEEE Standard. For personal or standards development use only.
Published by IEC under licence from IEEE. © 2019 IEEE. All rights reserved.
IEEE Std 1076™-2019 – ii –
6.10 Group declarations . 124
6.11 PSL clock declarations. 124
7. Specifications. 126
7.1 General . 126
7.2 Attribute specification. 126
7.3 Configuration specification.129
7.4 Disconnection specification . 135
8. Names . 138
8.1 General . 138
8.2 Simple names . 139
8.3 Selected names. 140
8.4 Indexed names. 142
8.5 Slice names . 143
8.6 Attribute names . 143
8.7 External names. 144
9. Expressions . 148
9.1 General . 148
9.2 Operators. 149
9.3 Operands . 163
9.4 Static expressions. 172
9.5 Universal expressions . 175
10. Sequential statements. 176
10.1 General . 176
10.2 Wait statement. 176
10.3 Assertion statement. 178
10.4 Report statement . 179
10.5 Signal assignment statement . 180
10.6 Variable assignment statement. 189
10.7 Procedure call statement . 191
10.8 If statement. 192
10.9 Case statement. 193
10.10 Loop statement. 195
10.11 Next statement. 196
10.12 Exit statement. 196
10.13 Return statement . 196
10.14 Null statement . 197
10.15 Sequential block statement. 197
11. Concurrent statements. 199
11.1 General . 199
11.2 Block statement. 199
11.3 Process statement . 200
11.4 Concurrent procedure call statements . 202
11.5 Concurrent assertion statements. 203
11.6 Concurrent signal assignment statements . 204
This is a copyrighted IEEE Standard. For personal 9 or standards development use only.
Published by IEC under licence from IEEE. © 2019 IEEE. All rights reserved.
– iii – IEEE Std 1076™-2019
11.7 Component instantiation statements . 206
11.8 Generate statements . 212
12. Scope and visibility. 216
12.1 Declarative region . 216
12.2 Scope of declarations . 216
12.3 Visibility. 218
12.4 Use clauses. 222
12.5 The context of overload resolution . 223
13. Design units and their analysis . 225
13.1 Design units. 225
13.2 Design libraries . 225
13.3 Context declarations. 227
13.4 Context clauses . 227
13.5 Order of analysis . 228
14. Elaboration and execution . 229
14.1 General . 229
14.2 Elaboration of a design hierarchy . 229
14.3 Elaboration of a block, package, subprogram or protected type header . 232
14.4 Elaboration of a declarative part . 235
14.5 Elaboration of a statement part . 241
14.6 Dynamic elaboration . 244
14.7 Execution of a model . 245
15. Lexical elements . 256
15.1 General . 256
15.2 Character set. 256
15.3 Lexical elements, separators, and delimiters . 258
15.4 Identifiers . 260
15.5 Abstract literals . 261
15.6 Character literals . 262
15.7 String literals. 262
15.8 Bit string literals. 263
15.9 Comments . 266
15.10 Reserved words . 266
15.11 Tool directives. 268
16. Predefined language environment . 269
16.1 General . 269
16.2 Predefined attributes . 269
16.3 Package STANDARD. 287
16.4 Package TEXTIO. 305
16.5 Standard environment package . 311
16.6 Standard mathematical packages . 325
16.7 Standard multivalue logic package . 326
16.8 Standard synthesis packages . 326
16.9 Standard synthesis context declarations. 332
This is a copyrighted IEEE Standard. For personal or standards development use only.
Published by IEC under licence from IEEE. © 2019 IEEE. All rights reserved.
IEEE Std 1076™-2019 – iv –
16.10 Fixed-point package. 333
16.11 Floating-point package. 333
16.12 Reflection package. 334
17. VHDL Procedural Interface overview. 355
17.1 General . 355
17.2 Organization of the interface. 355
17.3 Capability sets . 356
17.4 Handles. 358
18. VHPI access functions . 360
18.1 General . 360
18.2 Information access functions . 360
18.3 Property access functions. 362
18.4 Access by name function .363
19. VHPI information model . 364
19.1 General . 364
19.2 Formal notation . 364
19.3 Class inheritance hierarchy . 365
19.4 Name properties . 366
19.5 The stdUninstantiated package . 379
19.6 The stdHierarchy package.382
19.7 The stdTypes package. 388
19.8 The stdExpr package. 391
19.9 The stdSpec package. 394
19.10 The stdSubprograms package . 396
19.11 The stdStmts package. 398
19.12 The stdConnectivity package . 404
19.13 The stdCallbacks package. 409
19.14 The stdEngine package . 409
19.15 The stdForeign package . 410
19.16 The stdMeta package . 410
19.17 The stdTool package . 412
19.18 Application contexts . 413
20. VHPI tool execution . 414
20.1 General . 414
20.2 Registration phase . 414
20.3 Analysis phase. 420
20.4 Elaboration phase. 420
20.5 Initialization phase . 422
20.6 Simulation phase . 422
20.7 Save phase. 422
20.8 Restart phase . 423
20.9 Reset phase. 423
20.10 Termination phase. 424
This is a copyrighted IEEE Standard. For personal 11 or standards development use only.
Published by IEC under licence from IEEE. © 2019 IEEE. All rights reserved.
– v – IEEE Std 1076™-2019
21. VHPI callbacks . 425
21.1 General . 425
21.2 Callback functions. 425
21.3 Callback reasons . 427
22. VHPI value access and update. 439
22.1 General . 439
22.2 Value structures and types . 439
22.3 Reading object values . 442
22.4 Formatting values. 443
22.5 Updating object values. 445
22.6 Scheduling transactions on drivers . 449
23. VHPI function reference. 452
23.1 General . 452
23.2 vhpi_assert . 452
23.3 vhpi_check_error . 453
23.4 vhpi_compare_handles. 456
23.5 vhpi_control . 457
23.6 vhpi_create . 459
23.7 vhpi_disable_cb . 462
23.8 vhpi_enable_cb . 462
23.9 vhpi_format_value . 464
23.10 vhpi_get. 465
23.11 vhpi_get_cb_info . 466
23.12 vhpi_get_data . 467
23.13 vhpi_get_foreignf_info . 469
23.14 vhpi_get_next_time. 470
23.15 vhpi_get_phys . 472
23.16 vhpi_get_real. 472
23.17 vhpi_get_str. 473
23.18 vhpi_get_time. 474
23.19 vhpi_get_value . 475
23.20 vhpi_handle. 476
23.21 vhpi_handle_by_index . 477
23.22 vhpi_handle_by_name . 481
23.23 vhpi_is_printable. 483
23.24 vhpi_iterator . 484
23.25 vhpi_printf. 485
23.26 vhpi_protected_call. 486
23.27 vhpi_put_data. 490
23.28 vhpi_put_value. 492
23.29 vhpi_register_cb. 493
23.30 vhpi_register_foreignf. 496
23.31 vhpi_release_handle. 499
23.32 vhpi_remove_cb. 499
23.33 vhpi_scan . 500
23.34 vhpi_schedule_transaction . 501
23.35 vhpi_vprintf. 506
This is a copyrighted IEEE Standard. For personal or standards development use only.
Published by IEC under licence from IEEE. © 2019 IEEE. All rights reserved.
IEEE Std 1076™-2019 – vi –
24. Standard tool directives . 507
24.1 Protect tool directives. 507
24.2 Conditional analysis tool directives . 523
Annex A (informative) VHPI definitions file. 525
Annex B (normative) VHPI header file. 527
Annex C (informative) Syntax summary. 530
Annex D (informative) Potentially non-portable constructs. 557
Annex E (informative) Changes from IEEE Std 1076-2008 . 558
Annex F (informative) Features under consideration for removal . 559
Annex G (informative) Guide to use of standard packages. 560
Annex H (informative) Guide to use of protect directives . 597
Annex I (informative) Glossary. 605
Annex J (informative) Bibliography. 632
Annex K (informative) Participants .633
Index . 634
This is a copyrighted IEEE Standard. For personal 13 or standards development use only.
Published by IEC under licence from IEEE. © 2019 IEEE. All rights reserved.
– vii – IEEE Std 1076™-2019
BEHAVIOURAL LANGUAGES –
Part 1-1: VHDL 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
https://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 Publications
(including IEC/IEEE Publications) transparently to the maximum extent possible in their national and re gional
publications. Any divergence between any IEC/IEEE Publication and the corresponding national or regional
publication shall be clearly indicated in the latter.
5) IEC and IEEE do not provide any attestation of conformity. Independent certification bo dies provide conformity
assessment services and, in some areas, access to IEC marks of conformity. IEC and IEEE are not responsible
for any services carried out by independent certification bodies.
6) All users should ensure that they have the latest edition of this publication.
7) No liability shall attach to IEC or IEEE or their directors, employees, servants or agents including individual
experts and members of technical committees and IEC National Committees, or volunteers of IEEE Societies
and the Standards Coordinating Committees of the IEEE Standards Association (IEEE SA) Standards Board, for
any personal injury, property damage or other damage of any nature whatsoever, whether direct or indirect, or
for costs (including legal fees) and expenses arising out of the publication, use of, or reliance upon, this IEC/IEEE
Publication or any other IEC or IEEE Publications.
8) Attention is drawn to the normative references cited in this publication. Use of the referenced publications is
indispensable for the correct application of this publication.
9) Attention is drawn to the possibility that implementation of this IEC/IEEE Publication may require use of material
covered by patent rights. By publication of this standard, no position is taken with respect to the existence or
validity of any patent rights in connection therewith. IEC or IEEE shall not be held responsible for identifying
Essential Patent Claims for which a license may be required, for conducting inquiries into the legal validity or
scope of Patent Claims or determining whether any licensing terms or conditions provided in connection with
submission of a Letter of Assurance, if any, or in any licensing agreements are reasonable or non -discriminatory.
Users of this standard are expressly advised that determination of the validity of any patent rights, and the risk
of infringement of such rights, is entirely their own responsibility.
Published by IEC under licence from IEEE. © 2019 IEEE. All rights reserved.
IEEE Std 1076™-2019 – viii –
IEC 61691-1-1/IEEE Std 1076 was processed through IEC technical committee 91: Electronics
assembly technology, under the IEC/IEEE Dual Logo Agreement. It is an International
Standard.
The text of this International Standard is based on the following documents:
IEEE Std FDIS Report on voting
1076 (2019) 91/1871/FDIS 91/1885/RVD
Full information on the voting for its approval can be found in the report on voting indicated in
the above table.
The language used for the development of this International Standard is English.
The IEC Technical Committee and IEEE Technical Committee have decided that the contents
of this document will remain unchanged until the stability date indicated on the IEC website
under webstore.iec.ch in the data related to the specific document. At this date, the document
will be
• reconfirmed,
• withdrawn, or
• revised.
Published by IEC under licence from IEEE. © 2019 IEEE. All rights reserved.
IEEE Std 1076™-2019
IEEE Std 1076™-2019
(Revision of
IEEE Std 1076-2008)
IEEE Standard for VHDL Language
Reference Manual
Developed by the
Design Automation Stan
...








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...