Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by sdressler

  1. Well, after doing some more research on this topic, I think I can answers parts on my own: 1. Regarding the clock, I now understand, that this is not necessary. Instead, I can pre-calculate specific times and use events or other mechanisms to get notified once the particular time is reached. 2. Regarding synchronization, I used a sc_fifo now for transferring data. When it comes to signals on the ports, I simply set them wrt timing, so that CA is still maintained. I think that nails it pretty much... Cheers, Sebastian
  2. David, thank you for that thorough answer. I'd like to discuss different aspects a bit more. Could you explain me a bit more, how this is supposed to work? E.g. for this particular models, the goal was to also have cycle-accuracy, i.e. to me it seems unable to remove the clocks. This results from the following problem: usually the valid is raised only once. That is, with every new rising clock, new data is transferred. If I now remove the clock, then I won't know when there is new data. The next thing is, that these models are supposed to be connected to a complete system which would exp
  3. Hi, I created a pair of modules in SystemC. The purpose is to model a data transfer with one side being the source and the other side being the sink. It currently uses SC_THREAD for processing, e.g. (not showing all details): class Source : sc_module { sc_in<bool> clk; sc_in<bool> ready; sc_out<bool> valid; sc_out<sc_bv<8>> data; // This is a SC_THREAD void process() { while(true) { wait(clk.posedge_event()); valid.write(data_available()); wait(SC_ZERO_TIME); if (d
  4. Thank you for the reply. Dou you know, whether sc_curr_simcontext = new sc_simcontext(); also takes care about destructing the old context? That is, otherwise I would assume the simulation leaks memory with every new instantiated context. Cheers, Sebastian
  5. Hi, I'm working on a TL-Model in SystemC. Due to some internal necessarities, it is important to re-instantiate the model before a new simulation. I do not want to re-start the whole program. However, I get the following warning: This obviously comes from re-instantiation, since the instantiated module always uses the same name. However, this does not really makes sense to me, since between instantiations, the destructor is called and therefore, also sc_module_registry::remove gets called from which I'd assume, that it removes the module properly. This feels like a SystemC bug to m
  • Create New...