Jump to content

Philipp A Hartmann

Members
  • Content count

    450
  • Joined

  • Last visited

  • Days Won

    110

Philipp A Hartmann last won the day on July 3

Philipp A Hartmann had the most liked content!

4 Followers

About Philipp A Hartmann

  • Rank
    Advanced Member

Profile Information

  • Gender
    Not Telling
  • Location
    Duisburg, DE

Recent Profile Visitors

1,584 profile views
  1. Philipp A Hartmann

    make check return fail

    Hi all, you may want to try the attached sc_semaphore.h (requires C++11 to avoid the use of sem_init on MacOS). Hope that helps, Philipp sc_host_semaphore.h
  2. Philipp A Hartmann

    Passing event to SC_CTHREAD macro

    It should be fine to use wait(n) in SC_THREADs (with static sensitivity) as well?
  3. Philipp A Hartmann

    Passing event to SC_CTHREAD macro

    For your particular use case, you can just pass in the clock signal directly: SC_CTHREAD(test_cthread, clkgen); // posedge by default for CTHREADs If you need a negedge triggered process, you can also write the equivalent SC_THREAD instead: SC_THREAD(test_cthread); sensitive << clkgen.negedge_event(); dont_initialize(); Allowing plain events for CTHREAD sensitivity was probably just never needed.
  4. Philipp A Hartmann

    reset method or thread

    There is an example for catching and re-throwing an sc_unwind_exception in IEEE 1666-2011, clause 5.6.6.6. Hope that helps, Philipp
  5. Philipp A Hartmann

    C++ class object bringing into systemC Hierarchy

    Hi all, Both sc_get_current_process_b() and get_parent() are non-standard functions that may or may not be supported by (future) versions of your SystemC implementation. I recommend to only use standard IEEE 1666-2011 APIs instead: x sc_core::sc_get_current_process_handle().get_parent_object()->name() x sc_core::sc_get_current_process_handle().name() Greetings from Duisburg, Philipp
  6. Philipp A Hartmann

    systemc-2.3.2 with C++17

    For example, the missing operator delete was added in C++14 only (quoting from http://en.cppreference.com/w/cpp/memory/new/operator_delete) : void operator delete ( void* ptr, std::size_t sz ); (5) (since C++14) void operator delete[]( void* ptr, std::size_t sz ); (6) (since C++14)
  7. Philipp A Hartmann

    systemc-2.3.2 with C++17

    Yes. Most likely, because your clang-7 installation uses an incompatible C++ standard library. /Philipp
  8. Philipp A Hartmann

    systemc-2.3.2 with C++17

    Hi Sumit, can you please share some details on your remark that "it does not compile with -std=c++17"? For me, the SystemC 2.3.2 library and examples compile and run fine with GCC 6.3 and -std=c++17 (no 6.2 installation at hand here). Your linker errors look like you're missing the (matching) C++ runtime libraries in your linker call. Do you configure clang to use libc++ instead of libstdc++? Can you link any other C++ library built with GCC 6.2 to an application built with Clang 7? I would expect that this issue is not specific to SystemC and I would recommend to stick to a single compiler for all artifacts in your application, including SystemC. Hope that helps, Philipp
  9. You can have a look at examples/tlm/common/include/models in the Accellera proof-of-concept implementation for an example interconnect model. Hope that helps, Philipp
  10. Philipp A Hartmann

    initialization problem with <sc_dt::sc_logic> port

    The purpose of the initialize() function of the signal ports is to set the value of the bound signal at the beginning of the simulation through the given port.
  11. For hierarchical point-to-point binding, just use plain tlm_initiator/target_sockets on the parent module. You can keep using (tagged) convenience sockets at the leaves. Hope that helps, Philipp
  12. Philipp A Hartmann

    initialization problem with <sc_dt::sc_logic> port

    You can call eoc.initialize(...) before the port is bound.
  13. I don't see anything wrong with the code, but I don't have access to this platform. The aarch64 platform support has been contributed newly in SystemC 2.3.2 and has only been tested with GCC 4.5.0 so far. Can you provide more more details about the crash? (e.g. backtrace, build logs for library and application - including all command-line invocations, ...) Do you see any compiler warnings during the library/model build? Does it help to switch to the pthreads-based process implementation (../configure --enable-pthreads ...)? Greetings from Duisburg, Philipp
  14. Philipp A Hartmann

    Generic Payload Extensions

    You cannot bind sockets with different payload classes, as the interfaces are templated over the protocol traits, which include the payload and phase types. So integrating this third-party model would require an adapter in your case. Many use cases can be implemented with (ignorable) extensions, which will avoid this incompatibility and integration burden. As a result, you don't have to write/use a custom adapters, interconnect models, tool integrations, etc. For maximum interoperability with models and tools, you want to follow the (base-protocol) conventions as closely as possible, even for custom protocols. See the different TLM-2.0 compliance categories (IEEE 1666-2011, 9.1). Hope that helps, Philipp
×