Shopping Cart

No products in the cart.

IEEE 1647-2006

$62.08

IEEE Standard for the Functional Verification Language ‘e’

Published By Publication Date Number of Pages
IEEE 2006 385
Guaranteed Safe Checkout
Category:

If you have any questions, feel free to reach out to our online customer service team by clicking on the bottom right corner. Weā€™re here to assist you 24/7.
Email:[email protected]

New IEEE Standard – Superseded. 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, and how tool developers and verification engineers should use them.

PDF Catalog

PDF Pages PDF Title
1 IEEE Std 1647-2006
3 IEEE Standard for the Functional Verification Language ‘e’
4 Abstract/Keywords
6 Introduction
7 Notice to users
8 Participants
10 Contents
15 1. Overview
1.1 Scope
1.2 Purpose
16 1.3 Basic concepts relating to this standard
22 1.4 Conventions used
23 1.5 Contents of this standard
25 2. Normative references
3. Definitions, acronyms, and abbreviations
3.1 Definitions
27 3.2 Acronyms and abbreviations
29 4. e basics
4.1 Lexical conventions
36 4.2 Syntactic elements
42 4.3 Struct hierarchy and name resolution
48 4.4 Ranges
49 4.5 Operator precedence
50 4.6 Evaluation order of expressions
4.7 Bitwise operators
52 4.8 Boolean operators
54 4.9 Arithmetic operators
55 4.10 Comparison operators
59 4.11 String matching
62 4.12 Extraction and concatenation operators
66 4.13 Scalar modifiers
4.14 Parentheses
67 4.15 list.method()
4.16 Special-purpose operators
71 5. Data types
5.1 eļæ½data types
76 5.2 Untyped expressions
77 5.3 Assignment rules
80 5.4 Precision rules for numeric operations
82 5.5 Automatic type casting
5.6 Defining and extending scalar types
85 5.7 Explicit type conversion
91 6. Structs, subtypes, and fields
6.1 Structs overview
6.2 Defining structs: struct
92 6.3 Extending structs: extend type
93 6.4 Restrictions on inheritance
6.5 Extending subtypes
6.6 Creating subtypes with when
95 6.7 Extending when subtypes
96 6.8 Defining fields: field
97 6.9 Defining list fields
99 6.10 Projecting list of fields
6.11 Defining attribute fields
101 7. Units
7.1 Overview
103 7.2 Defining units and fields of type unit
107 7.3 Unit attributes
108 7.4 Predefined methods of any_unit
110 7.5 Unit-related predefined methods of any_struct
112 7.6 Unit-related predefined routines
115 8. e ports
8.1 Introduction to eļæ½ports
116 8.2 Using simple ports
118 8.3 Using buffer ports
119 8.4 Using event ports
120 8.5 Defining and referencing ports
123 8.6 Port attributes
135 8.7 Buffer port methods
137 8.8 MVL methods for simple ports
143 8.9 Global MVL routines
146 8.10 Comparative analysis of ports and tick access
149 9. Constraints and generation
9.1 Types of constraints
9.2 Generation concepts
162 9.3 Defining constraints
169 9.4 Invoking generation
171 10. Events
10.1 Causes of events
10.2 Scope of events
10.3 Defining and emitting named events
172 10.4 Predefined events
175 11. Temporal expressions
11.1 Overview
178 11.2 Temporal operators and constructs
193 11.3 Success and failure of a temporal expression
195 12. Temporal struct members
12.1 on
196 12.2 expect | assume
197 13. Time-consuming actions
13.1 Synchronization actions
198 13.2 Concurrency actions
200 13.3 State machines
205 14. Coverage constructs
14.1 Defining coverage groups: cover
207 14.2 Defining basic coverage items: item
211 14.3 Defining cross coverage items: cross
213 14.4 Defining transition coverage items: transition
215 14.5 Extending coverage groups: cover … using also … is also
216 14.6 Extending coverage items: item … using also
14.7 Coverage API methods
220 14.8 Coverage methods for the covers struct
225 15. Macros
15.1 Syntax overview
15.2 Defining a macro
226 15.3 Match expression structure
227 15.4 Interpretation of match expressions
228 15.5 Replacement code
231 16. Print, checks, and error handling
16.1 print
16.2 Handling DUT errors
235 16.3 Handling user errors
237 16.4 Handling programming errors: assert
239 17. Methods
17.1 Rules for defining and extending methods
247 17.2 Invoking methods
250 17.3 Parameter passing
252 17.4 Using the C interface
255 18. Creating and modifying eļæ½variables
18.1 About eļæ½variables
18.2 var
256 18.3 =
18.4 op=
257 18.5 <=
259 19. Packing and unpacking
19.1 Basic packing
262 19.2 Predefined pack options
263 19.3 Customizing pack options
19.4 Packing and unpacking specific types
268 19.5 Implicit packing and unpacking
271 20. Control flow actions
20.1 Conditional actions
273 20.2 Iterative actions
277 20.3 File iteration actions
278 20.4 Actions for controlling the program flow
279 21. Importing and preprocessor directives
21.1 Importing e modules
280 21.2 #ifdef, #ifndef
281 21.3 #define
282 21.4 #undef
283 22. Encapsulation constructs
22.1 package: package-name
22.2 package: type-declaration
284 22.3 package | protected | private: struct-member
285 23. Simulation-related constructs
23.1 force
23.2 release
286 23.3 Tick access: ‘hdl-pathname’
23.4 simulator_command()
287 23.5 stop_run()
289 24. List pseudo-methods library
24.1 Pseudo-methods overview
24.2 Using list pseudo-methods
24.3 Pseudo-methods to modify lists
298 24.4 General list pseudo-methods
312 24.5 Math and logic pseudo-methods
314 24.6 List CRC pseudo-methods
316 24.7 Keyed list pseudo-methods
319 25. Predefined methods library
25.1 Predefined methods of sys
25.2 Predefined methods of any_struct
322 25.3 Methods and predefined attributes of unit any_unit
25.4 Pseudo-methods
324 25.5 Coverage methods
325 26. Predefined routines library
26.1 Deep copy and compare routines
328 26.2 Arithmetic routines
332 26.3 bitwise_op()
333 26.4 get_all_units()
26.5 String routines
341 26.6 Output routines
343 26.7 Operating system interface routines
346 26.8 set_config()
347 27. Predefined file routines library
27.1 File names and search paths
27.2 File handles
27.3 Low-level file methods
352 27.4 General file routines
358 27.5 Reading and writing structs
363 28. Predefined resource sharing control structs
28.1 Semaphore methods
364 28.2 How to use the semaphore struct
369 Annex A (normative) Source code serialization
377 Annex B (informative) Compariosn of when and like inheritance
385 Annex C (informative) Bibliography
IEEE 1647-2006
$62.08