9 Migration Guide Simics 5 to Simics 6 11 Migration Guide Simics 6.0.129 to Simics 6.0.130
SystemC* Library  / 

10 Migration Guide SystemC

10.1 Migrate from 2.3.1 to 2.3.3

From a device model's point of view there are only a few incompatible changes between SystemC 2.3.1 and 2.3.3 to consider. Migration should thus be straight forward and trivial. If the model has dependencies on 3rd party IP, additional changes may be required. Please contact the IP provider for details.

Here is the list of known changes that can cause problems when migrating from 2.3.1 to 2.3.3. See the Accellera kernel RELEASENOTES for more details and full list of changes:

10.2 Migrate from 2.3.3 to 2.3.4

In addition to the changes listed in the Accellera kernel RELEASENOTES, there is an incompatible change in the tlm::tlm_base_socket_if interface. In SystemC 2.3.3, the interface is defined as follows:

class tlm_base_socket_if {
 public:
  virtual sc_core::sc_port_base &         get_port_base() = 0;
  virtual sc_core::sc_port_base const &   get_port_base() const = 0;
  virtual sc_core::sc_export_base &       get_export_base() = 0;
  virtual sc_core::sc_export_base const & get_export_base() const = 0;
  ...
};

In SystemC 2.3.4, these methods have been renamed:

class tlm_base_socket_if {
 public:
  virtual sc_core::sc_port_base &         get_base_port() = 0;
  virtual sc_core::sc_port_base const &   get_base_port() const = 0;
  virtual sc_core::sc_export_base &       get_base_export() = 0;
  virtual sc_core::sc_export_base const & get_base_export() const = 0;
  ...
};

If your integrated SystemC IP explicitly uses these methods from tlm::tlm_base_socket_if, you will need to update the method names accordingly.

10.3 Migrate from 2.3.4 to 3.0.0

SystemC 3.0.0 introduces new features and API changes to align with IEEE Std. 1666-2023. For detailed information, refer to Chapter 3 "New Features" in the Accellera kernel RELEASENOTES.md.

IEEE Std. 1666-2023 mandates C++17 as the baseline for SystemC implementations. Ensure that your SystemC IP is compatible with a compiler that supports the C++17 language standard.

Below is a list of known changes that may cause issues when migrating from 2.3.4 to 3.0.0:

9 Migration Guide Simics 5 to Simics 6 11 Migration Guide Simics 6.0.129 to Simics 6.0.130