IEEE 1076-2019(Redline)
$280.58
IEEE Standard for VHDL Language Reference Manual (Redline)
Published By | Publication Date | Number of Pages |
IEEE | 2019 | 673 |
Revision Standard – Active. VHSIC Hardware Description Language (VHDL) is defined. VHDL is a formal notation intended for use in all phases of the creation of electronic systems. Because it is both machine readable and human readable, it supports the development, verification, synthesis, and testing of hardware designs; the communication of hardware design data; and the maintenance, modification, and procurement of hardware. Its primary audiences are the implementors of tools supporting the language and the advanced users of the language.
PDF Catalog
PDF Pages | PDF Title |
---|---|
1 | IEEE Std 1076-2019 Front cover |
2 | Title page |
4 | Important Notices and Disclaimers Concerning IEEE Standards Documents |
7 | Participants |
8 | Introduction Acknowledgments |
9 | Contents |
15 | 1. Overview 1.1 Scope 1.2 Purpose 1.3 Structure and terminology of this standard 1.3.1 General |
16 | 1.3.2 Syntactic description 1.3.3 Semantic description |
17 | 1.3.4 Front matter, examples, notes, references, and annexes 1.3.5 Incorporation of Property Specification Language 1.4 Word usage |
19 | 2. Normative references |
20 | 3. Design entities and configurations 3.1 General 3.2 Entity declarations 3.2.1 General |
21 | 3.2.2 Entity header 3.2.3 Entity declarative part |
22 | 3.2.4 Entity statement part |
23 | 3.3 Architecture bodies 3.3.1 General |
24 | 3.3.2 Architecture declarative part |
25 | 3.3.3 Architecture statement part |
26 | 3.4 Configuration declarations 3.4.1 General |
27 | 3.4.2 Block configuration |
30 | 3.4.3 Component configuration |
33 | 4. Subprograms and packages 4.1 General 4.2 Subprogram declarations 4.2.1 General |
35 | 4.2.2 Formal parameters 4.2.2.1 Formal parameter lists |
36 | 4.2.2.2 Constant and variable parameters |
37 | 4.2.2.3 Signal parameters 4.2.2.4 File parameters |
38 | 4.3 Subprogram bodies |
40 | 4.4 Subprogram instantiation declarations |
41 | 4.5 Subprogram overloading 4.5.1 General |
42 | 4.5.2 Operator overloading |
43 | 4.5.3 Signatures |
44 | 4.6 Resolution functions |
45 | 4.7 Package declarations |
46 | 4.8 Package bodies |
48 | 4.9 Package instantiation declarations |
49 | 4.10 Conformance rules |
50 | 5. Types 5.1 General |
51 | 5.2 Scalar types 5.2.1 General |
52 | 5.2.2 Enumeration types 5.2.2.1 General |
53 | 5.2.2.2 Predefined enumeration types 5.2.3 Integer types 5.2.3.1 General |
54 | 5.2.3.2 Predefined integer types 5.2.4 Physical types 5.2.4.1 General |
56 | 5.2.4.2 Predefined physical types |
57 | 5.2.5 Floating-point types 5.2.5.1 General 5.2.5.2 Predefined floating-point types |
58 | 5.2.6 Predefined operations on scalar types |
59 | 5.3 Composite types 5.3.1 General |
60 | 5.3.2 Array types 5.3.2.1 General |
62 | 5.3.2.2 Index constraints and discrete ranges |
65 | 5.3.2.3 Predefined array types 5.3.2.4 Predefined operations on array types |
66 | 5.3.3 Record types 5.3.3.1 General |
68 | 5.3.3.2 Predefined record types 5.3.3.3 Predefined operations on record types |
69 | 5.4 Access types 5.4.1 General |
70 | 5.4.2 Incomplete type declarations |
71 | 5.4.3 Allocation and deallocation of objects 5.5 File types 5.5.1 General |
72 | 5.5.2 File operations |
76 | 5.6 Protected types 5.6.1 Protected type definitions 5.6.2 Protected type declarations |
78 | 5.6.3 Protected type bodies |
80 | 5.6.4 Protected type instantiation 5.7 String representations |
82 | 5.8 Unspecified types 5.8.1 General |
83 | 5.8.2 Private incomplete type 5.8.3 Scalar incomplete type 5.8.4 Discrete incomplete type 5.8.5 Integer incomplete type |
84 | 5.8.6 Physical incomplete type 5.8.7 Floating incomplete type 5.8.8 Array incomplete type 5.8.9 Access incomplete type |
85 | 5.8.10 File incomplete type |
86 | 6. Declarations 6.1 General |
87 | 6.2 Type declarations 6.3 Subtype declarations |
89 | 6.4 Objects 6.4.1 General |
90 | 6.4.2 Object declarations 6.4.2.1 General 6.4.2.2 Constant declarations |
91 | 6.4.2.3 Signal declarations |
93 | 6.4.2.4 Variable declarations |
95 | 6.4.2.5 File declarations |
97 | 6.5 Interface declarations 6.5.1 General 6.5.2 Interface object declarations |
102 | 6.5.3 Interface type declarations 6.5.3.1 General 6.5.3.2 Array interface type declaration |
103 | 6.5.3.3 Access interface type declaration |
104 | 6.5.3.4 File interface type declaration |
105 | 6.5.4 Interface subprogram declarations |
106 | 6.5.5 Interface package declarations |
107 | 6.5.6 Interface lists 6.5.6.1 General 6.5.6.2 Generic clauses |
108 | 6.5.6.3 Port clauses |
110 | 6.5.7 Association lists 6.5.7.1 General |
114 | 6.5.7.2 Generic map aspects |
119 | 6.5.7.3 Port map aspects |
120 | 6.6 Alias declarations |
121 | 6.6.1 Object aliases |
122 | 6.6.2 Nonobject aliases |
123 | 6.7 Attribute declarations |
124 | 6.8 Component declarations 6.9 Group template declarations |
125 | 6.10 Group declarations 6.11 PSL clock declarations |
127 | 7. Specifications 7.1 General 7.2 Attribute specification |
130 | 7.3 Configuration specification 7.3.1 General |
131 | 7.3.2 Binding indication 7.3.2.1 General |
133 | 7.3.2.2 Entity aspect |
134 | 7.3.3 Default binding indication |
135 | 7.3.4 Verification unit binding indication |
136 | 7.4 Disconnection specification |
139 | 8. Names 8.1 General |
140 | 8.2 Simple names |
141 | 8.3 Selected names |
143 | 8.4 Indexed names |
144 | 8.5 Slice names 8.6 Attribute names |
145 | 8.7 External names |
149 | 9. Expressions 9.1 General |
150 | 9.2 Operators 9.2.1 General |
151 | 9.2.2 Logical operators |
153 | 9.2.3 Relational operators |
156 | 9.2.4 Shift operators |
157 | 9.2.5 Adding operators |
159 | 9.2.6 Sign operators |
160 | 9.2.7 Multiplying operators |
162 | 9.2.8 Miscellaneous operators 9.2.9 Condition operator |
164 | 9.3 Operands 9.3.1 General 9.3.2 Literals |
165 | 9.3.3 Aggregates 9.3.3.1 General |
166 | 9.3.3.2 Record aggregates 9.3.3.3 Array aggregates |
168 | 9.3.4 Function calls |
169 | 9.3.5 Qualified expressions 9.3.6 Type conversions |
171 | 9.3.7 Allocators |
173 | 9.4 Static expressions 9.4.1 General 9.4.2 Locally static primaries |
174 | 9.4.3 Globally static primaries |
176 | 9.5 Universal expressions |
177 | 10. Sequential statements 10.1 General 10.2 Wait statement |
179 | 10.3 Assertion statement |
180 | 10.4 Report statement |
181 | 10.5 Signal assignment statement 10.5.1 General 10.5.2 Simple signal assignments 10.5.2.1 General |
184 | 10.5.2.2 Executing a simple assignment statement |
187 | 10.5.3 Conditional signal assignments |
188 | 10.5.4 Selected signal assignments |
190 | 10.6 Variable assignment statement 10.6.1 General 10.6.2 Simple variable assignments 10.6.2.1 General |
192 | 10.6.3 Selected variable assignments 10.7 Procedure call statement |
193 | 10.8 If statement |
194 | 10.9 Case statement |
196 | 10.10 Loop statement |
197 | 10.11 Next statement 10.12 Exit statement 10.13 Return statement |
198 | 10.14 Null statement 10.15 Sequential block statement |
200 | 11. Concurrent statements 11.1 General 11.2 Block statement |
201 | 11.3 Process statement |
203 | 11.4 Concurrent procedure call statements |
204 | 11.5 Concurrent assertion statements |
205 | 11.6 Concurrent signal assignment statements |
207 | 11.7 Component instantiation statements 11.7.1 General |
208 | 11.7.2 Instantiation of a component |
210 | 11.7.3 Instantiation of a design entity |
213 | 11.8 Generate statements |
217 | 12. Scope and visibility 12.1 Declarative region 12.2 Scope of declarations |
219 | 12.3 Visibility |
223 | 12.4 Use clauses |
224 | 12.5 The context of overload resolution |
226 | 13. Design units and their analysis 13.1 Design units 13.2 Design libraries |
228 | 13.3 Context declarations 13.4 Context clauses |
229 | 13.5 Order of analysis |
230 | 14. Elaboration and execution 14.1 General 14.2 Elaboration of a design hierarchy |
233 | 14.3 Elaboration of a block, package, subprogram or protected type header 14.3.1 General |
234 | 14.3.2 Generic clause 14.3.3 Generic map aspect 14.3.3.1 General 14.3.3.2 Association elements for generic constants 14.3.3.3 Association elements for generic types |
235 | 14.3.3.4 Association elements for generic subprograms 14.3.3.5 Association elements for generic packages 14.3.4 Port clause 14.3.5 Port map aspect |
236 | 14.4 Elaboration of a declarative part 14.4.1 General |
237 | 14.4.2 Elaboration of a declaration 14.4.2.1 General 14.4.2.2 Subprogram declarations, bodies, and instantiations |
238 | 14.4.2.3 Type declarations and instantiations |
239 | 14.4.2.4 Subtype declarations 14.4.2.5 Object declarations |
240 | 14.4.2.6 Elaboration of a mode view declaration 14.4.2.7 Alias declarations 14.4.2.8 Attribute declarations 14.4.2.9 Component declarations 14.4.2.10 Packages |
241 | 14.4.3 Elaboration of a specification 14.4.3.1 General 14.4.3.2 Attribute specifications 14.4.3.3 Configuration specifications |
242 | 14.4.3.4 Disconnection specifications 14.5 Elaboration of a statement part 14.5.1 General 14.5.2 Block statements |
243 | 14.5.3 Generate statements |
244 | 14.5.4 Component instantiation statements |
245 | 14.5.5 Other concurrent statements 14.6 Dynamic elaboration |
246 | 14.7 Execution of a model 14.7.1 General |
247 | 14.7.2 Drivers 14.7.3 Propagation of signal values 14.7.3.1 General |
248 | 14.7.3.2 Driving values |
249 | 14.7.3.3 Effective values |
250 | 14.7.3.4 Signal update |
251 | 14.7.4 Updating implicit signals |
253 | 14.7.5 Model execution 14.7.5.1 General 14.7.5.2 Initialization |
254 | 14.7.5.3 Simulation cycle |
257 | 15. Lexical elements 15.1 General 15.2 Character set |
259 | 15.3 Lexical elements, separators, and delimiters |
261 | 15.4 Identifiers 15.4.1 General 15.4.2 Basic identifiers 15.4.3 Extended identifiers |
262 | 15.5 Abstract literals 15.5.1 General 15.5.2 Decimal literals 15.5.3 Based literals |
263 | 15.6 Character literals 15.7 String literals |
264 | 15.8 Bit string literals |
267 | 15.9 Comments 15.10 Reserved words |
269 | 15.11 Tool directives |
270 | 16. Predefined language environment 16.1 General 16.2 Predefined attributes 16.2.1 General |
271 | 16.2.2 Predefined attributes of types and objects |
276 | 16.2.3 Predefined attributes of arrays |
278 | 16.2.4 Predefined attributes of signals |
280 | 16.2.5 Predefined attributes of named entities |
287 | 16.2.6 Predefined attributes of ranges 16.2.7 Predefined attributes of PSL Objects |
288 | 16.2.8 Predefined attributes of named mode views 16.3 Package STANDARD |
306 | 16.4 Package TEXTIO |
312 | 16.5 Standard environment package 16.5.1 General 16.5.2 Package declaration |
319 | 16.5.3 Simulator API |
320 | 16.5.4 Date and time API |
321 | 16.5.5 Directory API |
322 | 16.5.6 Environment API |
323 | 16.5.7 Current file and line API |
324 | 16.5.8 PSL API 16.5.9 Report and assert statement API |
326 | 16.6 Standard mathematical packages |
327 | 16.7 Standard multivalue logic package 16.8 Standard synthesis packages |
328 | 16.8.1 Overview 16.8.1.1 Scope 16.8.1.2 Terminology 16.8.2 Interpretation of the standard logic types 16.8.2.1 General 16.8.2.2 The STD_LOGIC_1164 values |
329 | 16.8.2.3 Static constant values 16.8.2.4 Interpretation of logic values 16.8.2.4.1 General 16.8.2.4.2 Interpretation of the forcing and weak values (‘0’, ‘1’, ‘L’, ‘H’, FALSE, TRUE) 16.8.2.4.3 Interpretation of the metalogical values (‘U’, ‘W’, ‘X’, ‘ā’) 16.8.2.4.3.1 Metalogical values in relational expressions |
330 | 16.8.2.4.3.3 Metalogical values in logical, arithmetic, and shift operations 16.8.2.4.3.4 Metalogical values in concatenate operations 16.8.2.4.3.5 Metalogical values in type conversion and sign-extension functions 16.8.2.4.3.6 Metalogical values used in assignment references 16.8.2.4.4 Interpretation of the high-impedance value (‘Z’) |
331 | 16.8.3 The STD_MATCH function and predefined matching relational operators 16.8.4 Signal edge detection 16.8.5 Packages for arithmetic using bit and standard logic values 16.8.5.1 General |
332 | 16.8.5.2 Allowable modifications |
333 | 16.8.5.3 Compatibility with previous editions of IEEE Std 1076 16.9 Standard synthesis context declarations |
334 | 16.10 Fixed-point package 16.11 Floating-point package |
335 | 16.12 Reflection package 16.12.1 General |
336 | 16.12.2 Package declaration |
341 | 16.12.3 Package description 16.12.3.1 General |
342 | 16.12.3.2 Common subtype and value mirrors |
344 | 16.12.3.3 Enumeration subtype and value mirrors |
345 | 16.12.3.4 Integer subtype and value mirrors |
346 | 16.12.3.5 Floating subtype and value mirrors |
347 | 16.12.3.6 Physical subtype and value mirrors |
348 | 16.12.3.7 Record subtype and value mirrors |
349 | 16.12.3.8 Array subtype and value mirrors |
351 | 16.12.3.9 Access subtype and value mirrors |
352 | 16.12.3.10 File subtype and value mirrors 16.12.3.11 Protected type and value mirrors |
353 | 16.12.4 Examples 16.12.4.1 General 16.12.4.2 Length of discrete types |
354 | 16.12.4.3 Generic to_string |
356 | 17. VHDL Procedural Interface overview 17.1 General 17.2 Organization of the interface 17.2.1 General |
357 | 17.2.2 VHPI naming conventions 17.3 Capability sets |
359 | 17.4 Handles 17.4.1 General 17.4.2 Handle creation 17.4.3 Handle release |
360 | 17.4.4 Handle comparison 17.4.5 Validity of handles |
361 | 18. VHPI access functions 18.1 General 18.2 Information access functions 18.2.1 General 18.2.2 One-to-one association traversal |
363 | 18.2.3 One-to-many association traversal 18.3 Property access functions 18.3.1 General 18.3.2 Integer and Boolean property access function |
364 | 18.3.3 String property access function 18.3.4 Real property access function 18.3.5 Physical property access function 18.4 Access by name function |
365 | 19. VHPI information model 19.1 General 19.2 Formal notation 19.2.1 General 19.2.2 Machine-readable information model |
366 | 19.3 Class inheritance hierarchy |
367 | 19.4 Name properties 19.4.1 General 19.4.2 Implicit labels of statements 19.4.2.1 General 19.4.2.2 Implicit labels of loop statements |
368 | 19.4.2.3 Implicit labels of concurrent statements 19.4.3 The Name and CaseName properties |
373 | 19.4.4 The SignatureName property 19.4.5 The UnitName property 19.4.6 The DefName and DefCaseName properties |
377 | 19.4.7 The FullName and FullCaseName properties |
380 | 19.4.8 The PathName and InstanceName properties 19.5 The stdUninstantiated package |
383 | 19.6 The stdHierarchy package |
389 | 19.7 The stdTypes package |
392 | 19.8 The stdExpr package |
395 | 19.9 The stdSpec package |
397 | 19.10 The stdSubprograms package |
399 | 19.11 The stdStmts package |
405 | 19.12 The stdConnectivity package 19.12.1 Class diagrams |
408 | 19.12.2 Contributors, loads, and simulated nets 19.12.2.1 General |
409 | 19.12.2.2 Local contributors 19.12.2.3 Local loads |
410 | 19.12.2.4 Simulated nets 19.13 The stdCallbacks package 19.14 The stdEngine package |
411 | 19.15 The stdForeign package 19.16 The stdMeta package |
413 | 19.17 The stdTool package |
414 | 19.18 Application contexts |
415 | 20. VHPI tool execution 20.1 General 20.2 Registration phase 20.2.1 General |
416 | 20.2.2 Registration using a tabular registry |
418 | 20.2.3 Registration using registration functions |
419 | 20.2.4 Foreign attribute for foreign models 20.2.4.1 General 20.2.4.2 Standard indirect binding |
420 | 20.2.4.3 Standard direct binding |
421 | 20.3 Analysis phase 20.4 Elaboration phase 20.4.1 General |
422 | 20.4.2 Dynamic elaboration |
423 | 20.5 Initialization phase 20.6 Simulation phase 20.7 Save phase |
424 | 20.8 Restart phase 20.9 Reset phase |
425 | 20.10 Termination phase |
426 | 21. VHPI callbacks 21.1 General 21.2 Callback functions 21.2.1 General 21.2.2 Registering callbacks |
427 | 21.2.3 Enabling and disabling callbacks 21.2.4 Removing callbacks 21.2.5 Callback information 21.2.6 Execution of callbacks |
428 | 21.3 Callback reasons 21.3.1 General 21.3.2 Object callbacks 21.3.2.1 General |
429 | 21.3.2.2 vhpiCbValueChange 21.3.2.3 vhpiCbForce |
430 | 21.3.2.4 vhpiCbRelease 21.3.2.5 vhpiCbTransaction 21.3.3 Foreign model callbacks 21.3.3.1 General 21.3.3.2 vhpiCbTimeOut and vhpiCbRepTimeOut |
431 | 21.3.3.3 vhpiCbSensitivity |
432 | 21.3.4 Statement callbacks 21.3.4.1 General 21.3.4.2 vhpiCbStmt |
433 | 21.3.4.3 vhpiCbResume 21.3.4.4 vhpiCbSuspend |
434 | 21.3.4.5 vhpiCbStartOfSubpCall 21.3.4.6 vhpiCbEndOfSubpCall 21.3.5 Time callbacks 21.3.5.1 General 21.3.5.2 vhpiCbAfterDelay and vhpiCbRepAfterDelay |
435 | 21.3.6 Simulation phase callbacks 21.3.6.1 General 21.3.6.2 vhpiCbNextTimeStep and vhpiCbRepNextTimeStep 21.3.6.3 vhpiCbStartOfNextCycle and vhpiCbRepStartOfNextCycle 21.3.6.4 vhpiCbStartOfProcesses and vhpiCbRepStartOfProcesses 21.3.6.5 vhpiCbEndOfProcesses and vhpiCbRepEndOfProcesses 21.3.6.6 vhpiCbLastKnownDeltaCycle and vhpiCbRepLastKnownDeltaCycle 21.3.6.7 vhpiCbStartOfPostponed and vhpiCbRepStartOfPostponed |
436 | 21.3.6.8 vhpiCbEndOfTimeStep and vhpiCbRepEndOfTimeStep 21.3.7 Action callbacks 21.3.7.1 General 21.3.7.2 vhpiCbStartOfTool and vhpiCbEndOfTool 21.3.7.3 vhpiCbStartOfAnalysis and vhpiCbEndOfAnalysis 21.3.7.4 vhpiCbStartOfElaboration and vhpiCbEndOfElaboration |
437 | 21.3.7.5 vhpiCbStartOfInitialization and vhpiCbEndOfInitialization 21.3.7.6 vhpiCbStartOfSimulation and vhpiCbEndOfSimulation 21.3.7.7 vhpiCbQuiescense 21.3.7.8 vhpiCbEnterInteractive 21.3.7.9 vhpiCbExitInteractive |
438 | 21.3.7.10 vhpiCbSigInterrupt 21.3.8 Save, restart, and reset callbacks 21.3.8.1 General 21.3.8.2 vhpiCbStartOfSave and vhpiCbEndOfSave 21.3.8.3 vhpiCbStartOfRestart and vhpiCbEndOfRestart |
439 | 21.3.8.4 vhpiCbStartOfReset and vhpiCbEndOfReset |
440 | 22. VHPI value access and update 22.1 General 22.2 Value structures and types 22.2.1 General 22.2.2 vhpiEnumT and vhpiSmallEnumT 22.2.3 vhpiIntT and vhpiLongIntT 22.2.4 vhpiCharT 22.2.5 vhpiRealT 22.2.6 vhpiPhysT and vhpiSmallPhysT |
441 | 22.2.7 vhpiTimeT 22.2.8 vhpiValueT |
443 | 22.3 Reading object values |
444 | 22.4 Formatting values |
446 | 22.5 Updating object values 22.5.1 General |
447 | 22.5.2 updating an object of class variable 22.5.3 updating an object of class signal |
449 | 22.5.4 Updating an object of class driver |
450 | 22.5.5 Updating an object of class funcCall 22.6 Scheduling transactions on drivers |
453 | 23. VHPI function reference 23.1 General 23.2 vhpi_assert |
454 | 23.3 vhpi_check_error |
457 | 23.4 vhpi_compare_handles |
458 | 23.5 vhpi_control |
460 | 23.6 vhpi_create |
463 | 23.7 vhpi_disable_cb 23.8 vhpi_enable_cb |
465 | 23.9 vhpi_format_value |
466 | 23.10 vhpi_get |
467 | 23.11 vhpi_get_cb_info |
468 | 23.12 vhpi_get_data |
470 | 23.13 vhpi_get_foreignf_info |
471 | 23.14 vhpi_get_next_time |
473 | 23.15 vhpi_get_phys 23.16 vhpi_get_real |
474 | 23.17 vhpi_get_str |
475 | 23.18 vhpi_get_time |
476 | 23.19 vhpi_get_value |
477 | 23.20 vhpi_handle |
478 | 23.21 vhpi_handle_by_index |
482 | 23.22 vhpi_handle_by_name |
484 | 23.23 vhpi_is_printable |
485 | 23.24 vhpi_iterator |
486 | 23.25 vhpi_printf |
487 | 23.26 vhpi_protected_call |
491 | 23.27 vhpi_put_data |
493 | 23.28 vhpi_put_value |
494 | 23.29 vhpi_register_cb |
497 | 23.30 vhpi_register_foreignf |
500 | 23.31 vhpi_release_handle 23.32 vhpi_remove_cb |
501 | 23.33 vhpi_scan |
502 | 23.34 vhpi_schedule_transaction |
507 | 23.35 vhpi_vprintf |
508 | 24. Standard tool directives 24.1 Protect tool directives 24.1.1 General |
510 | 24.1.2 Protect directives 24.1.2.1 Protect begin directive 24.1.2.2 Protect end directive 24.1.2.3 Protect begin protected directive 24.1.2.4 Protect end protected directive 24.1.2.5 Protect author directive 24.1.2.6 Protect author info directive |
511 | 24.1.2.7 Protect encrypt agent directive 24.1.2.8 Protect encrypt agent info directive 24.1.2.9 Protect key keyowner directive 24.1.2.10 Protect key keyname directive 24.1.2.11 Protect key method directive 24.1.2.12 Protect key block directive |
512 | 24.1.2.13 Protect data keyowner directive 24.1.2.14 Protect data keyname directive 24.1.2.15 Protect data method directive 24.1.2.16 Protect data block directive 24.1.2.17 Protect digest keyowner directive 24.1.2.18 Protect digest keyname directive 24.1.2.19 Protect digest key method directive |
513 | 24.1.2.20 Protect digest method directive 24.1.2.21 Protect digest block directive 24.1.2.22 Protect encoding directive |
514 | 24.1.2.23 Protect viewport directive 24.1.2.24 Protect license directives |
515 | 24.1.2.25 Protect comment directive 24.1.2.26 Protect version directive 24.1.2.27 Protect key public key directive 24.1.3 Encoding, encryption, and digest methods 24.1.3.1 Encoding methods |
516 | 24.1.3.2 Encryption methods |
517 | 24.1.3.3 Digest methods |
518 | 24.1.4 Encryption envelopes 24.1.4.1 General |
519 | 24.1.4.2 Encrypt key specifications 24.1.4.3 Encrypt data specifications |
520 | 24.1.4.4 Encrypt digest specifications 24.1.5 Decryption envelopes 24.1.5.1 General |
521 | 24.1.5.2 Decrypt key blocks |
522 | 24.1.5.3 Decrypt data blocks 24.1.5.4 Decrypt digest blocks |
523 | 24.1.6 Protection requirements for decryption tools 24.1.7 Key management |
524 | 24.1.8 Rights management 24.1.9 License management 24.1.10 Visibility management 24.1.11 Common rights 24.2 Conditional analysis tool directives 24.2.1 General |
525 | 24.2.2 Standard conditional analysis identifiers |
526 | Annex A (informative) VHPI definitions file A.1 General A.2 VHPICharCodes |
527 | A.3 VHPI_GET_PRINTABLE_STRINGCODE |
528 | Annex B (normative) VHPI header file B.1 General B.2 Macros for sensitivity-set bitmaps B.2.1 General B.2.2 VHPI_SENS_ZERO B.2.3 VHPI_SENS_SET |
529 | B.2.4 VHPI_SENS_CLR B.2.5 VHPI_SENS_ISSET B.2.6 VHPI_SENS_FIRST |
530 | B.3 Implementation-specific extensions |
531 | Annex C (informative) Syntax summary |
558 | Annex D (informative) Potentially non-portable constructs |
559 | Annex E (informative) Changes from IEEE Std 1076-2008 |
560 | Annex F (informative) Features under consideration for removal |
561 | Annex G (informative) Guide to use of standard packages G.1 Using the MATH_REAL and MATH_COMPLEX packages G.1.1 General G.1.2 Package bodies for MATH_REAL and MATH_COMPLEX G.1.3 Predefined data types, operators, and precision for MATH_REAL G.1.4 Use and constraints of pseudo-random number generator in MATH_REAL G.1.5 Precision across different platforms G.1.6 Handling of overflow/underflow conditions |
562 | G.1.7 Testbench for the packages G.1.8 Overloading side effect G.1.9 Synthesizability of functions G.2 Using the STD_LOGIC_1164 package G.2.1 General G.2.2 Value system |
563 | G.2.3 Handling strengths G.2.4 Use of the uninitialized value G.2.5 Behavioral modeling for ‘U’ propagation G.2.6 ‘U’s related to conditional expressions G.2.7 Structural modeling with logical tables G.2.8 X-handling: assignment of Xās |
564 | G.2.9 Modeling with donāt careās G.2.9.1 Use of the donāt care state in synthesis models G.2.9.2 Semantics of ‘-‘ G.2.10 Resolution function G.2.11 Using STD_ULOGIC vs. STD_LOGIC |
565 | G.3 Notes on the synthesis package functions G.3.1 General G.3.2 General considerations G.3.2.1 Mixing SIGNED and UNSIGNED operands |
566 | G.3.2.2 Mixing vector and element operands G.3.3 Arithmetic operator functions G.3.3.1 Overflow of maximum negative value |
567 | G.3.3.2 Lack of carry and borrow |
568 | G.3.3.3 Return value for metalogical and high-impedance operands G.3.4 Relational operator functions G.3.4.1 Justification of vector operands G.3.4.2 Expansion of vector operands compared to integers G.3.4.3 Return value for metalogical and high-impedance operands |
569 | G.3.5 Shift functions G.3.5.1 Multiplication by a power of 2 with remainder G.3.5.2 Division by a power of 2 G.3.6 Type conversion functions G.3.6.1 Overflow in conversion to INTEGER G.3.6.2 Conversion between SIGNED and UNSIGNED |
570 | G.3.7 Logical operator functions G.3.7.1 Application to SIGNED and UNSIGNED G.3.7.2 Index range of return values G.3.8 The STD_MATCH function G.4 Using the fixed-point package G.4.1 General |
571 | G.4.2 Literals and type conversions |
572 | G.4.3 Sizing rules |
574 | G.4.4 Rounding and saturation G.4.5 Overloading |
576 | G.4.6 Package generics |
578 | G.4.7 Issues G.4.8 Catalog of operations G.4.8.1 Operators |
580 | G.4.8.2 Functions |
581 | G.4.8.3 Conversion functions |
583 | G.4.8.4 Sizing functions |
584 | G.4.8.5 Textio functions |
585 | G.5 Using the floating-point package G.5.1 Floating-point numbers |
587 | G.5.2 Use model |
590 | G.5.3 Package generics |
592 | G.5.4 Catalog of operations G.5.4.1 Operators |
593 | G.5.4.2 Functions |
594 | G.5.4.3 Conversion functions |
595 | G.5.4.4 IEEE 754 recommended functions and predicates |
596 | G.5.4.5 Functions returning constants G.5.4.6 Textio functions |
598 | Annex H (informative) Guide to use of protect directives H.1 General H.2 Simple protection envelopes H.2.1 Symmetric cipher and secret key |
599 | H.2.2 Default cipher and key |
600 | H.2.3 Specification of encoding method H.3 Digital envelopes H.3.1 Encryption for a single user |
601 | H.3.2 Encryption for multiple users |
603 | H.4 Digital signatures |
604 | H.5 Key exchange |
606 | Annex I (informative) Glossary |
633 | Annex J (informative) Bibliography |
634 | Index A |
636 | B |
638 | C |
640 | D |
643 | E |
645 | F |
648 | G |
649 | H-I |
651 | J |
652 | K-L |
653 | M |
654 | N |
655 | O |
656 | P |
660 | Q-R |
662 | S |
666 | T |
668 | U |
669 | V |
672 | W-Z |
673 | Back cover |