Jump to content

Search the Community

Showing results for tags 'hierarchical bind'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Accellera Systems Initiative
    • Information
    • Announcements
    • In the News
  • SystemC
    • SystemC Language
    • SystemC AMS (Analog/Mixed-Signal)
    • SystemC TLM (Transaction-level Modeling)
    • SystemC Verification (UVM-SystemC, SCV)
    • SystemC CCI (Configuration, Control & Inspection)
  • UVM (Universal Verification Methodology)
    • UVM 2017 - Methodology and BCL Forum
    • UVM SystemVerilog Discussions
    • UVM Simulator Specific Issues
    • UVM Commercial Announcements
    • UVM (Pre-IEEE) Methodology and BCL Forum
    • UVM 1.2 Public Review
  • Portable Stimulus
    • Portable Stimulus Pre-Release Discussion
    • Portable Stimulus 1.0
  • IP-XACT
    • IP-XACT Discussion
  • IEEE 1735/IP Encryption
    • IEEE 1735/IP Encryption Discussion
  • OCP (Open Core Protocol)
  • UCIS (Unified Coverage Interoperability Standard)
  • Commercial Announcements
    • Announcements

Categories

  • SystemC
  • UVM
  • UCIS
  • IEEE 1735/IP Encryption

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests


Biography


Location


Interests


Occupation


Company

Found 1 result

  1. I just downloaded the SystemC 2.3.2 and found that the same design works in 2.3.0 but doesn't work in 2.3.2. The design utilizes the hierarchical bind as: initiator->parent_target->target It reports error with SystemC 2.3.2: Error: /OSCI_TLM-2/multi_socket: parent_target.multi_passthrough_target_socket_0: Call to b_transport without a registered callback for b_transport The b_transport is registered for target but not for parent_target. This used to be work fine in 2.3.0. Am I missing something here? Full code: #include <systemc.h> #include <tlm.h> #include "tlm_utils/multi_passthrough_initiator_socket.h" #include "tlm_utils/multi_passthrough_target_socket.h" #define SC_INCLUDE_DYNAMIC_PROCESSES using namespace std; using namespace sc_core; using namespace tlm; class target : public sc_module { public: target( sc_module_name module_name ) { cout << "Construct target" << endl; t00.register_b_transport(this, &target::b_transport); } tlm_utils::multi_passthrough_target_socket<target> t00; void b_transport(int ID, tlm::tlm_generic_payload& bp, sc_time& delay) { cout << "Calling t00 b_transport" << endl; } }; class parent_target : public sc_module { public: parent_target( sc_module_name module_name ) { cout << "Construct parent_target" << endl; p_target = new target("target"); t0.bind(p_target->t00); } tlm_utils::multi_passthrough_target_socket<parent_target> t0; target *p_target; }; class initator : public sc_module { public: initator( sc_module_name module_name ) { cout << "Construct initator" << endl; SC_THREAD(thread0); } tlm_utils::multi_passthrough_initiator_socket<initator> i0; SC_HAS_PROCESS(initator); void thread0 (void) { cout << "Enter thread0" << endl; tlm_generic_payload p0; sc_time delay = SC_ZERO_TIME; i0->b_transport(p0, delay); cout << "Exit thread0" << endl; } }; int sc_main(int argc, char* argv[]) { initator m_initator("initator"); parent_target m_parent_target("parent_target"); m_initator.i0.bind(m_parent_target.t0); sc_start(); return (0); }
×