Shopping Cart

No products in the cart.

IEEE 1666-2005

$226.42

IEEE Standard SystemC(R) Language Reference Manual

Published By Publication Date Number of Pages
IEEE 2005 441
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. SystemC(R) is defined in this standard. SystemC(R) is an ANSI standard C++ class library for system and hardware design for use by designers and architects who need to address complex systems that are a hybrid between hardware and software. This standard provides a precise and complete definition of the SystemC(R) class library so that a SystemC(R) implementation can be developed with reference to this standard alone. The primary audiences for this standard are the implementers of the SystemC(R) library, the implementers of tools supporting the class library, and users of the class library. The IEEE 1666™ program grants public access to view and download the current individual IEEE standard at no charge in PDF format thanks to the Open System C Initiative. Visit https://ieeexplore.ieee.org/browse/standards/get-program/page for details.

PDF Catalog

PDF Pages PDF Title
1 IEEE Std 1666-2005, IEEE Standard SystemC® Language Reference Manual
3 Title page
6 Introduction
Notice to users
Errata
Interpretations
Patents
7 Participants
9 CONTENTS
19 1. Overview
1.1 Scope
1.2 Purpose
1.3 Subsets
1.4 Relationship with C++
20 1.5 Guidance for readers
21 2. References
22 3. Terminology and conventions used in this standard
3.1 Terminology
3.1.1 Shall, should, may, can
3.1.2 Implementation, application
3.1.3 Call, called from, derived from
3.1.4 Specific technical terms
24 3.2 Syntactical conventions
3.2.1 Implementation-defined
3.2.2 Disabled
3.2.3 Ellipsis (…)
3.2.4 Class names
25 3.2.5 Embolded text
3.3 Semantic conventions
3.3.1 Class definitions and the inheritance hierarchy
3.3.2 Function definitions and side-effects
3.3.3 Functions whose return type is a reference or a pointer
27 3.3.4 Namespaces and internal naming
3.3.5 Non-compliant applications and errors
28 3.4 Notes and examples
29 4. Elaboration and simulation semantics
4.1 Elaboration
4.1.1 Instantiation
31 4.1.2 Process macros
4.1.3 Port binding and export binding
32 4.1.4 Setting the time resolution
4.2 Simulation
33 4.2.1 The scheduling algorithm
35 4.2.2 Cycles in the scheduling algorithm
36 4.3 Running elaboration and simulation
4.3.1 Function declarations
4.3.2 Function sc_elab_and_sim
37 4.3.3 Functions sc_argc and sc_argv
4.3.4 Running under application control using functions sc_main and sc_start
38 4.3.5 Running under control of the kernel
4.4 Elaboration and simulation callbacks
39 4.4.1 before_end_of_elaboration
40 4.4.2 end_of_elaboration
41 4.4.3 start_of_simulation
4.4.4 end_of_simulation
42 4.5 Other functions related to the scheduler
4.5.1 Function declarations
4.5.2 Function sc_stop, sc_set_stop_mode, and sc_get_stop_mode
43 4.5.3 Function sc_time_stamp
44 4.5.4 Function sc_delta_count
4.5.5 Function sc_is_running
45 5. Core language class definitions
5.1 Class header files
5.1.1 #include “systemc”
5.1.2 #include “systemc.h”
47 5.2 sc_module
5.2.1 Description
5.2.2 Class definition
49 5.2.3 Constraints on usage
5.2.4 kind
5.2.5 SC_MODULE
50 5.2.6 Constructors
5.2.7 SC_CTOR
51 5.2.8 SC_HAS_PROCESS
5.2.9 SC_METHOD, SC_THREAD, SC_CTHREAD
52 5.2.10 Method process
53 5.2.11 Thread and clocked thread processes
54 5.2.12 Clocked thread processes and reset_signal_is
55 5.2.13 sensitive
56 5.2.14 dont_initialize
57 5.2.15 set_stack_size
5.2.16 next_trigger
59 5.2.17 wait
61 5.2.18 Positional port binding
62 5.2.19 before_end_of_elaboration, end_of_elaboration, start_of_simulation, end_of_simulation
63 5.2.20 get_child_objects
5.2.21 sc_gen_unique_name
64 5.2.22 sc_behavior and sc_channel
65 5.3 sc_module_name
5.3.1 Description
5.3.2 Class definition
5.3.3 Constraints on usage
66 5.3.4 Module hierarchy
5.3.5 Member functions
68 5.4 sc_sensitive†
5.4.1 Description
5.4.2 Class definition
5.4.3 Constraints on usage
5.4.4 operator<<
70 5.5 sc_spawn_options and sc_spawn
5.5.1 Description
5.5.2 Class definition
71 5.5.3 Constraints on usage
5.5.4 Constructors
5.5.5 Member functions
72 5.5.6 sc_spawn
74 5.5.7 SC_FORK and SC_JOIN
76 5.6 sc_process_handle
5.6.1 Description
5.6.2 Class definition
77 5.6.3 Constraints on usage
5.6.4 Constructors
5.6.5 Member functions
79 5.6.6 sc_get_current_process_handle
80 5.7 sc_event_finder and sc_event_finder_t
5.7.1 Description
5.7.2 Class definition
5.7.3 Constraints on usage
83 5.8 sc_event_and_list† and sc_event_or_list†
5.8.1 Description
5.8.2 Class definition
5.8.3 Constraints on usage
5.8.4 Event lists
84 5.9 sc_event
5.9.1 Description
5.9.2 Class definition
5.9.3 Constraints on usage
5.9.4 notify and cancel
85 5.9.5 Event lists
5.9.6 Multiple event notifications
86 5.10 sc_time
5.10.1 Description
5.10.2 Class definition
87 5.10.3 Time resolution
5.10.4 Functions and operators
5.10.5 SC_ZERO_TIME
89 5.11 sc_port
5.11.1 Description
5.11.2 Class definition
90 5.11.3 Template parameters
91 5.11.4 Constraints on usage
92 5.11.5 Constructors
5.11.6 kind
5.11.7 Named port binding
93 5.11.8 Member functions for bound ports and port-to-port binding
97 5.11.9 before_end_of_elaboration, end_of_elaboration, start_of_simulation, end_of_simulation
98 5.12 sc_export
5.12.1 Description
5.12.2 Class definition
99 5.12.3 Template parameters
5.12.4 Constraints on usage
5.12.5 Constructors
5.12.6 kind
100 5.12.7 Export binding
101 5.12.8 Member functions for bound exports and export-to-export binding
102 5.12.9 before_end_of_elaboration, end_of_elaboration, start_of_simulation, end_of_simulation
103 5.13 sc_interface
5.13.1 Description
5.13.2 Class definition
5.13.3 Constraints on usage
104 5.13.4 register_port
5.13.5 default_event
106 5.14 sc_prim_channel
5.14.1 Description
5.14.2 Class definition
107 5.14.3 Constraints on usage
5.14.4 Constructors
5.14.5 kind
5.14.6 request_update and update
108 5.14.7 next_trigger and wait
5.14.8 before_end_of_elaboration, end_of_elaboration, start_of_simulation, end_of_simulation
110 5.15 sc_object
5.15.1 Description
5.15.2 Class definition
111 5.15.3 Constraints on usage
5.15.4 Constructors and hierarchical names
112 5.15.5 name, basename, and kind
113 5.15.6 print and dump
5.15.7 Functions for object hierarchy traversal
115 5.15.8 Member functions for attributes
117 5.16 sc_attr_base
5.16.1 Description
5.16.2 Class definition
5.16.3 Member functions
118 5.17 sc_attribute
5.17.1 Description
5.17.2 Class definition
5.17.3 Template parameters
5.17.4 Member functions and data members
119 5.18 sc_attr_cltn
5.18.1 Description
5.18.2 Class definition
5.18.3 Constraints on usage
5.18.4 Iterators
121 6. Predefined channel class definitions
6.1 sc_signal_in_if
6.1.1 Description
6.1.2 Class definition
6.1.3 Member functions
122 6.2 sc_signal_in_if and sc_signal_in_if
6.2.1 Description
6.2.2 Class definition
123 6.2.3 Member functions
124 6.3 sc_signal_inout_if
6.3.1 Description
6.3.2 Class definition
6.3.3 write
125 6.4 sc_signal
6.4.1 Description
6.4.2 Class definition
126 6.4.3 Template parameter T
6.4.4 Reading and writing signals
127 6.4.5 Constructors
6.4.6 register_port
6.4.7 Member functions for reading
128 6.4.8 Member functions for writing
6.4.9 Member functions for events
6.4.10 Diagnostic member functions
129 6.4.11 operator<<
131 6.5 sc_signal and sc_signal
6.5.1 Description
6.5.2 Class definition
132 6.5.3 Member functions
134 6.6 sc_buffer
6.6.1 Description
6.6.2 Class definition
6.6.3 Constructors
135 6.6.4 Member functions
137 6.7 sc_clock
6.7.1 Description
6.7.2 Class definition
138 6.7.3 Characteristic properties
6.7.4 Constructors
6.7.5 write
6.7.6 Diagnostic member functions
139 6.7.7 before_end_of_elaboration
6.7.8 sc_in_clk
140 6.8 sc_in
6.8.1 Description
6.8.2 Class definition
141 6.8.3 Member functions
6.8.4 Function sc_trace
6.8.5 end_of_elaboration
142 6.9 sc_in and sc_in
6.9.1 Description
6.9.2 Class definition
144 6.9.3 Member functions
145 6.10 sc_inout
6.10.1 Description
6.10.2 Class definition
146 6.10.3 Member functions
6.10.4 initialize
6.10.5 Function sc_trace
147 6.10.6 end_of_elaboration
6.10.7 Binding
148 6.11 sc_inout and sc_inout
6.11.1 Description
6.11.2 Class definition
150 6.11.3 Member functions
151 6.12 sc_out
6.12.1 Description
6.12.2 Class definition
6.12.3 Member functions
152 6.13 sc_signal_resolved
6.13.1 Description
6.13.2 Class definition
6.13.3 Constructors
153 6.13.4 Resolution semantics
154 6.13.5 Member functions
155 6.14 sc_in_resolved
6.14.1 Description
6.14.2 Class definition
6.14.3 Member functions
156 6.15 sc_inout_resolved
6.15.1 Description
6.15.2 Class definition
6.15.3 Member functions
157 6.16 sc_out_resolved
6.16.1 Description
6.16.2 Class definition
6.16.3 Member functions
158 6.17 sc_signal_rv
6.17.1 Description
6.17.2 Class definition
6.17.3 Semantics and member functions
160 6.18 sc_in_rv
6.18.1 Description
6.18.2 Class definition
6.18.3 Member functions
161 6.19 sc_inout_rv
6.19.1 Description
6.19.2 Class definition
6.19.3 Member functions
163 6.20 sc_out_rv
6.20.1 Description
6.20.2 Class definition
6.20.3 Member functions
164 6.21 sc_fifo_in_if
6.21.1 Description
6.21.2 Class definition
6.21.3 Member functions
166 6.22 sc_fifo_out_if
6.22.1 Description
6.22.2 Class definition
6.22.3 Member functions
168 6.23 sc_fifo
6.23.1 Description
6.23.2 Class definition
169 6.23.3 Template parameter T
6.23.4 Constructors
170 6.23.5 register_port
6.23.6 Member functions for reading
6.23.7 Member functions for writing
171 6.23.8 The update phase
6.23.9 Member functions for events
6.23.10 Member functions for available values and free slots
172 6.23.11 Diagnostic member functions
6.23.12 operator<<
174 6.24 sc_fifo_in
6.24.1 Description
6.24.2 Class definition
6.24.3 Member functions
175 6.25 sc_fifo_out
6.25.1 Description
6.25.2 Class definition
6.25.3 Member functions
178 6.26 sc_mutex_if
6.26.1 Description
6.26.2 Class definition
6.26.3 Member functions
179 6.27 sc_mutex
6.27.1 Description
6.27.2 Class definition
6.27.3 Constructors
180 6.27.4 Member functions
181 6.28 sc_semaphore_if
6.28.1 Description
6.28.2 Class definition
6.28.3 Member functions
182 6.29 sc_semaphore
6.29.1 Description
6.29.2 Class definition
6.29.3 Constructors
183 6.29.4 Member functions
184 6.30 sc_event_queue
6.30.1 Description
6.30.2 Class definition
6.30.3 Constraints on usage
6.30.4 Constructors
185 6.30.5 kind
6.30.6 Member functions
187 7. Data types
7.1 Introduction
190 7.2 Common characteristics
7.2.1 Initialization and assignment operators
191 7.2.2 Precision of arithmetic expressions
192 7.2.3 Base class default word length
193 7.2.4 Word length
7.2.5 Bit-select
7.2.6 Part-select
194 7.2.7 Concatenation
196 7.2.8 Reduction operators
7.2.9 Integer conversion
7.2.10 String input and output
197 7.2.11 Conversion of application-defined types in integer expressions
198 7.3 String literals
200 7.4 sc_value_base†
7.4.1 Description
202 7.5 Limited-precision integer types
7.5.1 Type definitions
203 7.5.2 sc_int_base
208 7.5.3 sc_uint_base
212 7.5.4 sc_int
215 7.5.5 sc_uint
217 7.5.6 Bit-selects
221 7.5.7 Part-selects
227 7.6 Finite-precision integer types
7.6.1 Type definitions
7.6.2 Constraints on usage
7.6.3 sc_signed
234 7.6.4 sc_unsigned
241 7.6.5 sc_bigint
243 7.6.6 sc_biguint
245 7.6.7 Bit-selects
249 7.6.8 Part-selects
254 7.7 Integer concatenations
7.7.1 Description
7.7.2 Class definition
255 7.7.3 Constraints on usage
256 7.7.4 Assignment operators
7.7.5 Implicit type conversion
7.7.6 Explicit type conversion
7.7.7 Other member functions
257 7.8 Generic base proxy class
7.8.1 Description
7.8.2 Class definition
7.8.3 Constraints on usage
258 7.9 Logic and vector types
7.9.1 Type definitions
7.9.2 sc_logic
262 7.9.3 sc_bv_base
269 7.9.4 sc_lv_base
275 7.9.5 sc_bv
277 7.9.6 sc_lv
279 7.9.7 Bit-selects
282 7.9.8 Part-selects
288 7.9.9 Concatenations
296 7.10 Fixed-point types
7.10.1 Fixed-point representation
297 7.10.2 Fixed-point type conversion
7.10.3 Fixed-point data types
299 7.10.4 Fixed-point expressions and operations
302 7.10.5 Bit and part selection
7.10.6 Variable-precision fixed-point value limits
7.10.7 Fixed-point word length and mode
305 7.10.8 Conversions to character string
307 7.10.9 Finite word-length effects
331 7.10.10 sc_fxnum
335 7.10.11 sc_fxnum_fast
340 7.10.12 sc_fxval
344 7.10.13 sc_fxval_fast
349 7.10.14 sc_fix
352 7.10.15 sc_ufix
355 7.10.16 sc_fix_fast
358 7.10.17 sc_ufix_fast
361 7.10.18 sc_fixed
363 7.10.19 sc_ufixed
365 7.10.20 sc_fixed_fast
368 7.10.21 sc_ufixed_fast
370 7.10.22 Bit-selects
372 7.10.23 Part-selects
379 7.11 Contexts
7.11.1 sc_length_param
380 7.11.2 sc_length_context
381 7.11.3 sc_fxtype_params
384 7.11.4 sc_fxtype_context
385 7.11.5 sc_fxcast_switch
386 7.11.6 sc_fxcast_context
388 7.12 Control of string representation
7.12.1 Description
7.12.2 Class definition
7.12.3 Functions
389 8. Utility class definitions
8.1 Trace files
8.1.1 Class definition and function declarations
8.1.2 sc_trace_file
390 8.1.3 sc_create_vcd_trace_file
8.1.4 sc_close_vcd_trace_file
8.1.5 sc_write_comment
8.1.6 sc_trace
393 8.2 sc_report
8.2.1 Description
8.2.2 Class definition
8.2.3 Constraints on usage
394 8.2.4 sc_severity
8.2.5 Copy constructor and assignment
8.2.6 Member functions
396 8.3 sc_report_handler
8.3.1 Description
8.3.2 Class definition
398 8.3.3 Constraints on usage
8.3.4 sc_actions
8.3.5 report
399 8.3.6 set_actions
8.3.7 stop_after
400 8.3.8 get_count
401 8.3.9 suppress and force
8.3.10 set_handler
402 8.3.11 get_new_action_id
8.3.12 sc_interrupt_here and sc_stop_here
8.3.13 get_cached_report and clear_cached_report
403 8.3.14 set_log_file_name and get_log_file_name
404 8.4 sc_exception
8.4.1 Description
8.4.2 Definition
405 8.5 Utility functions
8.5.1 Function declarations
8.5.2 sc_abs
8.5.3 sc_max
8.5.4 sc_min
8.5.5 sc_copyright
406 8.5.6 sc_version
8.5.7 sc_release
407 Annex A (informative) Introduction to System C
411 Annex B (informative) Glossary
421 Annex C (informative) Deprecated features
423 Annex D (informative) Changes between the different SystemC versions
425 INDEX
A-C
426 C
427 C-D
428 D-E
429 E-F-G-H-I
430 I-K-L
431 L-M-N
432 N-O
433 O-P
434 P-Q-R
435 R-S
439 S-T
441 T-U-V-W-X-Z
IEEE 1666-2005
$226.42