Shopping Cart

No products in the cart.

BS IEC 61691-1-1:2023

$215.11

Behavioural languages – VHDL Language Reference Manual

Published By Publication Date Number of Pages
BSI 2023 678
Guaranteed Safe Checkout
Categories: ,

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]

PDF Catalog

PDF Pages PDF Title
2 undefined
4 Contents
17 Introduction
18 1. Overview
1.1 Scope
1.2 Purpose
1.3 Structure and terminology of this standard
1.3.1 General
19 1.3.2 Syntactic description
1.3.3 Semantic description
20 1.3.4 Front matter, examples, notes, references, and annexes
1.3.5 Incorporation of Property Specification Language
1.4 Word usage
22 2. Normative references
23 3. Design entities and configurations
3.1 General
3.2 Entity declarations
3.2.1 General
24 3.2.2 Entity header
3.2.3 Entity declarative part
25 3.2.4 Entity statement part
26 3.3 Architecture bodies
3.3.1 General
27 3.3.2 Architecture declarative part
28 3.3.3 Architecture statement part
29 3.4 Configuration declarations
3.4.1 General
30 3.4.2 Block configuration
33 3.4.3 Component configuration
36 4. Subprograms and packages
4.1 General
4.2 Subprogram declarations
4.2.1 General
38 4.2.2 Formal parameters
4.2.2.1 Formal parameter lists
39 4.2.2.2 Constant and variable parameters
40 4.2.2.3 Signal parameters
4.2.2.4 File parameters
41 4.3 Subprogram bodies
43 4.4 Subprogram instantiation declarations
44 4.5 Subprogram overloading
4.5.1 General
45 4.5.2 Operator overloading
46 4.5.3 Signatures
47 4.6 Resolution functions
48 4.7 Package declarations
49 4.8 Package bodies
51 4.9 Package instantiation declarations
52 4.10 Conformance rules
53 5. Types
5.1 General
54 5.2 Scalar types
5.2.1 General
55 5.2.2 Enumeration types
5.2.2.1 General
56 5.2.2.2 Predefined enumeration types
5.2.3 Integer types
5.2.3.1 General
57 5.2.3.2 Predefined integer types
5.2.4 Physical types
5.2.4.1 General
59 5.2.4.2 Predefined physical types
60 5.2.5 Floating-point types
5.2.5.1 General
5.2.5.2 Predefined floating-point types
61 5.2.6 Predefined operations on scalar types
62 5.3 Composite types
5.3.1 General
63 5.3.2 Array types
5.3.2.1 General
65 5.3.2.2 Index constraints and discrete ranges
68 5.3.2.3 Predefined array types
5.3.2.4 Predefined operations on array types
69 5.3.3 Record types
5.3.3.1 General
71 5.3.3.2 Predefined record types
5.3.3.3 Predefined operations on record types
72 5.4 Access types
5.4.1 General
73 5.4.2 Incomplete type declarations
74 5.4.3 Allocation and deallocation of objects
5.5 File types
5.5.1 General
75 5.5.2 File operations
79 5.6 Protected types
5.6.1 Protected type definitions
5.6.2 Protected type declarations
81 5.6.3 Protected type bodies
83 5.6.4 Protected type instantiation
5.7 String representations
85 5.8 Unspecified types
5.8.1 General
86 5.8.2 Private incomplete type
5.8.3 Scalar incomplete type
5.8.4 Discrete incomplete type
5.8.5 Integer incomplete type
87 5.8.6 Physical incomplete type
5.8.7 Floating incomplete type
5.8.8 Array incomplete type
5.8.9 Access incomplete type
88 5.8.10 File incomplete type
89 6. Declarations
6.1 General
90 6.2 Type declarations
6.3 Subtype declarations
92 6.4 Objects
6.4.1 General
93 6.4.2 Object declarations
6.4.2.1 General
6.4.2.2 Constant declarations
94 6.4.2.3 Signal declarations
96 6.4.2.4 Variable declarations
98 6.4.2.5 File declarations
100 6.5 Interface declarations
6.5.1 General
6.5.2 Interface object declarations
105 6.5.3 Interface type declarations
6.5.3.1 General
6.5.3.2 Array interface type declaration
106 6.5.3.3 Access interface type declaration
107 6.5.3.4 File interface type declaration
108 6.5.4 Interface subprogram declarations
109 6.5.5 Interface package declarations
110 6.5.6 Interface lists
6.5.6.1 General
6.5.6.2 Generic clauses
111 6.5.6.3 Port clauses
113 6.5.7 Association lists
6.5.7.1 General
117 6.5.7.2 Generic map aspects
122 6.5.7.3 Port map aspects
123 6.6 Alias declarations
124 6.6.1 Object aliases
125 6.6.2 Nonobject aliases
126 6.7 Attribute declarations
127 6.8 Component declarations
6.9 Group template declarations
128 6.10 Group declarations
6.11 PSL clock declarations
130 7. Specifications
7.1 General
7.2 Attribute specification
133 7.3 Configuration specification
7.3.1 General
134 7.3.2 Binding indication
7.3.2.1 General
136 7.3.2.2 Entity aspect
137 7.3.3 Default binding indication
138 7.3.4 Verification unit binding indication
139 7.4 Disconnection specification
142 8. Names
8.1 General
143 8.2 Simple names
144 8.3 Selected names
146 8.4 Indexed names
147 8.5 Slice names
8.6 Attribute names
148 8.7 External names
152 9. Expressions
9.1 General
153 9.2 Operators
9.2.1 General
154 9.2.2 Logical operators
156 9.2.3 Relational operators
159 9.2.4 Shift operators
160 9.2.5 Adding operators
162 9.2.6 Sign operators
163 9.2.7 Multiplying operators
165 9.2.8 Miscellaneous operators
9.2.9 Condition operator
167 9.3 Operands
9.3.1 General
9.3.2 Literals
168 9.3.3 Aggregates
9.3.3.1 General
169 9.3.3.2 Record aggregates
9.3.3.3 Array aggregates
171 9.3.4 Function calls
172 9.3.5 Qualified expressions
9.3.6 Type conversions
174 9.3.7 Allocators
176 9.4 Static expressions
9.4.1 General
9.4.2 Locally static primaries
177 9.4.3 Globally static primaries
179 9.5 Universal expressions
180 10. Sequential statements
10.1 General
10.2 Wait statement
182 10.3 Assertion statement
183 10.4 Report statement
184 10.5 Signal assignment statement
10.5.1 General
10.5.2 Simple signal assignments
10.5.2.1 General
187 10.5.2.2 Executing a simple assignment statement
190 10.5.3 Conditional signal assignments
191 10.5.4 Selected signal assignments
193 10.6 Variable assignment statement
10.6.1 General
10.6.2 Simple variable assignments
10.6.2.1 General
195 10.6.3 Selected variable assignments
10.7 Procedure call statement
196 10.8 If statement
197 10.9 Case statement
199 10.10 Loop statement
200 10.11 Next statement
10.12 Exit statement
10.13 Return statement
201 10.14 Null statement
10.15 Sequential block statement
203 11. Concurrent statements
11.1 General
11.2 Block statement
204 11.3 Process statement
206 11.4 Concurrent procedure call statements
207 11.5 Concurrent assertion statements
208 11.6 Concurrent signal assignment statements
210 11.7 Component instantiation statements
11.7.1 General
211 11.7.2 Instantiation of a component
213 11.7.3 Instantiation of a design entity
216 11.8 Generate statements
220 12. Scope and visibility
12.1 Declarative region
12.2 Scope of declarations
222 12.3 Visibility
226 12.4 Use clauses
227 12.5 The context of overload resolution
229 13. Design units and their analysis
13.1 Design units
13.2 Design libraries
231 13.3 Context declarations
13.4 Context clauses
232 13.5 Order of analysis
233 14. Elaboration and execution
14.1 General
14.2 Elaboration of a design hierarchy
236 14.3 Elaboration of a block, package, subprogram or protected type header
14.3.1 General
237 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
238 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
239 14.4 Elaboration of a declarative part
14.4.1 General
240 14.4.2 Elaboration of a declaration
14.4.2.1 General
14.4.2.2 Subprogram declarations, bodies, and instantiations
241 14.4.2.3 Type declarations and instantiations
242 14.4.2.4 Subtype declarations
14.4.2.5 Object declarations
243 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
244 14.4.3 Elaboration of a specification
14.4.3.1 General
14.4.3.2 Attribute specifications
14.4.3.3 Configuration specifications
245 14.4.3.4 Disconnection specifications
14.5 Elaboration of a statement part
14.5.1 General
14.5.2 Block statements
246 14.5.3 Generate statements
247 14.5.4 Component instantiation statements
248 14.5.5 Other concurrent statements
14.6 Dynamic elaboration
249 14.7 Execution of a model
14.7.1 General
250 14.7.2 Drivers
14.7.3 Propagation of signal values
14.7.3.1 General
251 14.7.3.2 Driving values
252 14.7.3.3 Effective values
253 14.7.3.4 Signal update
254 14.7.4 Updating implicit signals
256 14.7.5 Model execution
14.7.5.1 General
14.7.5.2 Initialization
257 14.7.5.3 Simulation cycle
260 15. Lexical elements
15.1 General
15.2 Character set
262 15.3 Lexical elements, separators, and delimiters
264 15.4 Identifiers
15.4.1 General
15.4.2 Basic identifiers
15.4.3 Extended identifiers
265 15.5 Abstract literals
15.5.1 General
15.5.2 Decimal literals
15.5.3 Based literals
266 15.6 Character literals
15.7 String literals
267 15.8 Bit string literals
270 15.9 Comments
15.10 Reserved words
272 15.11 Tool directives
273 16. Predefined language environment
16.1 General
16.2 Predefined attributes
16.2.1 General
274 16.2.2 Predefined attributes of types and objects
279 16.2.3 Predefined attributes of arrays
281 16.2.4 Predefined attributes of signals
283 16.2.5 Predefined attributes of named entities
290 16.2.6 Predefined attributes of ranges
16.2.7 Predefined attributes of PSL Objects
291 16.2.8 Predefined attributes of named mode views
16.3 Package STANDARD
309 16.4 Package TEXTIO
315 16.5 Standard environment package
16.5.1 General
16.5.2 Package declaration
322 16.5.3 Simulator API
323 16.5.4 Date and time API
324 16.5.5 Directory API
325 16.5.6 Environment API
326 16.5.7 Current file and line API
327 16.5.8 PSL API
16.5.9 Report and assert statement API
329 16.6 Standard mathematical packages
330 16.7 Standard multivalue logic package
16.8 Standard synthesis packages
331 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
332 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
333 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’)
334 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
335 16.8.5.2 Allowable modifications
336 16.8.5.3 Compatibility with previous editions of IEEE Std 1076
16.9 Standard synthesis context declarations
337 16.10 Fixed-point package
16.11 Floating-point package
338 16.12 Reflection package
16.12.1 General
339 16.12.2 Package declaration
344 16.12.3 Package description
16.12.3.1 General
345 16.12.3.2 Common subtype and value mirrors
347 16.12.3.3 Enumeration subtype and value mirrors
348 16.12.3.4 Integer subtype and value mirrors
349 16.12.3.5 Floating subtype and value mirrors
350 16.12.3.6 Physical subtype and value mirrors
351 16.12.3.7 Record subtype and value mirrors
352 16.12.3.8 Array subtype and value mirrors
354 16.12.3.9 Access subtype and value mirrors
355 16.12.3.10 File subtype and value mirrors
16.12.3.11 Protected type and value mirrors
356 16.12.4 Examples
16.12.4.1 General
16.12.4.2 Length of discrete types
357 16.12.4.3 Generic to_string
359 17. VHDL Procedural Interface overview
17.1 General
17.2 Organization of the interface
17.2.1 General
360 17.2.2 VHPI naming conventions
17.3 Capability sets
362 17.4 Handles
17.4.1 General
17.4.2 Handle creation
17.4.3 Handle release
363 17.4.4 Handle comparison
17.4.5 Validity of handles
364 18. VHPI access functions
18.1 General
18.2 Information access functions
18.2.1 General
18.2.2 One-to-one association traversal
366 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
367 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
368 19. VHPI information model
19.1 General
19.2 Formal notation
19.2.1 General
19.2.2 Machine-readable information model
369 19.3 Class inheritance hierarchy
370 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
371 19.4.2.3 Implicit labels of concurrent statements
19.4.3 The Name and CaseName properties
376 19.4.4 The SignatureName property
19.4.5 The UnitName property
19.4.6 The DefName and DefCaseName properties
380 19.4.7 The FullName and FullCaseName properties
383 19.4.8 The PathName and InstanceName properties
19.5 The stdUninstantiated package
386 19.6 The stdHierarchy package
392 19.7 The stdTypes package
395 19.8 The stdExpr package
398 19.9 The stdSpec package
400 19.10 The stdSubprograms package
402 19.11 The stdStmts package
408 19.12 The stdConnectivity package
19.12.1 Class diagrams
411 19.12.2 Contributors, loads, and simulated nets
19.12.2.1 General
412 19.12.2.2 Local contributors
19.12.2.3 Local loads
413 19.12.2.4 Simulated nets
19.13 The stdCallbacks package
19.14 The stdEngine package
414 19.15 The stdForeign package
19.16 The stdMeta package
416 19.17 The stdTool package
417 19.18 Application contexts
418 20. VHPI tool execution
20.1 General
20.2 Registration phase
20.2.1 General
419 20.2.2 Registration using a tabular registry
421 20.2.3 Registration using registration functions
422 20.2.4 Foreign attribute for foreign models
20.2.4.1 General
20.2.4.2 Standard indirect binding
423 20.2.4.3 Standard direct binding
424 20.3 Analysis phase
20.4 Elaboration phase
20.4.1 General
425 20.4.2 Dynamic elaboration
426 20.5 Initialization phase
20.6 Simulation phase
20.7 Save phase
427 20.8 Restart phase
20.9 Reset phase
428 20.10 Termination phase
429 21. VHPI callbacks
21.1 General
21.2 Callback functions
21.2.1 General
21.2.2 Registering callbacks
430 21.2.3 Enabling and disabling callbacks
21.2.4 Removing callbacks
21.2.5 Callback information
21.2.6 Execution of callbacks
431 21.3 Callback reasons
21.3.1 General
21.3.2 Object callbacks
21.3.2.1 General
432 21.3.2.2 vhpiCbValueChange
21.3.2.3 vhpiCbForce
433 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
434 21.3.3.3 vhpiCbSensitivity
435 21.3.4 Statement callbacks
21.3.4.1 General
21.3.4.2 vhpiCbStmt
436 21.3.4.3 vhpiCbResume
21.3.4.4 vhpiCbSuspend
437 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
438 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
439 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
440 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
441 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
442 21.3.8.4 vhpiCbStartOfReset and vhpiCbEndOfReset
443 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
444 22.2.7 vhpiTimeT
22.2.8 vhpiValueT
446 22.3 Reading object values
447 22.4 Formatting values
449 22.5 Updating object values
22.5.1 General
450 22.5.2 updating an object of class variable
22.5.3 updating an object of class signal
452 22.5.4 Updating an object of class driver
453 22.5.5 Updating an object of class funcCall
22.6 Scheduling transactions on drivers
456 23. VHPI function reference
23.1 General
23.2 vhpi_assert
457 23.3 vhpi_check_error
460 23.4 vhpi_compare_handles
461 23.5 vhpi_control
463 23.6 vhpi_create
466 23.7 vhpi_disable_cb
23.8 vhpi_enable_cb
468 23.9 vhpi_format_value
469 23.10 vhpi_get
470 23.11 vhpi_get_cb_info
471 23.12 vhpi_get_data
473 23.13 vhpi_get_foreignf_info
474 23.14 vhpi_get_next_time
476 23.15 vhpi_get_phys
23.16 vhpi_get_real
477 23.17 vhpi_get_str
478 23.18 vhpi_get_time
479 23.19 vhpi_get_value
480 23.20 vhpi_handle
481 23.21 vhpi_handle_by_index
485 23.22 vhpi_handle_by_name
487 23.23 vhpi_is_printable
488 23.24 vhpi_iterator
489 23.25 vhpi_printf
490 23.26 vhpi_protected_call
494 23.27 vhpi_put_data
496 23.28 vhpi_put_value
497 23.29 vhpi_register_cb
500 23.30 vhpi_register_foreignf
503 23.31 vhpi_release_handle
23.32 vhpi_remove_cb
504 23.33 vhpi_scan
505 23.34 vhpi_schedule_transaction
510 23.35 vhpi_vprintf
511 24. Standard tool directives
24.1 Protect tool directives
24.1.1 General
513 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
514 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
515 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
516 24.1.2.20 Protect digest method directive
24.1.2.21 Protect digest block directive
24.1.2.22 Protect encoding directive
517 24.1.2.23 Protect viewport directive
24.1.2.24 Protect license directives
518 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
519 24.1.3.2 Encryption methods
520 24.1.3.3 Digest methods
521 24.1.4 Encryption envelopes
24.1.4.1 General
522 24.1.4.2 Encrypt key specifications
24.1.4.3 Encrypt data specifications
523 24.1.4.4 Encrypt digest specifications
24.1.5 Decryption envelopes
24.1.5.1 General
524 24.1.5.2 Decrypt key blocks
525 24.1.5.3 Decrypt data blocks
24.1.5.4 Decrypt digest blocks
526 24.1.6 Protection requirements for decryption tools
24.1.7 Key management
527 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
528 24.2.2 Standard conditional analysis identifiers
529 Annex A (informative) VHPI definitions file
A.1 General
A.2 VHPICharCodes
530 A.3 VHPI_GET_PRINTABLE_STRINGCODE
531 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
532 B.2.4 VHPI_SENS_CLR
B.2.5 VHPI_SENS_ISSET
B.2.6 VHPI_SENS_FIRST
533 B.3 Implementation-specific extensions
534 Annex C (informative) Syntax summary
561 Annex D (informative) Potentially non-portable constructs
562 Annex E (informative) Changes from IEEE Std 1076-2008
563 Annex F (informative) Features under consideration for removal
564 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
565 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
566 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
567 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
568 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
569 G.3.2.2 Mixing vector and element operands
G.3.3 Arithmetic operator functions
G.3.3.1 Overflow of maximum negative value
570 G.3.3.2 Lack of carry and borrow
571 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
572 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
573 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
574 G.4.2 Literals and type conversions
575 G.4.3 Sizing rules
577 G.4.4 Rounding and saturation
G.4.5 Overloading
579 G.4.6 Package generics
581 G.4.7 Issues
G.4.8 Catalog of operations
G.4.8.1 Operators
583 G.4.8.2 Functions
584 G.4.8.3 Conversion functions
586 G.4.8.4 Sizing functions
587 G.4.8.5 Textio functions
588 G.5 Using the floating-point package
G.5.1 Floating-point numbers
590 G.5.2 Use model
593 G.5.3 Package generics
595 G.5.4 Catalog of operations
G.5.4.1 Operators
596 G.5.4.2 Functions
597 G.5.4.3 Conversion functions
598 G.5.4.4 IEEE 754 recommended functions and predicates
599 G.5.4.5 Functions returning constants
G.5.4.6 Textio functions
601 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
602 H.2.2 Default cipher and key
603 H.2.3 Specification of encoding method
H.3 Digital envelopes
H.3.1 Encryption for a single user
604 H.3.2 Encryption for multiple users
606 H.4 Digital signatures
607 H.5 Key exchange
609 Annex I (informative) Glossary
636 Annex J (informative) Bibliography
638 Index
BS IEC 61691-1-1:2023
$215.11