Jump to content


  • Posts

  • Joined

  • Last visited

About ankushKumar

  • Birthday 10/15/1991

Profile Information

  • Gender
  • Location

Recent Profile Visitors

415 profile views

ankushKumar's Achievements


Member (1/2)



  1. i_top is the top module where i am biniding my testbench with my systemc model through initiator socket and target socket. Secondly, my model also have top model where i have binded parent child binding and also internal initiator and target socket binding.
  2. Hi Alan, in class B what actualy i am doing is : class B : public sc_module, public my_tlm_interface_forward , public my_tlm_interface_backward{ tlm::tlm_target_socket<BUS_WIDTH> target_socket; tlm::tlm_initiator_socket<BUS_WIDTH> initiator_socket; E *e; B(sc_module_name name):sc_module(name),target_socket("target_socket"){ target_socket(*this); initiator_socket(*this); e = new E(this); // IN THIS e I AM ALSO utilizing THE BACKWard interface } }
  3. in Constructor bind() is not required for parent child binding.
  4. Hi, here is the decription of class A class A{ public : tlm::tlm_target_socket<BUS_WIDTH> target_socket; void b_transport(tlm::tlm_generic_payload& trans, sc_core::sc_time &t){} A(sc_module_name name):sc_module(name),target_socket("target_socket"){ target_socket(*this); } }
  5. Hello All, I am trying to create a generic TLM interface for 2 to 3 modules . In which i am virtually inherting the tlm interface . But i am getting an error . Could you tell me the cause of error. example class A : public sc_module, public my_tlm_interface_fw{ }; class B : public sc_module, public my_tlm_interface_forward , public my_tlm_interface_backward{ } class C : public sc_module, public my_tlm_interface_backward{ } and binding C->initiator(B->target) B->initiator(A->target) Error: (E124) sc_export instance not bound to interface at end of construction: export 'i_top.tlm_base_initiator_socket_export_0' (sc_export) In file: ../../../../src/sysc/communication/sc_export.cpp:135
  6. Hello all, i am using tlm socket and declared as following tlm_utils::simple_initiator_socket_tagged<current_model> initiator_socket[2]; // in construcot initiator_socket[0] = new tlm_utils::simple_initiator_socket_tagged<current_model>("socket0"); initiator_socket[1] = new tlm_utils::simple_initiator_socket_tagged<current_model>("socket1"); error: no match for ‘operator=’ (operand types are ‘tlm_utils::simple_initiator_socket_tagged<current_model<unsigned int, 32u>, 32u, tlm::tlm_base_protocol_types>’ and ‘tlm_utils::simple_initiator_socket_tagged<current_model<unsigned int, 32u>, 32u, tlm::tlm_base_protocol_types>*’) initiator_socket[0] = new tlm_utils::simple_initiator_socket_tagged<current_model>(txt);
  7. Is there any scenario/need for mapping TLM 2.0 with flash interface ? If yes kindly tell the approach for connecting flash interface with TLM 2.0 interface ?
  8. hello i got that but would like to know what exactly happening. see class A:public sc_module{ public : A(){ SC_THREAD(funcA); } SC_HAS_PROCESS(A); void funcA(){ funcB(); } void funcB(){ wait(100,SC_NS); } } Now funcA is a thread thus registered with the systemc scheduler. what about funcB it is a C++ based function having wait whether it gets registered with systemc kernel since a normal c++ function cannot suspend.
  9. Hello all, I have doubt regarding use of c++ function inside systemc threads. It is said that a normal c++ function which is declared in a class inherting systemc module and called inside the thread of that class shall be executed based c++ kernel simulation not on the basis of systemc scheduler therefor it won't wait for an event or time if introduced in it. Is that true ? But in my code nothing as such is happening the function is waiting for time introduced in it. Regards.
  10. Hello, incrementing/decrementing the counter at every clock tick slow downs the simulation process that why David has recommended for the second method.
  11. May i know what's the difference it will create if have a timed notification or have wait after every increment or decrement. I mean a timed notification will also notify after a dalay that has been provided.
  12. Hello All, I need some strong suggestion regarding modeling of TIMER. I am new in systemc. Want to know what are the things a best model should consist of and how its modeling should be done ? Since timer has a clock time period, should i model it in by incrementing/decrementing the counter and applying a delay for timer period or i should model it without any delay by using sensitivity to the new write in register and decremnting/ incrementing the counter value by evaluating the current time period and previous sensitivity time period by clock time period. With Warm Regards.
  13. First, execution order does not depend on the notification order. Changing the order of notification will not change the thread execution order. Greetings Ralph Hiii Raplh Is it like that the execution order and notification order is independent of simulation kernel
  14. SC_THREAD(A) SC_THREAD( B ) SC_THREAD( C ) A(){ while(1){ wait(e_A); e_B.notify(SC_ZERO_TIME); e_C.notify(SC_ZERO_TIME); ------- } } B(){ while(1){ wait(e_B ); ------- ------- } } C(){ while(1){ wait(e_C); ------- ------- } } In the above case acc. to systemc scheduler the threads will be notified in delta phase. Now my question is, whether its a nodeterminstic condition which of the thread will run 1st b or c , or is it like that the one notified 1st will get the control 1st.
  • Create New...