• IEEE 1364-2005

    Superseded A superseded Standard is one, which is fully replaced by another Standard, which is a new edition of the same Standard.

    IEEE Standard for Verilog Hardware Description Language

    Available format(s):  PDF

    Superseded date:  19-10-2021

    Language(s):  English

    Published date:  07-04-2006

    Publisher:  Institute of Electrical & Electronics Engineers

    Add To Cart

    Table of Contents - (Show below) - (Hide below)

    1 Overview
       1.1 Scope
       1.2 Conventions used in this standard
       1.3 Syntactic description
       1.4 Use of color in this standard
       1.5 Contents of this standard
       1.6 Deprecated clauses
       1.7 Header file listings
       1.8 Examples
       1.9 Prerequisites
    2 Normative references
    3 Lexical conventions
       3.1 Lexical tokens
       3.2 White space
       3.3 Comments
       3.4 Operators
       3.5 Numbers
       3.6 Strings
       3.7 Identifiers, keywords, and system names
       3.8 Attributes
    4 Data types
       4.1 Value set
       4.2 Nets and variables
       4.3 Vectors
       4.4 Strengths
       4.5 Implicit declarations
       4.6 Net types
       4.7 Regs
       4.8 Integers, reals, times, and realtimes
       4.9 Arrays
       4.10 Parameters
       4.11 Name spaces
    5 Expressions
       5.1 Operators
       5.2 Operands
       5.3 Minimum, typical, and maximum delay expressions
       5.4 Expression bit lengths
       5.5 Signed expressions
       5.6 Assignments and truncation
    6 Assignments
       6.1 Continuous assignments
       6.2 Procedural assignments
    7 Gate- and switch-level modeling
       7.1 Gate and switch declaration syntax
       7.2 and, nand, nor, or, xor, and xnor gates
       7.3 buf and not gates
       7.4 bufif1, bufif0, notif1, and notif0 gates
       7.5 MOS switches
       7.6 Bidirectional pass switches
       7.7 CMOS switches
       7.8 pullup and pulldown sources
       7.9 Logic strength modeling
       7.10 Strengths and values of combined signals
       7.11 Strength reduction by nonresistive devices
       7.12 Strength reduction by resistive devices
       7.13 Strengths of net types
       7.14 Gate and net delays
    8 User-defined primitives (UDPs)
       8.1 UDP definition
       8.2 Combinational UDPs
       8.3 Level-sensitive sequential UDPs
       8.4 Edge-sensitive sequential UDPs
       8.5 Sequential UDP initialization
       8.6 UDP instances
       8.7 Mixing level-sensitive and edge-sensitive descriptions
       8.8 Level-sensitive dominance
    9 Behavioral modeling
       9.1 Behavioral model overview
       9.2 Procedural assignments
       9.3 Procedural continuous assignments
       9.4 Conditional statement
       9.5 Case statement
       9.6 Looping statements
       9.7 Procedural timing controls
       9.8 Block statements
       9.9 Structured procedures
    10 Tasks and functions
       10.1 Distinctions between tasks and functions
       10.2 Tasks and task enabling
       10.3 Disabling of named blocks and tasks
       10.4 Functions and function calling
    11 Scheduling semantics
       11.1 Execution of a model
       11.2 Event simulation
       11.3 The stratified event queue
       11.4 Verilog simulation reference model
       11.5 Race conditions
       11.6 Scheduling implication of assignments
    12 Hierarchical structures
       12.1 Modules
       12.2 Overriding module parameter values
       12.3 Ports
       12.4 Generate constructs
       12.5 Hierarchical names
       12.6 Upwards name referencing
       12.7 Scope rules
       12.8 Elaboration
    13 Configuring the contents of a design
       13.1 Introduction
       13.2 Libraries
       13.3 Configurations
       13.4 Using libraries and configs
       13.5 Configuration examples
       13.6 Displaying library binding information
       13.7 Library mapping examples
    14 Specify blocks
       14.1 Specify block declaration
       14.2 Module path declarations
       14.3 Assigning delays to module paths
       14.4 Mixing module path delays and distributed delays
       14.5 Driving wired logic
       14.6 Detailed control of pulse filtering behavior
    15 Timing checks
       15.1 Overview
       15.2 Timing checks using a stability window
       15.3 Timing checks for clock and control signals
       15.4 Edge-control specifiers
       15.5 Notifiers: user-defined responses to timing violations
       15.6 Enabling timing checks with conditioned events
       15.7 Vector signals in timing checks
       15.8 Negative timing checks
    16 Backannotation using the standard delay format (SDF)
       16.1 The SDF annotator
       16.2 Mapping of SDF constructs to Verilog
       16.3 Multiple annotations
       16.4 Multiple SDF files
       16.5 Pulse limit annotation
       16.6 SDF to Verilog delay value mapping
    17 System tasks and functions
       17.1 Display system tasks
       17.2 File input-output system tasks and functions
       17.3 Timescale system tasks
       17.4 Simulation control system tasks
       17.5 Programmable logic array (PLA) modeling system tasks
       17.6 Stochastic analysis tasks
       17.7 Simulation time system functions
       17.8 Conversion functions
       17.9 Probabilistic distribution functions
       17.10 Command line input
       17.11 Math functions
    18 Value change dump (VCD) files
       18.1 Creating four-state VCD file
       18.2 Format of four-state VCD file
       18.3 Creating extended VCD file
       18.4 Format of extended VCD file
    19 Compiler directives
       19.1 `celldefine and `endcelldefine
       19.2 `default_nettype
       19.3 `define and `undef
       19.4 `ifdef, `else, `elsif, `endif, `ifndef
       19.5 `include
       19.6 `resetall
       19.7 `line
       19.8 `timescale
       19.9 `unconnected_drive and `nounconnected_drive
       19.10 `pragma
       19.11 `begin_keywords, `end_keywords
    20 Programming language interface (PLI) overview
       20.1 PLI purpose and history
       20.2 User-defined system task/function names
       20.3 User-defined system task/function types
       20.4 Overriding built-in system task/function names
       20.5 User-supplied PLI applications
       20.6 PLI mechanism
       20.7 User-defined system task/function arguments
       20.8 PLI include files
    21 PLI TF and ACC interface mechanism (deprecated)
    22 Using ACC routines (deprecated)
    23 ACC routine definitions (deprecated)
    24 Using TF routines (deprecated)
    25 TF routine definitions (deprecated)
    26 Using Verilog procedural interface (VPI) routines
       26.1 VPI system tasks and functions
       26.2 VPI mechanism
       26.3 VPI object classifications
       26.4 List of VPI routines by functional category
       26.5 Key to data model diagrams
       26.6 Object data model diagrams
    27 VPI routine definitions
       27.1 vpi_chk_error()
       27.2 vpi_compare_objects()
       27.3 vpi_control()
       27.4 vpi_flush()
       27.5 vpi_free_object()
       27.6 vpi_get()
       27.7 vpi_get_cb_info()
       27.8 vpi_get_data()
       27.9 vpi_get_delays()
       27.10 vpi_get_str()
       27.11 vpi_get_systf_info()
       27.12 vpi_get_time()
       27.13 vpi_get_userdata()
       27.14 vpi_get_value()
       27.15 vpi_get_vlog_info()
       27.16 vpi_handle()
       27.17 vpi_handle_by_index()
       27.18 vpi_handle_by_multi_index()
       27.19 vpi_handle_by_name()
       27.20 vpi_handle_multi()
       27.21 vpi_iterate()
       27.22 vpi_mcd_close()
       27.23 vpi_mcd_flush()
       27.24 vpi_mcd_name()
       27.25 vpi_mcd_open()
       27.26 vpi_mcd_printf()
       27.27 vpi_mcd_vprintf()
       27.28 vpi_printf()
       27.29 vpi_put_data()
       27.30 vpi_put_delays()
       27.31 vpi_put_userdata()
       27.32 vpi_put_value()
       27.33 vpi_register_cb()
       27.34 vpi_register_systf()
       27.35 vpi_remove_cb()
       27.36 vpi_scan()
       27.37 vpi_vprintf()
    28 Protected envelopes
       28.1 General
       28.2 Processing protected envelopes
       28.3 Protect pragma directives
       28.4 Protect pragma keywords
    Annex A (normative) Formal syntax definition
          A.1 Source text
          A.2 Declarations
          A.3 Primitive instances
          A.4 Module instantiation and generate construct
          A.5 UDP declaration and instantiation
          A.6 Behavioral statements
          A.7 Specify section
          A.8 Expressions
          A.9 General
    Annex B (normative) List of keywords
    Annex C (informative) System tasks and functions
          C.1 $countdrivers
          C.2 $getpattern
          C.3 $input
          C.4 $key and $nokey
          C.5 $list
          C.6 $log and $nolog
          C.7 $reset, $reset_count, and $reset_value
          C.8 $save, $restart, and $incsave
          C.9 $scale
          C.10 $scope
          C.11 $showscopes
          C.12 $showvars
          C.13 $sreadmemb and $sreadmemh
    Annex D (informative) Compiler directives
          D.1 `default_decay_time
          D.2 `default_trireg_strength
          D.3 `delay_mode_distributed
          D.4 `delay_mode_path
          D.5 `delay_mode_unit
          D.6 `delay_mode_zero
    Annex E (normative) acc_user.h (deprecated)
    Annex F (normative) veriuser.h (deprecated)
    Annex G (normative) vpi_user.h
    Annex H (informative) Encryption/decryption flow
          H.1 Tool vendor secret key encryption system
          H.2 IP author secret key encryption system
          H.3 Digital envelopes
    Annex I (informative) Bibliography
    Index

    Abstract - (Show below) - (Hide below)

    Verilog is a hardware description language (HDL) that was standardized as IEEE Std 1364™-1995 and first revised as IEEE Std 1364-2001.

    General Product Information - (Show below) - (Hide below)

    Committee Design Automation
    Development Note Supersedes IEEE DRAFT 1364. (04/2006)
    Document Type Standard
    Publisher Institute of Electrical & Electronics Engineers
    Status Superseded
    Superseded By
    Supersedes

    Standards Referenced By This Book - (Show below) - (Hide below)

    BS EN 62258-5:2006 Semiconductor die products Requirements for information concerning electrical simulation
    BS IEC 62014-4:2015 IP-XACT, Standard Structure for Packaging, Integrating, and Reusing IP within Tool Flows
    IEEE 1685-2014 IEEE Standard for IP-XACT, Standard Structure for Packaging, Integrating, and Reusing IP within Tool Flows
    CSA ISO/IEC 14776-113 : 2004 INFORMATION TECHNOLOGY - SMALL COMPUTER SYSTEM INTERFACE (SCSI) - PART 113: PARALLEL INTERFACE-3 (SPI-3)
    ANSI INCITS 367 : 2003(S2018) INFORMATION TECHNOLOGY - SCSI PARALLEL INTERFACE-5 (SPI-5)
    ANSI INCITS 367 : 2003 : R2008 INFORMATION TECHNOLOGY - SCSI PARALLEL INTERFACE-5 (SPI-5)
    ES 59008-2 : 1999 DATA REQUIREMENTS FOR SEMICONDUCTOR DIE - PART 2 - VOCABULARY
    EN 62258-5 : 2006 SEMICONDUCTOR DIE PRODUCTS - PART 5: REQUIREMENTS FOR INFORMATION CONCERNING ELECTRICAL SIMULATION
    BS IEC 62142:2005 Standard for Verilog register transfer level synthesis
    05/30130553 DC : DRAFT MAR 2005 IEC 62258-5 ED 1 - SEMICONDUCTOR DIE PRODUCTS - PART 5: REQUIREMENTS FOR INFORMATION CONCERNING ELECTRICAL SIMULATION
    IEEE 2401-2015 IEEE Standard Format for LSI-Package-Board Interoperable Design
    BS IEC 61523-3:2004 Delay and power calculation standards Standard delay formaty (SDF) for the electronic design process
    CSA ISO/IEC 14776-113 : 2004 : R2012 INFORMATION TECHNOLOGY - SMALL COMPUTER SYSTEM INTERFACE (SCSI) - PART 113: PARALLEL INTERFACE-3 (SPI-3)
    ANSI INCITS 362 : 2002 SCSI PARALLEL INTERFACE-4 (SPI-4)
    IEC 61691-7:2009 Behavioural languages - Part 7: SystemC R Language Reference Manual
    I.S. EN 62258-5:2006 SEMICONDUCTOR DIE PRODUCTS - PART 5: REQUIREMENTS FOR INFORMATION CONCERNING ELECTRICAL SIMULATION
    IEEE 1804-2017 IEEE Standard for Fault Accounting and Coverage Reporting(FACR) for Digital Modules
    IEC 62530:2011 SystemVerilog - Unified Hardware Design, Specification, and Verification Language
    CEI EN 62258-5 : 2007 SEMICONDUCTOR DIE PRODUCTS - PART 5: REQUIREMENTS FOR INFORMATION CONCERNING ELECTRICAL SIMULATION
    IEEE 1647-2011 REDLINE IEEE Standard for the Functional Verification Language e
    ANSI INCITS TR 44 : 2008 INFORMATION TECHNOLOGY - FIBRE CHANNEL SIGNAL MODELING-2 (FCSM-2)
    IEEE DRAFT 1666 : D2.1.1 2005 SYSTEMC LANGUAGE REFERENCE MANUAL
    IEC 62142:2005 Verilog (R) register transfer level synthesis
    PD ES 59008-2:1999 Data requirements for semiconductor die Vocabulary
    ISO/IEC 14776-113:2002 Information technology Small Computer System Interface (SCSI) Part 113: Parallel Interface-3 (SPI-3)
    IEC 61523-4:2015 Design and Verification of Low-Power Integrated Circuits
    IEC 62531:2012 Property Specification Language (PSL)
    IEC 61523-3:2004 Delay and power calculation standards - Part 3: Standard Delay Format (SDF) for the electronic design process
    ANSI INCITS 336 : 2000 INFORMATION TECHNOLOGY - SCSI PARALLEL INTERFACE-3 (SPI-3)
    IEEE DRAFT 1800 : D6 2005 SYSTEMVERILOG: UNIFIED HARDWARE DESIGN, SPECIFICATION AND VERIFICATION LANGUAGE
    IEC 62014-4:2015 IP-XACT, Standard Structure for Packaging, Integrating, and Reusing IP within Tool Flows
    BS IEC 62531:2012 IEEE standard for property specification language (PSL)
    PD IEC/TR 63084:2017 Nuclear power plants. Instrumentation and control important to safety. Platform qualification for systems important to safety
    BS IEC 62526:2007 Standard for extensions to standard test interface language (STIL) for semiconductor design environments
    BS IEC 62014-5:2015 Quality of Electronic and Software Intellectual Property Used in System and System on Chip (SoC) Designs
    ANSI INCITS TR 44 : 2008(R2018) INFORMATION TECHNOLOGY - FIBRE CHANNEL SIGNAL MODELING-2 (FCSM-2)
    IEEE DRAFT 1497 : DO.9 MAY 99 DRAFT STANDARD FOR STANDARD DELAY FORMAT (SDF) FOR THE ELECTRONIC DESIGN PROCESS
    IEC 63055:2016 Format for LSI-Package-Board Interoperable design
    IEEE 1801-2013 REDLINE IEEE Standard for Design and Verification of Low-Power Integrated Circuits
    SAE J 2546 : 2002 MODEL SPECIFICATION PROCESS STANDARD
    IEC 62526:2007 Standard for Extensions to Standard Test Interface Language (STIL) for Semiconductor Design Environments
    IEC TR 63084:2017 Nuclear power plants - Instrumentation and control important to safety - Platform qualification for systems important to safety
    IEC 62258-5:2006 Semiconductor die products - Part 5: Requirements for information concerning electrical simulation
    CAN/CSA-ISO/IEC 14776-113-04 (R2017) Information Technology - Small Computer System Interface (SCSI) - Part 113: Parallel Interface-3 (SPI-3) (Adopted ISO/IEC 14776-113:2002, first edition, 2002-08)
    BS IEC 61523-4:2015 Design and Verification of Low-Power Integrated Circuits
    BS IEC 62530:2011 SystemVerilog. Unified hardware design, specification, and verification language
    BS IEC 63055:2016 Format for LSI-Package-Board interoperable design
    IEEE 1450.6.2-2014 IEEE Standard for Memory Modeling in Core Test Language
    IEC 62014-5:2015 Quality of Electronic and Software Intellectual Property Used in System and System on Chip (SoC) Designs
    IEEE 1647-2019 IEEE Standard for the Functional Verification Language e
    IEEE 2401-2019 IEEE Standard Format for LSI-Package-Board Interoperable Design
    IEEE 1647-2016 REDLINE IEEE Standard for the Functional Verification Language e
    IEEE 1647-2008 REDLINE IEEE Standard for the Functional Verification Language e
    IEEE/IEC 63055-2023 IEEE/IEC International Standard--Format for LSI-Package-Board Interoperable design
    IEEE 1800-2005 IEEE Standard for SystemVerilog: Unified Hardware Design, Specification and Verification Language
    IEEE 1850-2010 IEEE Standard for Property Specification Language (PSL)
    IEEE/IEC 62530-2011 IEEE/IEC International Standard - SystemVerilog -- Unified Hardware Design, Specification, and Verification Language

    Standards Referencing This Book - (Show below) - (Hide below)

    ANSI X9.52 : 1998 TRIPLE DATA ENCRYPTION ALGORITHM MODES OF OPERATION
    FIPS PUB 197 : 2001 ADVANCED ENCRYPTION STANDARD (AES)
    FIPS PUB 46 : 0002 DATA ENCRYPTION STANDARD (DES)
    IEEE 754-2008 REDLINE IEEE Standard for Floating-Point Arithmetic
    FIPS PUB 180 : 2002 SECURE HASH STANDARD
    IEEE/Open Group 1003.1, 2013 Edition IEEE Standard for Information Technology—Portable Operating System Interface (POSIX(TM)) Base Specifications, Issue 7
    • Access your standards online with a subscription

      Features

      • Simple online access to standards, technical information and regulations
      • Critical updates of standards and customisable alerts and notifications
      • Multi - user online standards collection: secure, flexibile and cost effective