112027Sjungma@eit.uni-kl.de                Release Notes for SystemC 2.3.1
212027Sjungma@eit.uni-kl.de                ===============================
312027Sjungma@eit.uni-kl.de
412027Sjungma@eit.uni-kl.de        Andrew C. Goodrich,  Forte Design Systems
512027Sjungma@eit.uni-kl.de        Philipp A. Hartmann, OFFIS Institute for Information Technology
612027Sjungma@eit.uni-kl.de
712027Sjungma@eit.uni-kl.deCONTENTS
812027Sjungma@eit.uni-kl.de========
912027Sjungma@eit.uni-kl.de
1012027Sjungma@eit.uni-kl.de  1) What's new in this release?
1112027Sjungma@eit.uni-kl.de
1212027Sjungma@eit.uni-kl.de  2) Bug fixes and enhancements
1312027Sjungma@eit.uni-kl.de
1412027Sjungma@eit.uni-kl.de  3) New features
1512027Sjungma@eit.uni-kl.de
1612027Sjungma@eit.uni-kl.de  4) Incompatibitilies with previous releases
1712027Sjungma@eit.uni-kl.de
1812027Sjungma@eit.uni-kl.de  5) Expanded dynamic process support
1912027Sjungma@eit.uni-kl.de
2012027Sjungma@eit.uni-kl.de  6) Experimental features
2112027Sjungma@eit.uni-kl.de
2212027Sjungma@eit.uni-kl.de  7) Known problems
2312027Sjungma@eit.uni-kl.de
2412027Sjungma@eit.uni-kl.de  8) Fixed-point library
2512027Sjungma@eit.uni-kl.de
2612027Sjungma@eit.uni-kl.de  9) TLM Release Notes
2712027Sjungma@eit.uni-kl.de
2812027Sjungma@eit.uni-kl.de
2912027Sjungma@eit.uni-kl.de1) What's new in this release?
3012027Sjungma@eit.uni-kl.de==============================
3112027Sjungma@eit.uni-kl.de
3212027Sjungma@eit.uni-kl.deThis version of SystemC contains the "Proof of Concept" simulator
3312027Sjungma@eit.uni-kl.defor the IEEE 1666-2011 SystemC standard. Please consult the IEEE Std
3412027Sjungma@eit.uni-kl.de1666-2011 SystemC Language Reference Manual for details about the 
3512027Sjungma@eit.uni-kl.decurrent SystemC standard.
3612027Sjungma@eit.uni-kl.de
3712027Sjungma@eit.uni-kl.deTLM-2.0 is merged into the main SystemC release since 2.3.0.
3812027Sjungma@eit.uni-kl.dePlease see section 9) below for more details related to TLM.
3912027Sjungma@eit.uni-kl.de
4012027Sjungma@eit.uni-kl.deCompared to the 2.3.0, this release has the following new items:
4112027Sjungma@eit.uni-kl.de
4212027Sjungma@eit.uni-kl.de  - New features, partly beyond the current IEEE 1666-2011 standard,
4312027Sjungma@eit.uni-kl.de    see section 3.
4412027Sjungma@eit.uni-kl.de
4512027Sjungma@eit.uni-kl.de  - Experimental features (disabled by default), see section 5.
4612027Sjungma@eit.uni-kl.de    Testing and feedback welcome via the Accellera SystemC forums
4712027Sjungma@eit.uni-kl.de    at http://forums.accellera.org/forum/9-systemc/.
4812027Sjungma@eit.uni-kl.de
4912027Sjungma@eit.uni-kl.de  - Bug fixes, see section 2.
5012027Sjungma@eit.uni-kl.de
5112027Sjungma@eit.uni-kl.de  - Expanded platform support, see the README.
5212027Sjungma@eit.uni-kl.de
5312027Sjungma@eit.uni-kl.de
5412027Sjungma@eit.uni-kl.de
5512027Sjungma@eit.uni-kl.de2) Bug fixes and enhancements
5612027Sjungma@eit.uni-kl.de=============================
5712027Sjungma@eit.uni-kl.de
5812027Sjungma@eit.uni-kl.deFollowing is the list of bug fixes and enhancements for this release:
5912027Sjungma@eit.uni-kl.de
6012027Sjungma@eit.uni-kl.de  - For fixes and enhancements of the embedded TLM-2.0 implementation,
6112027Sjungma@eit.uni-kl.de    please see section 9.
6212027Sjungma@eit.uni-kl.de
6312027Sjungma@eit.uni-kl.de  - Additional changes and cleanups leading to incompatibilities with
6412027Sjungma@eit.uni-kl.de    previous versions of SystemC are described in section 4.
6512027Sjungma@eit.uni-kl.de
6612027Sjungma@eit.uni-kl.de  - Fix nested SC_METHOD preemptions caused by resetting a method, which
6712027Sjungma@eit.uni-kl.de    throws an exception in a thread process.  The control now correctly
6812027Sjungma@eit.uni-kl.de    goes back to the throwing method.
6912027Sjungma@eit.uni-kl.de
7012027Sjungma@eit.uni-kl.de  - Handle the case of a suppressed multiple-writer error in sc_signal
7112027Sjungma@eit.uni-kl.de    (and related channels) consistently with SystemC 2.2.0 again.
7212027Sjungma@eit.uni-kl.de
7312027Sjungma@eit.uni-kl.de  - The 'sc_buffer<bool>' and 'sc_buffer<sc_logic>' channels now correctly
7412027Sjungma@eit.uni-kl.de    notify their (pos|neg)edge_events, if someone is waiting on them.
7512027Sjungma@eit.uni-kl.de
7612027Sjungma@eit.uni-kl.de  - Cleanup the renaming of the internal Boost namespaces.  The embedded
7712027Sjungma@eit.uni-kl.de    Boost implementation resides in the (renamed) top-level namespaces
7812027Sjungma@eit.uni-kl.de     - sc_boost
7912027Sjungma@eit.uni-kl.de     - sc_unnamed (for placeholders, part of IEEE 1666-2011)
8012027Sjungma@eit.uni-kl.de     - sc_mpl_    (internal ADL barrier)
8112027Sjungma@eit.uni-kl.de
8212027Sjungma@eit.uni-kl.de  - Minor fixes in sc_vector-related classes
8312027Sjungma@eit.uni-kl.de     - correctly determine instantiation context
8412027Sjungma@eit.uni-kl.de     - sc_vector_iter: addition/substraction operators fixed
8512027Sjungma@eit.uni-kl.de     - sc_vector_assembly: add swap, fix missing return statement in
8612027Sjungma@eit.uni-kl.de       assignment
8712027Sjungma@eit.uni-kl.de
8812027Sjungma@eit.uni-kl.de  - WIF tracing of 64-bit integers: fix widths and masks on some
8912027Sjungma@eit.uni-kl.de    64-bit platforms.
9012027Sjungma@eit.uni-kl.de
9112027Sjungma@eit.uni-kl.de  - Suppressed a warning in case of calling sc_start in case of pending
9212027Sjungma@eit.uni-kl.de    delta notifications without any pending (or resulting) process
9312027Sjungma@eit.uni-kl.de    activations afterwards (1666-2011 compatbility).
9412027Sjungma@eit.uni-kl.de
9512027Sjungma@eit.uni-kl.de  - Fix sc_string_old implementation to handle very long strings (>1024)
9612027Sjungma@eit.uni-kl.de    (known issue in <=2.3.0).  Note, that sc_string_old is no longer
9712027Sjungma@eit.uni-kl.de    included by default, see section 4.
9812027Sjungma@eit.uni-kl.de
9912027Sjungma@eit.uni-kl.de  - Add "risc_cpu" example to Automake build system ("make check").
10012027Sjungma@eit.uni-kl.de
10112027Sjungma@eit.uni-kl.de  - Add missing files to the MS Visual C++ SystemC.vcproj project file.
10212027Sjungma@eit.uni-kl.de
10312027Sjungma@eit.uni-kl.de  - Add a missing "break" statement to "scfx_utils.h" in the "SC_CSD"
10412027Sjungma@eit.uni-kl.de    format parsing logic.
10512027Sjungma@eit.uni-kl.de
10612027Sjungma@eit.uni-kl.de  - Fix several integer conversion warnings raised by some compilers
10712027Sjungma@eit.uni-kl.de    throughout the SystemC implementation.
10812027Sjungma@eit.uni-kl.de
10912027Sjungma@eit.uni-kl.de  - Fixed incorrect GCC i386/x86_64 function call stack alignment when
11012027Sjungma@eit.uni-kl.de    using the QuickThreads/WinFiber-based process implementations (16-byte
11112027Sjungma@eit.uni-kl.de    boundary).  This avoids segmentation faults in some cases where the
11212027Sjungma@eit.uni-kl.de    stricter stack requirement is implicitly assumed by the compiler.
11312027Sjungma@eit.uni-kl.de
11412027Sjungma@eit.uni-kl.de  - The default stack size for threads, SC_DEFAULT_STACK_SIZE, has been
11512027Sjungma@eit.uni-kl.de    increased on 64-bit platforms and is overridable at library build
11612027Sjungma@eit.uni-kl.de    time (see INSTALL).
11712027Sjungma@eit.uni-kl.de
11812027Sjungma@eit.uni-kl.de  - The sc_report implementation now correctly handles empty and NULL
11912027Sjungma@eit.uni-kl.de    message type arguments (avoiding a segmentation fault in these cases).
12012027Sjungma@eit.uni-kl.de    The sc_report default constructor is made private to follow IEEE 1666.
12112027Sjungma@eit.uni-kl.de
12212027Sjungma@eit.uni-kl.de  - Missing namespace qualifiers added to all reporting macros, namely
12312027Sjungma@eit.uni-kl.de     - SC_DEFAULT_*_ACTIONS
12412027Sjungma@eit.uni-kl.de     - SC_REPORT_INFO_VERB
12512027Sjungma@eit.uni-kl.de    to make them usable again while including <systemc> instead of
12612027Sjungma@eit.uni-kl.de    <systemc.h>
12712027Sjungma@eit.uni-kl.de
12812027Sjungma@eit.uni-kl.de  - VCD/WIF tracing: fix support for very long values
12912027Sjungma@eit.uni-kl.de
13012027Sjungma@eit.uni-kl.de    The sc_(un)signed and sc_fxnum(_fast) data types can potentially hold
13112027Sjungma@eit.uni-kl.de    longer values than 1000 bit, which used to be the fixed size of the
13212027Sjungma@eit.uni-kl.de    intermediate buffers in sc_(vcd,wif)_trace for these types.
13312027Sjungma@eit.uni-kl.de
13412027Sjungma@eit.uni-kl.de  - Cleanup systemc.h
13512027Sjungma@eit.uni-kl.de
13612027Sjungma@eit.uni-kl.de     - Drop any in-library dependencies on the old 'sc_string' class,
13712027Sjungma@eit.uni-kl.de       removing the need to provide the corresponding header externally
13812027Sjungma@eit.uni-kl.de       (see section 4).
13912027Sjungma@eit.uni-kl.de     - Drop explicit in-header dependencies on <windows.h> on Windows
14012027Sjungma@eit.uni-kl.de       platforms, removing the automatic inclusion from <systemc[.h]>
14112027Sjungma@eit.uni-kl.de       (see section 4).
14212027Sjungma@eit.uni-kl.de     - Drop inclusion of 'strstream' by default on some platforms
14312027Sjungma@eit.uni-kl.de       (see section 4)
14412027Sjungma@eit.uni-kl.de     - assume working C++ standard library on all platforms
14512027Sjungma@eit.uni-kl.de     - assume working argument-dependent lookup on MSVC
14612027Sjungma@eit.uni-kl.de       (which should be working since MSVC 2003 already)
14712027Sjungma@eit.uni-kl.de     - see section 4 and INSTALL file
14812027Sjungma@eit.uni-kl.de
14912027Sjungma@eit.uni-kl.de  - Improved compile/runtime check of the SystemC library config
15012027Sjungma@eit.uni-kl.de
15112027Sjungma@eit.uni-kl.de    Some preprocessor switches need to be consistent between the application
15212027Sjungma@eit.uni-kl.de    and the library (e.g. if sizes of classes are affected or other parts of
15312027Sjungma@eit.uni-kl.de    the ABI are affected).  These can now be checked at link-time.
15412027Sjungma@eit.uni-kl.de  
15512027Sjungma@eit.uni-kl.de    Secondly, some preprocessor switches need to be consistent between
15612027Sjungma@eit.uni-kl.de    different translation units of an application, which is checked at
15712027Sjungma@eit.uni-kl.de    runtime startup.
15812027Sjungma@eit.uni-kl.de
15912027Sjungma@eit.uni-kl.de  - sc_context: avoid reinterpret_cast from integer to pointer
16012027Sjungma@eit.uni-kl.de
16112027Sjungma@eit.uni-kl.de  - The SC_VERSION_ORIGINATOR has been renamed from "ASI" to "Accellera"
16212027Sjungma@eit.uni-kl.de    to follow the naming policies of the Accellera Systems Initiative.
16312027Sjungma@eit.uni-kl.de
16412027Sjungma@eit.uni-kl.de  - Cleanups of the VCD/WIF tracing implementation
16512027Sjungma@eit.uni-kl.de
16612027Sjungma@eit.uni-kl.de     - Removal of internal files from the public headers (see section 4)
16712027Sjungma@eit.uni-kl.de     - Report any information (infos, warnings, errors) via the SystemC
16812027Sjungma@eit.uni-kl.de       reporting mechanism instead of directl printing to std::cout/cerr
16912027Sjungma@eit.uni-kl.de     - Automatically unregister trace updates when closing a trace file
17012027Sjungma@eit.uni-kl.de       during the simulation
17112027Sjungma@eit.uni-kl.de
17212027Sjungma@eit.uni-kl.de  - Drop the 'register' storage class specifier, which has been
17312027Sjungma@eit.uni-kl.de    deprecated in the C++11 standard (and therefore might cause warnings
17412027Sjungma@eit.uni-kl.de    on some compilers).
17512027Sjungma@eit.uni-kl.de
17612027Sjungma@eit.uni-kl.de  - Expanded naming of traced objects in VCD traces to use 5 characters
17712027Sjungma@eit.uni-kl.de    rather than 3 to accommodate more signals (incomplete in 2.3.0).
17812027Sjungma@eit.uni-kl.de
17912027Sjungma@eit.uni-kl.de  - Fix sc_signed/sc_unsigned conversion bug on GCC 4.8 or later, coming
18012027Sjungma@eit.uni-kl.de    from its aggressive optimization in case of integer over/underflows 
18112027Sjungma@eit.uni-kl.de    (by avoiding the C++ undefined behaviour in the implementation).
18212027Sjungma@eit.uni-kl.de
18312027Sjungma@eit.uni-kl.de  - An output stream operator<< for sc_status is added to enable
18412027Sjungma@eit.uni-kl.de    pretty-printing of sc_status values (and bitwise combinations of
18512027Sjungma@eit.uni-kl.de    such values).
18612027Sjungma@eit.uni-kl.de
18712027Sjungma@eit.uni-kl.de  - Various minor code cleanups and compiler warning fixes
18812027Sjungma@eit.uni-kl.de     - removal of some workarounds for very old versions of some
18912027Sjungma@eit.uni-kl.de       compilers (e.g. MSVC < 8.0).
19012027Sjungma@eit.uni-kl.de     - removal of unused variables and macros
19112027Sjungma@eit.uni-kl.de     - some deduplication of redundant code paths
19212027Sjungma@eit.uni-kl.de
19312027Sjungma@eit.uni-kl.de
19412027Sjungma@eit.uni-kl.de3) New features
19512027Sjungma@eit.uni-kl.de===============
19612027Sjungma@eit.uni-kl.de
19712027Sjungma@eit.uni-kl.deHere is an overview of changes in 2.3.1 compared to 2.3.0.
19812027Sjungma@eit.uni-kl.de
19912027Sjungma@eit.uni-kl.deNote: These features partly add functionality beyond the current
20012027Sjungma@eit.uni-kl.de      IEEE Std. 1666-2011.
20112027Sjungma@eit.uni-kl.de
20212027Sjungma@eit.uni-kl.de
20312027Sjungma@eit.uni-kl.de  - Major rewrite of the Autoconf/Automake build system
20412027Sjungma@eit.uni-kl.de    - better control of the installation directories
20512027Sjungma@eit.uni-kl.de    - improved libtool library dependency detection, especially
20612027Sjungma@eit.uni-kl.de      in cross-compilation scenarios (--host=...)
20712027Sjungma@eit.uni-kl.de    - support for pkg-config for SystemC and TLM
20812027Sjungma@eit.uni-kl.de      (see http://www.freedesktop.org/wiki/Software/pkg-config/)
20912027Sjungma@eit.uni-kl.de    - accept arbitrary GCC-compatible compilers
21012027Sjungma@eit.uni-kl.de      (e.g. Clang, Intel compiler, compiler-wrappers like scan-build)
21112027Sjungma@eit.uni-kl.de    - avoid deprecation warnings, cleanup implementation
21212027Sjungma@eit.uni-kl.de    - less recursive build, silent rules by default
21312027Sjungma@eit.uni-kl.de    - improved "make check" test handling
21412027Sjungma@eit.uni-kl.de
21512027Sjungma@eit.uni-kl.de
21612027Sjungma@eit.uni-kl.de  - Updated MS Visual C++ project and solution files to include
21712027Sjungma@eit.uni-kl.de    support for Visual Studio 2012 and 64-bit builds on Windows
21812027Sjungma@eit.uni-kl.de    platforms.
21912027Sjungma@eit.uni-kl.de
22012027Sjungma@eit.uni-kl.de
22112027Sjungma@eit.uni-kl.de  - Improved conversion between the underlying integral time
22212027Sjungma@eit.uni-kl.de    representation and sc_time objects:
22312027Sjungma@eit.uni-kl.de
22412027Sjungma@eit.uni-kl.de    - Add a nested typedef "value_type" to sc_time to enable an
22512027Sjungma@eit.uni-kl.de      implementation-independent use of the underlying integral
22612027Sjungma@eit.uni-kl.de      time representation (see IEEE 1666-2011, 5.11.1).
22712027Sjungma@eit.uni-kl.de
22812027Sjungma@eit.uni-kl.de    - Adding an inverse to the 'sc_time::value()' function to
22912027Sjungma@eit.uni-kl.de      convert a plain value back to an sc_time object:
23012027Sjungma@eit.uni-kl.de        static sc_time sc_time::from_value( value_type t );
23112027Sjungma@eit.uni-kl.de
23212027Sjungma@eit.uni-kl.de    - Adding modulus operators (%, %=) to compute time offsets from
23312027Sjungma@eit.uni-kl.de      clock or quantum boundaries:
23412027Sjungma@eit.uni-kl.de
23512027Sjungma@eit.uni-kl.de        sc_time operator%(const sc_time& lhs, const sc_time& rhs);
23612027Sjungma@eit.uni-kl.de
23712027Sjungma@eit.uni-kl.de        sc_time& sc_time::operator%=();
23812027Sjungma@eit.uni-kl.de
23912027Sjungma@eit.uni-kl.de      Note: These operators are missing from IEEE 1666-2011, which
24012027Sjungma@eit.uni-kl.de            make e.g. the tlm_global_quantum implementation nearly
24112027Sjungma@eit.uni-kl.de            impossible within the limits of the SystemC standard.
24212027Sjungma@eit.uni-kl.de
24312027Sjungma@eit.uni-kl.de
24412027Sjungma@eit.uni-kl.de  - Add function to determine the current object hierarchy:
24512027Sjungma@eit.uni-kl.de
24612027Sjungma@eit.uni-kl.de      sc_object* sc_core::sc_get_current_object()
24712027Sjungma@eit.uni-kl.de
24812027Sjungma@eit.uni-kl.de    Returns a pointer to the sc_object instance (or NULL) that would
24912027Sjungma@eit.uni-kl.de    currently become the parent object of a newly created sc_object
25012027Sjungma@eit.uni-kl.de    instance (i.e. the current module during elaboration, and the
25112027Sjungma@eit.uni-kl.de    currently active process during simulation).
25212027Sjungma@eit.uni-kl.de
25312027Sjungma@eit.uni-kl.de
25412027Sjungma@eit.uni-kl.de  - Add compile-time configurable default signal writer policy
25512027Sjungma@eit.uni-kl.de    (see INSTALL).
25612027Sjungma@eit.uni-kl.de
25712027Sjungma@eit.uni-kl.de    Defining SC_DEFAULT_WRITER_POLICY to one of the sc_writer_policy
25812027Sjungma@eit.uni-kl.de    values before including systemc(.h) allows application-wide selection
25912027Sjungma@eit.uni-kl.de    of the default sc_writer_policy used for signals.
26012027Sjungma@eit.uni-kl.de
26112027Sjungma@eit.uni-kl.de    Defining SC_NO_WRITE_CHECK is equivalent to 
26212027Sjungma@eit.uni-kl.de      SC_DEFAULT WRITER_POLICY=SC_UNCHECKED_WRITERS
26312027Sjungma@eit.uni-kl.de
26412027Sjungma@eit.uni-kl.de    By default, the writer policy still disallows multiple
26512027Sjungma@eit.uni-kl.de    writers (SC_ONE_WRITER).
26612027Sjungma@eit.uni-kl.de
26712027Sjungma@eit.uni-kl.de
26812027Sjungma@eit.uni-kl.de  - Add an sc_signal initialization which does not create an event
26912027Sjungma@eit.uni-kl.de    via newly provided constructors to the signal classes:
27012027Sjungma@eit.uni-kl.de
27112027Sjungma@eit.uni-kl.de     sc_signal<T>::sc_signal( const char* name
27212027Sjungma@eit.uni-kl.de                            , const T&    initial_value );
27312027Sjungma@eit.uni-kl.de
27412027Sjungma@eit.uni-kl.de    (similarly for sc_buffer and sc_signal_resolved)
27512027Sjungma@eit.uni-kl.de
27612027Sjungma@eit.uni-kl.de    Compared to calling the "write()" function on a signal during
27712027Sjungma@eit.uni-kl.de    the elaboration, these constructors will set the initial value
27812027Sjungma@eit.uni-kl.de    of the signal without triggering an event at the beginning of the
27912027Sjungma@eit.uni-kl.de    simulation (and therefore may avoid triggering sensitive processes).
28012027Sjungma@eit.uni-kl.de
28112027Sjungma@eit.uni-kl.de
28212027Sjungma@eit.uni-kl.de  - Add a static function to sc_report_handler to query the current
28312027Sjungma@eit.uni-kl.de    report handler function:
28412027Sjungma@eit.uni-kl.de
28512027Sjungma@eit.uni-kl.de      static sc_report_handler_proc sc_report_handler::get_handler();
28612027Sjungma@eit.uni-kl.de
28712027Sjungma@eit.uni-kl.de    Additionally, sc_report_handler::set_handler() now returns the
28812027Sjungma@eit.uni-kl.de    previously set handler (c.f. sc_report_handler::set_actions).
28912027Sjungma@eit.uni-kl.de
29012027Sjungma@eit.uni-kl.de
29112027Sjungma@eit.uni-kl.de  - Improved conversion from bitvector element references to bool
29212027Sjungma@eit.uni-kl.de
29312027Sjungma@eit.uni-kl.de    As it is surprising to the user that a reference to an explicit
29412027Sjungma@eit.uni-kl.de    element of a sc_bv could not be used in a boolean context, a safe
29512027Sjungma@eit.uni-kl.de    conversion has been added to this release.
29612027Sjungma@eit.uni-kl.de
29712027Sjungma@eit.uni-kl.de    This enables the following coding style:
29812027Sjungma@eit.uni-kl.de
29912027Sjungma@eit.uni-kl.de      sc_bv<8> mybits;
30012027Sjungma@eit.uni-kl.de      // ...
30112027Sjungma@eit.uni-kl.de      if( mybits[0] ) // no longer a compiler error here!
30212027Sjungma@eit.uni-kl.de        /* do something */ ;
30312027Sjungma@eit.uni-kl.de
30412027Sjungma@eit.uni-kl.de    Note: For logic vectors, the bit-references still need to be
30512027Sjungma@eit.uni-kl.de          converted to bool explicitly (e.g. via the "to_bool()"
30612027Sjungma@eit.uni-kl.de          function.
30712027Sjungma@eit.uni-kl.de
30812027Sjungma@eit.uni-kl.de
30912027Sjungma@eit.uni-kl.de
31012027Sjungma@eit.uni-kl.de4) Incompatibilities with previous releases
31112027Sjungma@eit.uni-kl.de===========================================
31212027Sjungma@eit.uni-kl.de
31312027Sjungma@eit.uni-kl.deHere is a list of known incompatibilities between this release and
31412027Sjungma@eit.uni-kl.de2.3.0 (or earlier):
31512027Sjungma@eit.uni-kl.de
31612027Sjungma@eit.uni-kl.de  - The non-standard sc_time constructors
31712027Sjungma@eit.uni-kl.de      - sc_time( uint64, bool scale )
31812027Sjungma@eit.uni-kl.de      - sc_time( double, bool scale )
31912027Sjungma@eit.uni-kl.de    have been deprecated and issue a warning when being used.
32012027Sjungma@eit.uni-kl.de    Use the new 'sc_time::from_value' function instead (see section 3).
32112027Sjungma@eit.uni-kl.de
32212027Sjungma@eit.uni-kl.de  - The non-standard function 'sc_object::get_parent()' has been
32312027Sjungma@eit.uni-kl.de    deprecated, use 'sc_object::get_parent_object()' instead.
32412027Sjungma@eit.uni-kl.de
32512027Sjungma@eit.uni-kl.de  - The non-standard function 'sc_signal::get_new_value()' has been
32612027Sjungma@eit.uni-kl.de    deprecated (as required by IEEE 1666-2011).
32712027Sjungma@eit.uni-kl.de
32812027Sjungma@eit.uni-kl.de  - The non-standard implementation classes for the VCD and WIF tracing
32912027Sjungma@eit.uni-kl.de    (vcd_trace_file, wif_trace_file) are now hidden from an application
33012027Sjungma@eit.uni-kl.de    and no longer part of the public headers.
33112027Sjungma@eit.uni-kl.de    Use the IEEE 1666-2011 functions
33212027Sjungma@eit.uni-kl.de      - sc_trace
33312027Sjungma@eit.uni-kl.de      - sc_create_[vcd|wif]_trace_file
33412027Sjungma@eit.uni-kl.de      - sc_close_[vcd|wif]_trace_file
33512027Sjungma@eit.uni-kl.de      - sc_trace_file::set_time_unit
33612027Sjungma@eit.uni-kl.de    to set up the tracing in your application.
33712027Sjungma@eit.uni-kl.de
33812027Sjungma@eit.uni-kl.de  - The non-standard header 'src/sysc/communication/sc_reset.h' is
33912027Sjungma@eit.uni-kl.de    no longer part of the public headers.
34012027Sjungma@eit.uni-kl.de
34112027Sjungma@eit.uni-kl.de  - The 'sc_string_old' class is no longer available by default.
34212027Sjungma@eit.uni-kl.de    Define 'SC_USE_SC_STRING_OLD' before including "systemc.h",
34312027Sjungma@eit.uni-kl.de    see INSTALL.
34412027Sjungma@eit.uni-kl.de
34512027Sjungma@eit.uni-kl.de  - The implicit inclusion of the system-headers "windows.h" (on Windows)
34612027Sjungma@eit.uni-kl.de    and (deprecated) "strstream" have been removed.  See INSTALL.
34712027Sjungma@eit.uni-kl.de
34812027Sjungma@eit.uni-kl.de  - The incomplete implementation of old "W_*" watching macros and the
34912027Sjungma@eit.uni-kl.de    non-standard struct sc_watch have been removed.
35012027Sjungma@eit.uni-kl.de
35112027Sjungma@eit.uni-kl.deHere is a list of known incompatibilities between this release and 2.2.0:
35212027Sjungma@eit.uni-kl.de
35312027Sjungma@eit.uni-kl.de  - The order that processes (SC_METHODs and SC_THREADs) are dispatched 
35412027Sjungma@eit.uni-kl.de    for execution may be different than the order with SystemC 2.2.0 for
35512027Sjungma@eit.uni-kl.de    some SystemC programs. This is related to the new starvation policy 
35612027Sjungma@eit.uni-kl.de    support for the sc_start() function introduced with IEEE 1666_2011.
35712027Sjungma@eit.uni-kl.de
35812027Sjungma@eit.uni-kl.de  - The various bind() functions for ports and exports are "virtual" as
35912027Sjungma@eit.uni-kl.de    of IEEE 1666-2011.  This leads to an incompatibility with the
36012027Sjungma@eit.uni-kl.de    TLM 2.0.x release.  To use SystemC 2.3 together with TLM 2.0.{0,1},
36112027Sjungma@eit.uni-kl.de    define SC_DISABLE_VIRTUAL_BIND during the build of the simulator and
36212027Sjungma@eit.uni-kl.de    before including systemc.h (see INSTALL).
36312027Sjungma@eit.uni-kl.de
36412027Sjungma@eit.uni-kl.de
36512027Sjungma@eit.uni-kl.de5) Expanded Dynamic Process Support
36612027Sjungma@eit.uni-kl.de===================================
36712027Sjungma@eit.uni-kl.de
36812027Sjungma@eit.uni-kl.deThis version implements the dynamic process extensions described in the
36912027Sjungma@eit.uni-kl.deIEEE Std 1666-2011 Language Reference Manual.
37012027Sjungma@eit.uni-kl.de
37112027Sjungma@eit.uni-kl.deCompared to SystemC 2.3.0, some bugs in corner cases of the
37212027Sjungma@eit.uni-kl.despecification have been fixed (see section 2).
37312027Sjungma@eit.uni-kl.de
37412027Sjungma@eit.uni-kl.de
37512027Sjungma@eit.uni-kl.de6) Experimental features
37612027Sjungma@eit.uni-kl.de========================
37712027Sjungma@eit.uni-kl.de
37812027Sjungma@eit.uni-kl.deIn this section the experimental features of this release are listed.
37912027Sjungma@eit.uni-kl.de
38012027Sjungma@eit.uni-kl.deNote: These features are not enabled in the default library
38112027Sjungma@eit.uni-kl.de      configuration and need to be explicitly activated during at
38212027Sjungma@eit.uni-kl.de      library build time.  See INSTALL file.
38312027Sjungma@eit.uni-kl.de
38412027Sjungma@eit.uni-kl.de
38512027Sjungma@eit.uni-kl.de - Extended Simulation Phase Callbacks
38612027Sjungma@eit.uni-kl.de
38712027Sjungma@eit.uni-kl.de   This release adds an optional mechanism to register callbacks
38812027Sjungma@eit.uni-kl.de   to several simulation phases.  This can be used to integrate
38912027Sjungma@eit.uni-kl.de   custom introspection techniques in a non-invasive manner.
39012027Sjungma@eit.uni-kl.de
39112027Sjungma@eit.uni-kl.de   New phases are added to the sc_status enumeration:
39212027Sjungma@eit.uni-kl.de
39312027Sjungma@eit.uni-kl.de       SC_END_OF_INITIALIZATION,
39412027Sjungma@eit.uni-kl.de       SC_END_OF_UPDATE,
39512027Sjungma@eit.uni-kl.de       SC_BEFORE_TIMESTEP
39612027Sjungma@eit.uni-kl.de
39712027Sjungma@eit.uni-kl.de   to enable a more fine-grained view to the SystemC simulation phases.
39812027Sjungma@eit.uni-kl.de
39912027Sjungma@eit.uni-kl.de   When the phase callback mechanism is activated (see the INSTALL file),
40012027Sjungma@eit.uni-kl.de   any sc_object can subscribe to a (set of) elaboration/simulation phases
40112027Sjungma@eit.uni-kl.de   for dynamic callbacks explicitly:
40212027Sjungma@eit.uni-kl.de
40312027Sjungma@eit.uni-kl.de     // trigger current object before updating the simulation time
40412027Sjungma@eit.uni-kl.de     this->register_simulation_phase_callback( SC_BEFORE_TIMESTEP );
40512027Sjungma@eit.uni-kl.de
40612027Sjungma@eit.uni-kl.de     // trigger current object before returning to "sc_start"
40712027Sjungma@eit.uni-kl.de     this->register_simulation_phase_callback( SC_PAUSED | SC_STOPPED );
40812027Sjungma@eit.uni-kl.de
40912027Sjungma@eit.uni-kl.de   Unsubscribing from any simulation phase is possible via the corresponding
41012027Sjungma@eit.uni-kl.de      unregister_simulation_phase_callback( phase_cb_mask )
41112027Sjungma@eit.uni-kl.de   function.
41212027Sjungma@eit.uni-kl.de
41312027Sjungma@eit.uni-kl.de   Both functions return the effective mask after the requested callback mask
41412027Sjungma@eit.uni-kl.de   update.  Therefore, querying the currently active mask can be achieved by
41512027Sjungma@eit.uni-kl.de   calling the (un)registration functions with an empty mask:
41612027Sjungma@eit.uni-kl.de
41712027Sjungma@eit.uni-kl.de     sc_object::phase_cb_mask current_cb_mask =
41812027Sjungma@eit.uni-kl.de       this->register_simulation_phase_callback( 0u );
41912027Sjungma@eit.uni-kl.de
42012027Sjungma@eit.uni-kl.de   To enable the external (un)registration of callbacks for a user-defined
42112027Sjungma@eit.uni-kl.de   sc_object class, the (un)registration functions can be made public by
42212027Sjungma@eit.uni-kl.de   adding the following using directives to a 'public:' section of the
42312027Sjungma@eit.uni-kl.de   class definition:
42412027Sjungma@eit.uni-kl.de
42512027Sjungma@eit.uni-kl.de     using sc_core::sc_object::register_simulation_phase_callback;
42612027Sjungma@eit.uni-kl.de     using sc_core::sc_object::unregister_simulation_phase_callback;
42712027Sjungma@eit.uni-kl.de
42812027Sjungma@eit.uni-kl.de   When the simulation passes a phase where dynamic callbacks are registered,
42912027Sjungma@eit.uni-kl.de   the subscribed objects are triggered via the function:
43012027Sjungma@eit.uni-kl.de
43112027Sjungma@eit.uni-kl.de     virtual void sc_object::simulation_phase_callback();
43212027Sjungma@eit.uni-kl.de
43312027Sjungma@eit.uni-kl.de   which should then be implemented by the subscribing object's class.
43412027Sjungma@eit.uni-kl.de
43512027Sjungma@eit.uni-kl.de   Within a simulation callback, the triggering phase can be determined
43612027Sjungma@eit.uni-kl.de   via the IEEE 1666-2011 'sc_get_status()' function:
43712027Sjungma@eit.uni-kl.de
43812027Sjungma@eit.uni-kl.de     void simulation_phase_callback() {
43912027Sjungma@eit.uni-kl.de       std::cout << sc_core::sc_get_status() << std::endl;
44012027Sjungma@eit.uni-kl.de     }
44112027Sjungma@eit.uni-kl.de
44212027Sjungma@eit.uni-kl.de   A related feature is the triggering of sc_trace updates via these
44312027Sjungma@eit.uni-kl.de   simulation phase callbacks instead of the hard-coded calls in various
44412027Sjungma@eit.uni-kl.de   places of the simulation loop.  This feature has to be enabled separately,
44512027Sjungma@eit.uni-kl.de   see INSTALL file.
44612027Sjungma@eit.uni-kl.de
44712027Sjungma@eit.uni-kl.de
44812027Sjungma@eit.uni-kl.de - Allow creation of sc_max_time() objects before fixing the sc_time
44912027Sjungma@eit.uni-kl.de   resolution
45012027Sjungma@eit.uni-kl.de
45112027Sjungma@eit.uni-kl.de   Currently. IEEE 1666-2011 requires that any call to
45212027Sjungma@eit.uni-kl.de
45312027Sjungma@eit.uni-kl.de     sc_core::sc_set_time_resolution( double, sc_time_unit )
45412027Sjungma@eit.uni-kl.de
45512027Sjungma@eit.uni-kl.de   happens before the construction of the first non-SC_ZERO_TIME
45612027Sjungma@eit.uni-kl.de   sc_time object.
45712027Sjungma@eit.uni-kl.de
45812027Sjungma@eit.uni-kl.de   This can be inconvenient in cases, where an "uninitialized sc_time value"
45912027Sjungma@eit.uni-kl.de   is needed, which needs to be separate from SC_ZERO_TIME in some cases.
46012027Sjungma@eit.uni-kl.de
46112027Sjungma@eit.uni-kl.de   A relaxation of the strict sc_time construction rules wrt. to
46212027Sjungma@eit.uni-kl.de   the simulation time resolution can be optionally enabled via the
46312027Sjungma@eit.uni-kl.de   preprocessor switch SC_ENABLE_EARLY_MAXTIME_CREATION (see INSTALL).
46412027Sjungma@eit.uni-kl.de
46512027Sjungma@eit.uni-kl.de   When this option is enabled, the creation of time objects with the
46612027Sjungma@eit.uni-kl.de   values SC_ZERO_TIME and 'sc_max_time()' are allowed before fixing the
46712027Sjungma@eit.uni-kl.de   time resolution.  The resolution is still fixed once the actual
46812027Sjungma@eit.uni-kl.de   relationship between the internal time representation and the physical
46912027Sjungma@eit.uni-kl.de   time units (SC_FS, SC_PS, ...) is used or observed by the application.
47012027Sjungma@eit.uni-kl.de
47112027Sjungma@eit.uni-kl.de
47212027Sjungma@eit.uni-kl.de
47312027Sjungma@eit.uni-kl.de
47412027Sjungma@eit.uni-kl.de7) Known Problems
47512027Sjungma@eit.uni-kl.de=================
47612027Sjungma@eit.uni-kl.de
47712027Sjungma@eit.uni-kl.de  - When building the SystemC library with QuickThreads support, the
47812027Sjungma@eit.uni-kl.de    resulting shared library is marked as requiring an executable stack
47912027Sjungma@eit.uni-kl.de    by certain compilers/assemblers (or rather not marked as not needing
48012027Sjungma@eit.uni-kl.de    one).  As a result, some system security systems (like SELinux) might
48112027Sjungma@eit.uni-kl.de    refuse to load the library.  As a workaround for GNU (compatible)
48212027Sjungma@eit.uni-kl.de    assemblers, pass the assembler flags variable with the option
48312027Sjungma@eit.uni-kl.de      CCASFLAGS="-Wa,--noexecstack"
48412027Sjungma@eit.uni-kl.de    to the `configure' script call before building the SystemC library.
48512027Sjungma@eit.uni-kl.de
48612027Sjungma@eit.uni-kl.de
48712027Sjungma@eit.uni-kl.de  - IEEE 1666-2011 does not explicitly define the behaviour in the corner
48812027Sjungma@eit.uni-kl.de    cases of attempting to create sc_time objects smaller than the time
48912027Sjungma@eit.uni-kl.de    resolution or bigger than sc_max_time().  This implementation currently
49012027Sjungma@eit.uni-kl.de    truncates "small" sc_time objects to SC_ZERO_TIME, while "too big"
49112027Sjungma@eit.uni-kl.de    objects wrap-around sc_max_time() and lead to a value modulo the
49212027Sjungma@eit.uni-kl.de    maximum time.  In both cases, no warning is generated.
49312027Sjungma@eit.uni-kl.de
49412027Sjungma@eit.uni-kl.de
49512027Sjungma@eit.uni-kl.de  - The sign-extension of mixed-signedness logic expressions (&,|)
49612027Sjungma@eit.uni-kl.de    involving one sc_bigint<> operand and C++ builtin integral types
49712027Sjungma@eit.uni-kl.de    (int, short, etc.) is inconsistent between 32-bit and 64-bit
49812027Sjungma@eit.uni-kl.de    platforms in some cases. Convert both operands to sc_bigint<> first.
49912027Sjungma@eit.uni-kl.de
50012027Sjungma@eit.uni-kl.de
50112027Sjungma@eit.uni-kl.de  - The definition of sc_dt::(u)int64 differs from std::(u)int64_t types
50212027Sjungma@eit.uni-kl.de    on some platforms.  This may lead to problems with function overloads
50312027Sjungma@eit.uni-kl.de    and/or format-string placeholders.  As a workaround, convert these
50412027Sjungma@eit.uni-kl.de    values explicitly to the correct type before passing them to functions
50512027Sjungma@eit.uni-kl.de    expecting one of these types.  For sc_time, use the new nested type
50612027Sjungma@eit.uni-kl.de    sc_time::value_type to hold values of the underlying representation.
50712027Sjungma@eit.uni-kl.de
50812027Sjungma@eit.uni-kl.de
50912027Sjungma@eit.uni-kl.de  - Bit/logic-vector reductions (or_reduce, and_reduce, etc.) return an
51012027Sjungma@eit.uni-kl.de    'sc_logic_value_t' enum value, instead of a bool or sc_logic (as required
51112027Sjungma@eit.uni-kl.de    by IEEE 1666-2011).  Using the return value of these functions in a
51212027Sjungma@eit.uni-kl.de    boolean context, e.g.
51312027Sjungma@eit.uni-kl.de      if( lv.or_reduce() ) { /* ... */ }
51412027Sjungma@eit.uni-kl.de    might lead to wrong results in case of 'X' or 'Z' bits in the vector.
51512027Sjungma@eit.uni-kl.de    Avoid this by converting the result to an 'sc_logic' first and perform
51612027Sjungma@eit.uni-kl.de    a safe conversion to bool:
51712027Sjungma@eit.uni-kl.de      if( sc_logic( lv.or_reduce() ).to_bool() ) { /* ... */ }
51812027Sjungma@eit.uni-kl.de
51912027Sjungma@eit.uni-kl.de
52012027Sjungma@eit.uni-kl.de  - The use of the DEBUG_SYSTEMC macro does not work properly with certain
52112027Sjungma@eit.uni-kl.de    compilers (e.g., gcc 2.95.x) if it was not also specified when the
52212027Sjungma@eit.uni-kl.de    SystemC library was built. The problem is caused by the use of the
52312027Sjungma@eit.uni-kl.de    library compiled version of some inline methods. This problem does not
52412027Sjungma@eit.uni-kl.de    appear to be present in the gcc 3.3, Solaris, and aCC compilers.
52512027Sjungma@eit.uni-kl.de    The work-around is to specify DEBUG_SYSTEMC when the SystemC library
52612027Sjungma@eit.uni-kl.de    is built.
52712027Sjungma@eit.uni-kl.de
52812027Sjungma@eit.uni-kl.de
52912027Sjungma@eit.uni-kl.de  - On some recent compilers (e.g. Clang, Solaris Studio), warnings are
53012027Sjungma@eit.uni-kl.de    generated about the "hidden overloaded virtual function" bind of the
53112027Sjungma@eit.uni-kl.de    sc_port(_b) class templates in the 'specialized_signals' example.
53212027Sjungma@eit.uni-kl.de    These warnings are caused by the introduction of the virtual bind
53312027Sjungma@eit.uni-kl.de    implementation in IEEE 1666-2011.
53412027Sjungma@eit.uni-kl.de    As a workaround, check your compiler documentation how to suppress
53512027Sjungma@eit.uni-kl.de    the warning (e.g. 'CXXFLAGS=-Wno-overloaded-virtual') or mark
53612027Sjungma@eit.uni-kl.de    the SystemC include directory as "system directory" by using
53712027Sjungma@eit.uni-kl.de    '-isystem ${SYSTEMC_HOME}/include' (or equivalent) instead of
53812027Sjungma@eit.uni-kl.de    the usual '-I'.
53912027Sjungma@eit.uni-kl.de
54012027Sjungma@eit.uni-kl.de    This also affects the TLM-2.0 sockets, see Section 9.3.
54112027Sjungma@eit.uni-kl.de
54212027Sjungma@eit.uni-kl.de
54312027Sjungma@eit.uni-kl.de  - Some paths in this release are longer than the historical 99 character
54412027Sjungma@eit.uni-kl.de    limit of tar archives, and several Windows archivers (e.g. WinZip)
54512027Sjungma@eit.uni-kl.de    have been reported to trip over this.  The open source archiver 7-zip
54612027Sjungma@eit.uni-kl.de    (http://7-zip.org) is known to work.
54712027Sjungma@eit.uni-kl.de
54812027Sjungma@eit.uni-kl.de
54912027Sjungma@eit.uni-kl.de8) Fixed-point library
55012027Sjungma@eit.uni-kl.de======================
55112027Sjungma@eit.uni-kl.de
55212027Sjungma@eit.uni-kl.deSystemC contains a fixed-point datatypes package.
55312027Sjungma@eit.uni-kl.de
55412027Sjungma@eit.uni-kl.deChanges compared to SystemC 2.0.1
55512027Sjungma@eit.uni-kl.de
55612027Sjungma@eit.uni-kl.de  - support for explicit construction from "float" values
55712027Sjungma@eit.uni-kl.de
55812027Sjungma@eit.uni-kl.de  - removing a conversion ambiguity by marking some constructors of
55912027Sjungma@eit.uni-kl.de    sc_fxval[_fast] classes as 'explicit'
56012027Sjungma@eit.uni-kl.de
56112027Sjungma@eit.uni-kl.deCompile-time macro SC_INCLUDE_FX must be defined in order to build
56212027Sjungma@eit.uni-kl.deapplications that use fixed point types. You can specify a compiler
56312027Sjungma@eit.uni-kl.deflag, e.g., g++ -DSC_INCLUDE_FX ... or use a define statement before
56412027Sjungma@eit.uni-kl.deyou include systemc.h, e.g.:
56512027Sjungma@eit.uni-kl.de
56612027Sjungma@eit.uni-kl.de  #define SC_INCLUDE_FX
56712027Sjungma@eit.uni-kl.de  #include "systemc.h"
56812027Sjungma@eit.uni-kl.de
56912027Sjungma@eit.uni-kl.deDue to the large size of the fixed-point datatypes header files,
57012027Sjungma@eit.uni-kl.decompilation can take considerably more time.
57112027Sjungma@eit.uni-kl.de
57212027Sjungma@eit.uni-kl.deIf you want to use the fixed-point data types only (i.e., not data-
57312027Sjungma@eit.uni-kl.detypes sc_int, sc_uint, sc_bigint, sc_biguint), compilation time can be
57412027Sjungma@eit.uni-kl.dereduced by defining compile-time macro SC_FX_EXCLUDE_OTHER (in addition
57512027Sjungma@eit.uni-kl.deto SC_INCLUDE_FX).
57612027Sjungma@eit.uni-kl.de
57712027Sjungma@eit.uni-kl.de
57812027Sjungma@eit.uni-kl.de9) TLM Release Notes
57912027Sjungma@eit.uni-kl.de====================
58012027Sjungma@eit.uni-kl.de
58112027Sjungma@eit.uni-kl.deCONTENTS
58212027Sjungma@eit.uni-kl.de========
58312027Sjungma@eit.uni-kl.de
58412027Sjungma@eit.uni-kl.de  1) Supported SystemC versions
58512027Sjungma@eit.uni-kl.de  2) What's changed in this kit?
58612027Sjungma@eit.uni-kl.de  3) Known issues
58712027Sjungma@eit.uni-kl.de
58812027Sjungma@eit.uni-kl.de
58912027Sjungma@eit.uni-kl.de9.1) Supported SystemC versions
59012027Sjungma@eit.uni-kl.de===============================
59112027Sjungma@eit.uni-kl.de
59212027Sjungma@eit.uni-kl.deSystemC 2.2.0 and 2.3.x are supported and have been tested.
59312027Sjungma@eit.uni-kl.deSystemC 2.1.v1 is still supported in principle, but has not
59412027Sjungma@eit.uni-kl.debeen tested extensively.
59512027Sjungma@eit.uni-kl.de
59612027Sjungma@eit.uni-kl.de
59712027Sjungma@eit.uni-kl.de9.2) What's changed in this kit?
59812027Sjungma@eit.uni-kl.de================================
59912027Sjungma@eit.uni-kl.de
60012027Sjungma@eit.uni-kl.deCompared to TLM 2.0.2 kit (part of SystemC 2.3.0), the following has changed:
60112027Sjungma@eit.uni-kl.de
60212027Sjungma@eit.uni-kl.de
60312027Sjungma@eit.uni-kl.de - The tlm_utils headers have been cleaned up to include <tlm>,
60412027Sjungma@eit.uni-kl.de   instead of <tlm.h>
60512027Sjungma@eit.uni-kl.de
60612027Sjungma@eit.uni-kl.de
60712027Sjungma@eit.uni-kl.de - The convenience sockets with base-protocol NB/B conversion support
60812027Sjungma@eit.uni-kl.de   now automatically define the required SC_INCLUDE_DYNAMIC_PROCESSES,
60912027Sjungma@eit.uni-kl.de   if not already provided by the user (since the B/NB conversion
61012027Sjungma@eit.uni-kl.de   depends on the SystemC dynamic process support).
61112027Sjungma@eit.uni-kl.de
61212027Sjungma@eit.uni-kl.de
61312027Sjungma@eit.uni-kl.de - Improve the NB/B conversion in the simple_target_socket to avoid
61412027Sjungma@eit.uni-kl.de   the dynamic allocation (and deletion) of sc_event instances in the
61512027Sjungma@eit.uni-kl.de   use of the spawned helper processes for the converesion.
61612027Sjungma@eit.uni-kl.de
61712027Sjungma@eit.uni-kl.de
61812027Sjungma@eit.uni-kl.de - Fix a bug in the same simple_target_socket NB/B conversion thread,
61912027Sjungma@eit.uni-kl.de   where the target socket may not detect the early completion of the
62012027Sjungma@eit.uni-kl.de   response phase via a "TLM_UPDATED" return value and a "TLM_END_RESP"
62112027Sjungma@eit.uni-kl.de   phase (base protocol violation).
62212027Sjungma@eit.uni-kl.de
62312027Sjungma@eit.uni-kl.de
62412027Sjungma@eit.uni-kl.de - Fix the "get_base_interface()" implementation provided by the 
62512027Sjungma@eit.uni-kl.de   multi_passthrough_target_socket.  Prior to this release, a
62612027Sjungma@eit.uni-kl.de   dummy interface object has been used as a return value in case
62712027Sjungma@eit.uni-kl.de   of a hierarchical bind.  Return the first bound interface instead.
62812027Sjungma@eit.uni-kl.de
62912027Sjungma@eit.uni-kl.de
63012027Sjungma@eit.uni-kl.de - Fixed missing initialization of some member variables in the
63112027Sjungma@eit.uni-kl.de   callback_binder_fw|bw implementations, that caused segfaults
63212027Sjungma@eit.uni-kl.de   in some cases.
63312027Sjungma@eit.uni-kl.de
63412027Sjungma@eit.uni-kl.de
63512027Sjungma@eit.uni-kl.de - The implementation-defined tlm::circular_buffer class has been
63612027Sjungma@eit.uni-kl.de   updated with the following changes
63712027Sjungma@eit.uni-kl.de    - now provides a "clear()" member function to drop the current
63812027Sjungma@eit.uni-kl.de      contents,
63912027Sjungma@eit.uni-kl.de    - fix a segmentation fault due to freeing invalid memory in
64012027Sjungma@eit.uni-kl.de      "resize()", which could happen in some cases,
64112027Sjungma@eit.uni-kl.de    - work around a parsing error on some EDG-based C++ frontends.
64212027Sjungma@eit.uni-kl.de
64312027Sjungma@eit.uni-kl.de
64412027Sjungma@eit.uni-kl.de - tlm_global_quantum: use sc_time::operator%
64512027Sjungma@eit.uni-kl.de
64612027Sjungma@eit.uni-kl.de   Instead of relying on a manual remainder calculation based on
64712027Sjungma@eit.uni-kl.de   sc_time::value and the non-standard backwards conversion, the new
64812027Sjungma@eit.uni-kl.de   sc_time::operator% is used to compute the remaining time in the
64912027Sjungma@eit.uni-kl.de   current quantum (see section 3).
65012027Sjungma@eit.uni-kl.de
65112027Sjungma@eit.uni-kl.de
65212027Sjungma@eit.uni-kl.de - The internal tlm_array class (to hold payload extensions) has been
65312027Sjungma@eit.uni-kl.de   reimplemented based on std::vector (fixes copy constructor bug).
65412027Sjungma@eit.uni-kl.de
65512027Sjungma@eit.uni-kl.de
65612027Sjungma@eit.uni-kl.de - The TLM_VERSION_ORIGINATOR has been renamed from "ASI" to "Accellera"
65712027Sjungma@eit.uni-kl.de   to follow the naming policies of the Accellera Systems Initiative.
65812027Sjungma@eit.uni-kl.de
65912027Sjungma@eit.uni-kl.de
66012027Sjungma@eit.uni-kl.de
66112027Sjungma@eit.uni-kl.de
66212027Sjungma@eit.uni-kl.de9.3) Known issues
66312027Sjungma@eit.uni-kl.de=================
66412027Sjungma@eit.uni-kl.de
66512027Sjungma@eit.uni-kl.dea. The tlm_simple_target_socket in tlm_utils does not obey the END_REQ rule
66612027Sjungma@eit.uni-kl.de   when only an nb_ call is registered, an b_ call is being handled in the
66712027Sjungma@eit.uni-kl.de   socket and there is an nb_ call coming in at the same time. In this case
66812027Sjungma@eit.uni-kl.de   the incoming nb_ call will be forwarded to the registered nb_ call without
66912027Sjungma@eit.uni-kl.de   checking whether the earlier b_ call has passed the END_REQ timing point.
67012027Sjungma@eit.uni-kl.de
67112027Sjungma@eit.uni-kl.deb. The implementation of the PEQ 'peq_with_get' in tlm_utils does not properly
67212027Sjungma@eit.uni-kl.de   distinguish between immediate notifications and delta notifications. In the
67312027Sjungma@eit.uni-kl.de   case that a immediate and delta notification happen at the same simulation
67412027Sjungma@eit.uni-kl.de   time both types of notifications emerge from the PEQ in the same evaluation
67512027Sjungma@eit.uni-kl.de   phase. This is wrong immediate notifications should overtake delta
67612027Sjungma@eit.uni-kl.de   notifications.
67712027Sjungma@eit.uni-kl.de
67812027Sjungma@eit.uni-kl.dec. On some recent compilers (e.g. Clang, Solaris Studio), warnings are generated
67912027Sjungma@eit.uni-kl.de   about the "hidden overloaded virtual function" bind of the sc_port(_b)
68012027Sjungma@eit.uni-kl.de   class templates when using the TLM-2.0 sockets.  These warnings are caused by
68112027Sjungma@eit.uni-kl.de   the introduction of the virtual bind implementation in IEEE 1666-2011.
68212027Sjungma@eit.uni-kl.de   As a workaround in your application, check your compiler documentation how to
68312027Sjungma@eit.uni-kl.de   suppress the warning (e.g. adding the flag -Wno-overloaded-virtual), or mark
68412027Sjungma@eit.uni-kl.de   the SystemC include directory as "system directory" by using
68512027Sjungma@eit.uni-kl.de   '-isystem ${SYSTEMC_HOME}/include' (or equivalent) instead of the usual '-I'.
686