SystemC terminology

From: Saha, Arnab <arnab_saha_at_.....>
Date: Tue Mar 20 2007 - 23:52:38 PDT
Elaboration
    Elaboration in SystemC is the phase before the end_of_elaboration()
    callback is called. This includes calls to the constructors and the
    before_end_of_elaboration() callback.

Simulation
    Simulation in SystemC is the phase after the end_of_elaboration()
    callback is called and before the end_of_simulation() callback is
called.

Time resolution
    Time shall be represented internally as an integer multiple of the
time
    resolution. The default time resolution is 1 picosecond.

Module
    Modules are the principle structural building blocks of SystemC.
    Any class derived from the sc_module base class is considered a
module.

Interface
    An interface is a class derived from the class sc_interface.
    An interface proper contains a set of pure virtual functions that
shall
    be defined in one or more channels derived from that interface
proper.
    Such a channel is said to implement the interface.

Channel
    A channel is a non-abstract class derived from one or more
interfaces.
    A channel may be a primitive channel or a hierarchical channel.

    Primitive channel
        A primitive channel is a non-abstract class derived from one or
more
        interfaces and also derived from the class sc_prim_channel.

        Signal
            A signal is a special type of primitive channel. A signal is
            an object of the class sc_signal<T>, when T is a type name.

    Hierarchical channel
        A hierarchical channel is a non-abstract class derived from one
or more
        interfaces and also derived from the class sc_module.

Port
    A port is either a class derived from the class sc_port or an object
    of class sc_port. Ports provide the means by which a module can be
written
    such that it is independent of the context in which it is
instantiated.
    A port forwards interface method calls to the channel to which the
port
    is bound. A port defines a set of services (as identified by the
type
    of the port) that are required by the module containing the port.

Export
    An export is an object of class sc_export. Class sc_export allows a
module
    to provide an interface to its parent module. An export forwards
interface
    method calls to the channel to which the export is bound. An export
defines
    a set of services (as identified by the type of the export) that are
    provided by the module containing the export.

Variables
    Variables in SystemC are regular C++ variables which can be of the
following
    different kinds.

    Member
        A member variable is a data member of a class with public,
private or
        protected access.

   Automatic
        An automatic variable is declared locally inside a function.
        Such a variable does not exist until the function is called.
        At that time the memory for the automatic variable is allocated
        dynamically from a memory stack and released when the function
        is finished.

   Static
        Static variables are variables which are local to a function but
        which (unlike auto variables) retain their values between
invocations
        of the function.

   Global
        Variables can be declared as global variables, available to
everything,
        these are also known as external variables. External variables
are
        defined outside of any functions and retain their values during
        the course of a program.

Event
    An event is an object of the class sc_event.

Types
  Native-C++
    Native C++ types are the datatypes that are natively available in
C++ like
    char, short, int, long etc.

  Built-in SystemC
    Built in SystemC types are the datatypes that are available natively
in
    SystemC like sc_logic, sc_bit, sc_int etc.

  User-defined types
    User defined types are the datatypes that are defined by the user
like
    structs, classes, unions, enum etc.

Process/Process instance
    A process instance is an object of an implementation-defined class
    derived from the class sc_object and created by one of the three
macros
    SC_METHOD, SC_THREAD, or SC_CTHREAD or by calling the function
sc_spawn.
    The term process refers to either a process instance or to the
member
    function that is associated with a process instance when it is
created.

    Static Process
        A static process is a process created during the construction of
        the module hierarchy or from the before_end_of_elaboration
callback.

    Dynamic Process
        A dynamic process is a process created from the
end_of_elaboration
        callback or during simulation.

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Tue Mar 20 23:52:57 2007

This archive was generated by hypermail 2.1.8 : Tue Mar 20 2007 - 23:52:58 PDT