Jump to content


  • Content Count

  • Joined

  • Last visited

  1. Earless

    Set timestep in ELN module

    @Martin Barnasconi thank you for your reply. Good to hear that the User Guide might be more easily available 🙂 @maehne thank you for your reply as well. Looking back at your earlier post and example, I realize that I read it completely wrong. My second approach is exactly the same as your example. My apologies for the confusion. Thank you for the time and effort!
  2. Earless

    Set timestep in ELN module

    @maehne First of all, thank you for your reply. Maybe it is me, but I got the following error message when I tried SCA_ELN_MODULE: "expected constructor, destructor or type conversion before '(' token" . This makes me believe the macro is not defined. SCA_TDF_MODULE does not give me this error. Am I correct? I tried this with my ELN module as follows: LifELN lifNeuron("lifNeuron", Cm, Rm, sampleRate); lifNeuron.set_timestep(sca_core::sca_time(1000.0 / sampleRate, sc_core::SC_MS)); Unfortunately, the compiler gives me the following error: "struct LifELN has no member named 'set_timestep'". I assumed that this is what you tried to show me in your code example. What am I doing wrong here? Then I tried to do something similar inside the constructor of the ELN module, but instead of calling set_timestep() of the module, I called set_timestep() of an ELN component. See below /* HEADER */ sca_eln::sca_vsource Vrest; /* CPP */ Vrest.p(n2); Vrest.n(node); Vrest.set_timestep(dt, sc_core::SC_MS); Surprisingly, this worked as well. Is this a valid way to set a timestep (considering it is called within a constructor and not inside set_attributes())? Thanks for pointing this out. Now I remember how I found it last time 🙂 Maybe it would be a good idea to bundle the 1.0 User Guide with the SystemC AMS 2.0 standard for the time being, until it is updated? Apologies for the tedious reply. Again, thanks for your reply!
  3. Probably a very simple request, but I'd like to set the timestep of my ELN module. I found the following piece in the Language Reference Manual: "The timestep for every ELN cluster shall be derived from the timestep of a connected TDF cluster or set by the member functions set_timestep or set_max_timestep of an ELN primitive module derived from class sca_eln::sca_module of the corresponding ELN cluster." From this, I understand that it is possible to set the timestep within the ELN module. Right now, I've declared my module with SC_module(<name>). When I simply call set_timestep() I get this error: "'set_timestep' was not declared in this scope" When I call sca_eln::sca_module::set_timestep() I get this error: "cannot call member function 'virtual void sca_core::sca_module::set_timestep(const sca_time&)' without object" When I declare the module as SCA_ELN_MODULE(<name>) (like SCA_TDF_MODULE(<name>)) I get this error: "expected constructor, destructor or type conversion before '(' token" I guess my question is the following: is it possible to set the timestep in an ELN module? If so, how do I do this? Bonus question: I'm trying to find the User's Guide, but I seem to only be able to find the SystemC AMS LRM. If somebody could point me to the User's Guide, that would be very helpful! Thanks a lot in advance! My apologies for the (probably) stupid question.