The Institute of Electrical and Electronics Engineers, Inc.
3 Park Avenue, New York, NY 10016-5997, USA
Copyright © 2000 by the Institute of Electrical and Electronics Engineers, Inc.
All rights reserved. Published 9 March 2000. Printed in the United States of America.
Print:
ISBN 0-7381-1819-2 SH94792
PDF:
ISBN 0-7381-1820-6 SS94792
No part of this publication may be reproduced in any form, in an electronic retrieval system or otherwise, without the prior
written permission of the publisher.
IEEE Std 1076.6-1999
IEEE Standard for VHDL Register
Transfer Level (RTL) Synthesis
Sponsor
Design Automation Standards Committee
of the
IEEE Computer Society
Approved 16 September 1999
IEEE-SA Standards Board
Abstract:
A standard syntax and semantics for VHDL register transfer level (RTL) synthesis is de-
fined. The subset of IEEE 1076 (VHDL) that is suitable for RTL synthesis is defined, along with the
semantics of that subset for the synthesis domain.
Keywords:
pragma, register transfer level (RTL), synthesis, VHDL
IEEE Standards
documents are developed within the IEEE Societies and the Standards Coordinating Com-
mittees of the IEEE Standards Association (IEEE-SA) Standards Board. Members of the committees serve
voluntarily and without compensation. They are not necessarily members of the Institute. The standards
developed within IEEE represent a consensus of the broad expertise on the subject within the Institute as
well as those activities outside of IEEE that have expressed an interest in participating in the development of
the standard.
Use of an IEEE Standard is wholly voluntary. The existence of an IEEE Standard does not imply that there
are no other ways to produce, test, measure, purchase, market, or provide other goods and services related to
the scope of the IEEE Standard. Furthermore, the viewpoint expressed at the time a standard is approved and
issued is subject to change brought about through developments in the state of the art and comments
received from users of the standard. Every IEEE Standard is subjected to review at least every five years for
revision or reaffirmation. When a document is more than five years old and has not been reaffirmed, it is rea-
sonable to conclude that its contents, although still of some value, do not wholly reflect the present state of
the art. Users are cautioned to check to determine that they have the latest edition of any IEEE Standard.
Comments for revision of IEEE Standards are welcome from any interested party, regardless of membership
affiliation with IEEE. Suggestions for changes in documents should be in the form of a proposed change of
text, together with appropriate supporting comments.
Interpretations: Occasionally questions may arise regarding the meaning of portions of standards as they
relate to specific applications. When the need for interpretations is brought to the attention of IEEE, the
Institute will initiate action to prepare appropriate responses. Since IEEE Standards represent a consensus of
all concerned interests, it is important to ensure that any interpretation has also received the concurrence of a
balance of interests. For this reason, IEEE and the members of its societies and Standards Coordinating
Committees are not able to provide an instant response to interpretation requests except in those cases where
the matter has previously received formal consideration.
Comments on standards and requests for interpretations should be addressed to:
Secretary, IEEE-SA Standards Board
445 Hoes Lane
P.O. Box 1331
Piscataway, NJ 08855-1331
USA
Authorization to photocopy portions of any individual standard for internal or personal use is granted by the
Institute of Electrical and Electronics Engineers, Inc., provided that the appropriate fee is paid to Copyright
Clearance Center. To arrange for payment of licensing fee, please contact Copyright Clearance Center, Cus-
tomer Service, 222 Rosewood Drive, Danvers, MA 01923 USA; (978) 750-8400. Permission to photocopy
portions of any individual standard for educational classroom use can also be obtained through the Copy-
right Clearance Center.
Note: Attention is called to the possibility that implementation of this standard may
require use of subject matter 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. The IEEE shall not be responsible for identifying patents for
which a license may be required by an IEEE standard or for conducting inquiries into
the legal validity or scope of those patents that are brought to its attention.
Copyright © 2000 IEEE. All rights reserved.
iii
Introduction
[This introduction is not part of IEEE Std 1076.6-1999, IEEE Standard for VHDL Register Transfer Level (RTL)
Synthesis.]
This standard describes a syntax and semantics for VHDL RTL synthesis. It defines the subset of IEEE Std
1076-1993 (VHDL) that is suitable for RTL synthesis as well as the semantics of that subset for the synthesis
domain. This standard is based on IEEE Std 1076-1993, IEEE Std 1164-1993, and IEEE Std 1076.3-1997.
The purpose of this standard is to define a syntax and semantics that can be used in common by all compliant
RTL synthesis tools to achieve uniformity of results in a similar manner to which simulation tools use IEEE
Std 1076-1993. This will allow users of synthesis tools to produce well-defined designs whose functional
characteristics are independent of a particular synthesis implementation by making their designs compliant
with this standard.
The standard is intended for use by logic designers and electronics engineers.
Work on this standard was initiated by the Synthesis Interoperability Working Group under VHDL Interna-
tional. The Working Group was also chartered by the EDA Industry Council Project Technical Advisory
Board (PTAB) to develop a draft based on the subsets donated by a number of companies and groups.
After the PTAB approved Draft 1.5 with an overwhelming affirmative response, an IEEE project authoriza-
tion request (PAR) was obtained for IEEE standardization. Most of the members of the original Working
Group continued to be part of the Pilot Group of P1076.6 that led the technical work.
Participants
At the time this standard was balloted, the 1076.6 Pilot Team consisted of the following individuals:
Jayaram Bhasker,
Chair
Rob Anderson,
Compiler Directives
David Bishop,
Web and Reflector Administrator
Apurva Kalia,
Semantics Task Leader
Douglas J. Smith,
Editor/Attributes Task Leader
Lance G. Thompson,
Syntax Task Leader
Many individuals from different organizations contributed to the development of this standard. In particular,
the following individuals contributed to its development by being part of the Synthesis Interoperability
Working Group:
In addition, 95 individuals on the Working Group e-mail reflector also contributed to the development of this
standard.
Victor Berman
Dominique Borrione
Dennis B. Brophy
Ben Cohen
Colin Dente
Wolfgang Ecker
Robert A. Flatt
Christopher Grim
Rich Hatcher
Masamichi Kawarabayashi
Jim Lewis
Sanjiv Narayan
Doug Perry
Steven E. Shultz
Fur-Shing Tsai
Jim Vellenga
Eugenio Villar
Nels Vander Zanden
Bill Anker
LaNae Avra
Robert Blackburn
John Hillawi
Pradip Jha
iv
Copyright © 2000 IEEE. All rights reserved.
The following members of the balloting committee voted on this standard:
When the IEEE-SA Standards Board approved this standard on 16 September 1999, it had the following
membership:
Richard J. Holleman,
Chair
Donald N. Heirman,
Vice Chair
Judith Gorman,
Secretary
*Member Emeritus
Also included is the following nonvoting IEEE-SA Standards Board liaison:
Robert E. Hebner
Janet Rutigliano
IEEE Standards Project Editor
Mostapha Aboulhamid
Phillip R. Acuff
Bill Anker
Peter J. Ashenden
Jesus Avila-Casa
Stephen A. Bailey
Pete Bakowski
David L. Barton
Victor Berman
Jayaram Bhasker
William Billowitch
Robert Blackburn
Martin J. Bolton
Dominique Borrione
Dennis B. Brophy
Patrick K. Bryant
Larrie Carr
Shir-Shen Chang
Luc Claesen
Edmond S. Cooley
Alan Coppola
Ronnie W. Craig
David C. Crohn
Clifford E. Cummings
Timothy R. Davis
Steven L. Drager
Douglas D. Dunlop
George E. Econonuakos
Robert A. Flatt
Scott Flinchbaugh
Rita A. Glover
Kenji Goto
Brian S. Griffin
Andrew Guyler
Pauline C. Haddow
Michael J. Haney
William A. Hanna
Donald F. Hanson
M. M. Kamal Hashmi
Rich Hatcher
Jim Heaton
Geir Hedemark
John Hillawi
John Hines
Pradip Jha
Apurva Kalia
Takashi Kambe
Osamu Karatsu
Jake Karrfalt
Masamichi Kawarabayashi
Steven Kelem
Robert H. Klenke
Venkatram Krishnaswamy
Vello Kukk
Gunther Lehmann
Jim Lewis
Victor Martin
Peter Marwedel
John McCluskey
Michael D. McKinney
Paul J. Menchini
Jean P. Mermet
Egbert Molenkamp
Jaun Moreno
Gabe Moretti
David S. Morris
Gerald Musgrave
Wolfgang W. Nebel
Kevin O'Brien
Serafin Olcoz
William R. Paulsen
Paolo Prinetto
Johan Sandstrom
Hisashi Sasaki
Quentin G. Schmierer
Steven E. Schultz
Toru Shonai
Douglas J. Smith
Joseph J. Stanco
Atsushi Takahara
Thomas D. Tessier
Lance G. Thompson
Paul Traynar
Yatin K. Trivedi
Cary Ussery
Radha Vaidyanathan
Ranganadha R. Vemuri
Eugenio Villar
Ronald Waxman
J. Richard Weger
Ron Werner
John Williams
William R. Young
Tetsuo Yutani
Jan Zegers
Mark Zwolinski
Satish K. Aggarwal
Dennis Bodson
Mark D. Bowman
James T. Carlo
Gary R. Engmann
Harold E. Epstein
Jay Forster*
Ruben D. Garzon
James H. Gurney
Lowell G. Johnson
Robert J. Kennelly
E. G. “Al” Kiener
Joseph L. Koepfinger*
L. Bruce McClung
Daleep C. Mohla
Robert F. Munzner
Louis-François Pau
Ronald C. Petersen
Gerald H. Peterson
John B. Posey
Gary S. Robinson
Akio Tojo
Hans E. Weinrich
Donald W. Zipse
Copyright © 2000 IEEE. All rights reserved.
v
Contents
1. Overview.............................................................................................................................................. 1
1.1 Scope............................................................................................................................................ 1
1.2 Compliance to this standard......................................................................................................... 1
1.3 Terminology................................................................................................................................. 2
1.4 Conventions ................................................................................................................................. 2
2. References............................................................................................................................................ 3
3. Definitions............................................................................................................................................ 3
4. Predefined types................................................................................................................................... 4
5. Verification methodology.................................................................................................................... 5
5.1 Combinational verification .......................................................................................................... 5
5.2 Sequential verification ................................................................................................................. 6
6. Modeling hardware elements............................................................................................................... 6
6.1 Edge-sensitive sequential logic.................................................................................................... 7
6.2 Level-sensitive sequential logic................................................................................................. 11
6.3 Three-state and bus modeling.................................................................................................... 12
6.4 Modeling combinational logic................................................................................................... 12
7. Pragmas.............................................................................................................................................. 12
7.1 Attributes.................................................................................................................................... 12
7.2 Metacomments........................................................................................................................... 13
8. Syntax ................................................................................................................................................ 14
8.1 Design entities and configurations............................................................................................. 14
8.2 Subprograms and packages........................................................................................................ 19
8.3 Types.......................................................................................................................................... 23
8.4 Declarations ............................................................................................................................... 28
8.5 Specifications............................................................................................................................. 34
8.6 Names ........................................................................................................................................ 36
8.7 Expressions ................................................................................................................................ 38
8.8 Sequential statements................................................................................................................. 43
8.9 Concurrent statements................................................................................................................ 49
8.10 Scope and visibility.................................................................................................................... 54
8.11 Design units and their analysis .................................................................................................. 55
8.12 Elaboration................................................................................................................................. 56
8.13 Lexical elements ........................................................................................................................ 56
8.14 Predefined language environment.............................................................................................. 56
Annex A (informative) Syntax summary....................................................................................................... 59