SumitK

Members
  • Content count

    6
  • Joined

  • Last visited

  1. Hi Ralph I tried as you suggested(see below). I still have the same issue. #include <iostream> #include <systemc.h> using namespace std; class Foo: public virtual sc_module { public: Foo(sc_module_name name):sc_module(name) { } }; class Bar : public virtual sc_module { public: Foo foo; Bar(sc_module_name name) : foo(name) { } }; int sc_main(int argc, char* argv[]){ Bar b("b"); sc_start(); return 0; } Thanks Sumit
  2. Hi With the following code, I am getting the error "Error: (E513) an sc_module_name parameter for your constructor is required" I am not able to understand why ? Can anyone help please #include <iostream> #include <systemc.h> using namespace std; class Foo: public virtual sc_module { public: Foo(sc_module_name val) { } }; class Bar : public virtual sc_module { public: Bar(sc_module_name name) : foo(name) { } Foo foo; }; int sc_main(int argc, char* argv[]){ Bar b("b"); sc_start(); return 0; } Thanks Sumit
  3. Hi Philipp The following code is working fine on 2.3.0 but giving port not bound error with 2.3.1. #include "tlm.h" #include "systemc.h"   using namespace std;   #include <tlm_utils/multi_passthrough_initiator_socket.h> #include <tlm_utils/multi_passthrough_target_socket.h>   class initiator : public sc_module { private:   public : tlm_utils::multi_passthrough_initiator_socket<initiator,32, tlm::tlm_base_protocol_types,0,::sc_core::SC_ZERO_OR_MORE_BOUND> AXI_Master; tlm_utils::multi_passthrough_target_socket<initiator,32, tlm::tlm_base_protocol_types,0,::sc_core::SC_ZERO_OR_MORE_BOUND> AXI_Slave;   SC_HAS_PROCESS(initiator); initiator(sc_module_name name){ AXI_Slave.register_b_transport(this,&initiator::b_transport); AXI_Slave.register_transport_dbg(this,&initiator::transport_dbg); AXI_Slave.register_get_direct_mem_ptr(this,&initiator::get_direct_mem_ptr);   AXI_Master.register_invalidate_direct_mem_ptr(this,&initiator::invalidate_direct_mem_ptr); SC_METHOD(run); } virtual tlm::tlm_sync_enum nb_transport_bw(int id,tlm::tlm_generic_payload &,tlm::tlm_phase &,sc_core::sc_time &){return tlm::TLM_ACCEPTED;} virtual void invalidate_direct_mem_ptr(int id,sc_dt::uint64 start_range,sc_dt::uint64 end_range){}   virtual bool get_direct_mem_ptr(int id,tlm::tlm_generic_payload& trans,tlm::tlm_dmi& dmi_data){return false;} virtual unsigned int transport_dbg(int id,tlm::tlm_generic_payload& r){return 0;} void b_transport(int id,tlm::tlm_generic_payload& trans, sc_core::sc_time &t){} tlm::tlm_sync_enum nb_transport_fw(int id,tlm::tlm_generic_payload& trans, tlm::tlm_phase& phase, sc_core::sc_time& t){return tlm::TLM_ACCEPTED;}   void run(){}   ~initiator(){} };   int sc_main(int argc, char** argv){ initiator* initiator_inst = new initiator("initiator_inst"); sc_start(0,SC_NS); return 0; }      
  4. Hi Alain In Systemc 2.3.1 if I left the following ports unbounded, I get elaboration error (Error: /OSCI_TLM-2/multi_socket: ERROR in instance memory_inst.AXI_Slave: Not bound to tlm_socket) tlm_utils::multi_passthrough_initiator_socket<initiator, 32, tlm::tlm_base_protocol_types,0,SC_ZERO_OR_MORE_BOUND> AXI_Master; tlm_utils::multi_passthrough_target_socket<initiator, 32, tlm::tlm_base_protocol_types,0,SC_ZERO_OR_MORE_BOUND> AXI_Slave; But in 2.3.0, there were no elaboration error with that. Thanks Sumit
  5. In one of my use case I have following ports in my module tlm_utils::multi_passthrough_initiator_socket<initiator, 32, tlm::tlm_base_protocol_types,0,SC_ZERO_OR_MORE_BOUND> AXI_Master; tlm_utils::multi_passthrough_target_socket<initiator, 32, tlm::tlm_base_protocol_types,0,SC_ZERO_OR_MORE_BOUND> AXI_Slave; These two ports are optional not bound at top level. For that I clearly specify the N=0 and POL=SC_ZERO_OR_MORE_BOUND. In systemc2.3.0, I didn't get any elaboration error with this use case but when I switch to systemc 2.3.1, I get the following errors Error: /OSCI_TLM-2/multi_socket: ERROR in instance memory_inst.AXI_Slave: Not bound to tlm_socket. In file: /usr2/pwcd/sw/systemc-2.3.1a/include/tlm_utils/multi_passthrough_target_socket.h:113 Is there some specific reason for this ? Is we can not keep such ports unconnected even with N=0 and POL=SC_ZERO_OR_MORE_BOUND. Thanks Sumit K