IEEE P1647 Header
Home
About
Membership
Patent related
Mail Archive
Minutes
Task forces
Downloads
Issue Tracking
Front Matter

Front Matter


Sections that will go into the first few pages of the LRM, or added as annexes.

Abstract

The e functional verification language is an application specific programming language, aimed at automating the task of verifying an electronic design with respect to its specification. Verification environments written in e provide a model of the environment in which the design is expected to function, including the kinds of erroneous conditions the design needs to withstand. A typical verification environment is capable of generating user controlled test inputs with statistically interesting characteristics.  Such an environment can check the validity of the design responses. Functional coverage metrics are used to control the verification effort and gauge the quality of the design. e verification environments can be used throughout the design cycle from a high level architectural model to a fully realized system.  This standard contains a definition of the e language syntax and semantics that would be of use to tool developers and verification engineers.

Keywords: functional verification, dynamic verification, simulation, test generation, constraint, assertion, functional coverage, temporal logic, concurrent programming.

Participants

A list of Working Group members and observers that contributed to the creation of the standard

References

  • IEEE Std 1076-2002, IEEE Standard VHDL Language Reference Manual
  • IEEE Std 1364-2001, IEEE Standard for Verilog Hardware Description Language
  • ISO/IEC 9899:1999, Programming languages—C
  • ISO/IEC 8859-1:1998(E), Information technology—8-bit single-byte coded graphic character sets—Part 1: Latin Alphabet
  • POSIX UNIX Specification, Version 3 is also ISO/IEC 9945:2003 (IEEE Std 1003.1, 2003)

Glossary of terms

The following terms are used or related to the material found in the standard.

attribute
a value associated with an object, typically used to classify or control object behavior
aspect
a program module that contains refinements to existing types, typically to implement a specific feature
bucket
a range of values that are collapsed together  (are not distinguished) for the purpose of coverage measurement
casting
the operation of changing the type associated with a value
configuration
a data structure containing flags that control the operation of the runtime environment
constraint
a language construct imposing some (optionally conditional) restrictions on the set of values that may be assigned to an object or a scalar.
construct
a component of the language
coverage (functional)
a user defined metric for measuring the thoroughness of functional verification
coverage group
a set of coverage values that are sampled together each time an associated event is emitted
extension
a refinement of a construct in an aspect
event
a keyword used to define a signaling entity.  Events can be either present or absent during each tick.
field
a feature of struct, used to hold values or references to objects
generation
a process of assigning pseudo-random values to object hierarchies, according to applicable constraints
global
a keyword referring to the top object in the runtime system
inheritance
a property of a programming language, allowing a type to be defined as an extension to a previously defined  type. The newly defined type is said to inherit from the previously defined type.
keep
a keyword used to define constraints
keyed list
a list containing members with fields designated as keys. Retrieval of  list members using their keys is implied to be efficient, typically utilizing hashing techniques.
list
a telescopic data structure used to hold ordered collections of objects of specific types
macro
a construct used to define a syntactic extension to the language and an associated semantics, in terms of the previously defined language
method
a programming construct comprising a sequence of actions within an object context
packing
the operation of marshaling a data structure such as an object hierarchy, to a sequence of bits
path (expression)
an expression composed of names, or expressions returning names, concatenated with dot ('.'). A path expression allows reference to objects that are not in the immediate scope.
port
an interface feature of a unit
pseudo-method
a construct that has a syntactic form of a method
pseudo-routine
a construct that has a syntactic form of a routine
sampling event
an event associated with a temporal expression, which determines when the temporal expression is evaluated
state machine
a programming style for implementing synchronous automaton
struct
a keyword used to define a new object type
subtype
a type inheriting from some other type
TCM (time consuming method)
a method containing actions that may block during execution. TCMs have internal state that persists during execution.
temporal expression
an expression describing the behavior of a system in time, the system comprising a set of variables.
tick
an instance in time. The execution of a runtime environment is comprised of a sequence of discrete execution steps, one for each tick.
unit
a keyword used to define a type that is optionally associated with a structural component (an HDL module)









Acronyms

The following acronyms are used or related to the material found in the standard.
ASIC  
application specific integrated circuit
ATM
asynchronous transfer mode
BNF
Backus-Naur form
CPU
central processing unit
EDA
electronic design automation
HDL
hardware description language
IC
integrated circuit
IP
intellectual property
LSB
least significant bit
MSB
most significant bit
RAM
random access memory
ROM
read only memory
RTL
register transfer level
SOC
system on a chip
VHDL
VHSIC hardware description language (see IEEE Std 1076-2002)
VLSI
very large-scale integration
TCM
time consuming method
DUT
design under test
AOP
aspect oriented programming
OOP
object oriented programming
SCC
strongly connected component
 

Bibliography

  • Design Verification with E by Samir Palnitkar, Prentice Hall PTR (2003), ISBN 0-13-141309-0
  • Functional Verification Coverage Measurement and Analysis by Andrew Piziali, Springer; 1 edition (2004), ISBN 1-40-208025-5
  • Programming Perl (3rd Edition) by Larry Wall, Tom Christiansen, Jon Orwant, O'Reilly; 3 edition (2000), ISBN 0-59-600027-8



IEEE/SA home
IEEE Standards Association
DASC Home
Design Automation Standards Committee
VLSG Home
Verification Language Study Group
The 1647  PAR
Project Authorization Form




(Updated Mon Aug 1 14:12:42 PDT 2005)