Jump to content

iherrera

Members
  • Content Count

    2
  • Joined

  • Last visited

  1. Thankyou for catching it, the for loop syntax was the bug...(suprisingly compiles correctly!) I have followed your suggestion, and with sc_vector the code is nice and compact: sc_vector< FRAME > frames; Then in the parent module constructor, simply: ... : sc_module(nm) , frame("frame") ... frame.init(10); However I have a new issue now, as I need a higher number of instances. I have searched for the limit, and above 8000 instances the simulation breaks: E549 uncaught exception: std::bad_alloc I guess it depends on the size of the child module and on the host memory capacity, but I just wonder if there is any hard-coded limit in the number of child modules one can instantiate with sc_vector. Could you please let me know? Thanks.
  2. Hi there, I have created a SC_MODULE that has a member consisting on an array of pointers to another SC_MODULE: SC_MODULE(CLAYER_MEM) { FRAME *pframe[10]; SC_CTOR(CLAYER_MEM); } }; In the SC_CTOR declaration I have tried two different syntax for dynamic allocation, both compiling successfully: 1) Allocation with loop for(uint i=0;i++;i<9) { pframe = new FRAME("frame_"); } (Note: I do not care too much at this point about the name assigned to each instance, as long as it is predictable) 2) Allocation without loop pframe[0] = new FRAME("frame_0"); pframe[1] = new FRAME("frame_1"); pframe[2] = new FRAME("frame_2"); pframe[3] = new FRAME("frame_3"); pframe[4] = new FRAME("frame_4"); pframe[5] = new FRAME("frame_5"); pframe[6] = new FRAME("frame_6"); pframe[7] = new FRAME("frame_7"); pframe[8] = new FRAME("frame_8"); pframe[9] = new FRAME("frame_9"); Obviously I prefer the first one because it is more compact, but I have notice that in RUTIME: 1) with loop, I do not see on screen the result of FRAME constructor calls 2) without loop, I clearly see on screen that FRAME constructor is called for every instance Therefore I assume that the loop construction is wrong, but could you please explain to me why? Thankyou in advance.
×