yukai Posted May 5, 2017 Report Share Posted May 5, 2017 I want to monitor the time spent on AMS building the R&C network, I put the command before and after the initialize() function in systemC sc_simcontext.cpp file: struct timeval t0; struct timeval t1; float elapsed; gettimeofday(&t0, 0); initialize( true ); gettimeofday(&t1, 0); elapsed = (t1.tv_sec - t0.tv_sec) * 1000.0f + (t1.tv_usec - t0.tv_usec) / 1000.0f; std::cout << "SystemC Initialize Time: "<< elapsed << "ms" << std::endl; But I think this time is not the time spent on initializing the R&C network... I checked the sca_simcontext.cpp file, I found the class systemc_ams_initializer : sc_core::sc_module, but I didn't find which functions for invoking start to building the R&C network... Or should I monitor the function void sca_synchronization_alg::initialize() in sca_synchronization_alg.cpp file? Where I can put the gettimeofday command to evaluate the time spent on building(initializing) R&C network? My target is to evaluate the proportion of initialized time on the total simulation time. Thank you for sharing your idea. Quote Link to comment Share on other sites More sharing options...
maehne Posted May 6, 2017 Report Share Posted May 6, 2017 The easiest standard-conformant option I see to get an approximate idea how much time is spent in elaborating your SystemC model, which contains your RC network is by getting a time stamp using gettimeofday() just before calling sc_start() and then another from within the processing() member function of a TDF model attached to your RC network (e.g. via an sca_eln::sca_tdf::sca_vsource(). Note that I would personally prefer to use the std::chrono library introduced with C++'11 and more specifically std::chrono::high_resolution_clock::now() instead of gettimeofday() to time execution of code segments. If you want to more precisely time the RC network setup, you would need to dive into the implementation details of the SystemC AMS extensions PoC simulator. A starting point would be to look into sca_eln::sca_implementation::sca_eln_view::setup_equations(), where the solvers for the different clusters of ELN modules are instantiated. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.