Get desktop application:
View/edit binary Protocol Buffers messages
Non-constant array of integers contains only one element in @element_ids, which is used to get size from the type (required for sc_unsigned, sc_int_base) Array of pointers always contains @element_ids
Used in:
In array order
Presence of signde/unsigned value determines it is signed or usigned
Used in:
sc_*int_base sc_signed/sc_unsigned has bitwidth defined at elab-time
Object in memory, member of design hierarchy
Used in:
Unique ID of object, starts from 0
Unique ID of object type name, starts from 0
IDs of parent objects (not type, where this object is directly instantiated). Array element has array object as parent here. Class object fields have this object as parent. Usually, there is only a single parent object. The only exception is virtual base class.
IDs of pointers pointing to this object
Constant is applied to record fileds, array elements
simulation-time constant
If rel_type == ARRAY_ELEMENT, stores element index
If rel_type == DATA_MEMBER or STATIC, stores member variable name
sc_object name (m_name)
object kind
if kind == PRIMITIVE, stores type and value of primitive
if kind == RECORD stores ids of DATA_MEMBERs ( and DYNAMIC objects)
if kind == ARRAY, stores arrays size and elements ids
Used in:
Object is design "primitive", like integer value, port, etc..
Object is struct or class, a container of data members
Object is array
Relationship to parent
Used in:
Element of parent array
Data member of parent class
Base class of parent class
Dynamically allocated in parent module in @parent_ids
differs from DATA_MEMBER
Static and global constant
Outside of SystemC design hierarchy, when there are
Used in:
not a systemc-special aggregate
can contain processes and DYNAMICally allocated members
struct-like, but has single value field
same as SC_MODULE, inlined for synthesisl
array of sc_objects
Raw pointer or port
Used in:
Normally it is id of pointee If pointee not exists, for non-constant integer array, it stores <id of array, element offset>
Used in:
Used in:
init_val, integer variable
ptr_val
ptr_val pointer to signal or port, sc_in/sc_out
ptr_val
not supported
not supported
proc_val
std::string and const char*
Used in:
Type of class where the process function declared
Used in:
class, struct, sc_module, sc_signal
Used in:
Member IDs in predefined order: 1. Base classes 2. Data members 3. Dynamically allocated objects (if Record is Module) static fields are not included (can be optimized away by compiler)
Used in:
Elaborated SystemC Design
list of C++ type names used in design
list of objects in design, objects[0] == Top level module
ids of SC_MODULEs and SC_MODULAR_INTERFACEs
Used in:
Used in: