Jump to content

Search the Community

Showing results for tags 'processes'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • 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, CRAVE, FC4SC)
    • SystemC CCI (Configuration, Control & Inspection)
    • SystemC Datatypes
  • UVM (Universal Verification Methodology)
    • UVM (IEEE 1800.2) - Methodology and BCL Forum
    • UVM SystemVerilog Discussions
    • UVM Simulator Specific Issues
    • UVM Commercial Announcements
    • UVM (Pre-IEEE) Methodology and BCL Forum
  • Portable Stimulus
    • Portable Stimulus Discussion
    • Portable Stimulus 2.0 Public Review Feedback
  • IP Security
    • SA-EDI Standard Discussion
    • IP Security Assurance Whitepaper Discussion
    • IP-XACT Discussion
  • SystemRDL
    • SystemRDL Discussion
  • IEEE 1735/IP Encryption
    • IEEE 1735/IP Encryption Discussion
  • Commercial Announcements
    • Announcements


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


  • Community Calendar

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL












Found 1 result

  1. My design includes communication between 5 different modules. Let's say the modules are 1, 2, 3, 4 and 5. The communication takes place between modules 4 and 5 first, they exchange four messages between them but once that is done communication should take place between 4 and 1, then 5 and 1. Once that is done, then 4 and 2, then 5 and 2. And similarly 4 and 3, then 5 and 3. When I started writing the design between 4 and 5 using cthreads and wait(), that worked fine. But once that is done, I can't seem to start the communication between modules 4 and 1. I guess I still didn't wholly understand the concept of processes and wait(), but could someone suggest how to go about this? module4.h module5.h //input and output ports are defined //input and output ports are defined //sc_cthread(func4, clk.pos()) //sc_cthread(func5, clk.pos()) module4.cpp module5.cpp //void module4::func4 //void module5::func5 //while(true) //while(true) //send message1; wait(); //receive message1; send message2; wait(); //receive message2; send message3; wait(); //receive message3; send message4; wait(); //receive message4; wait(); It was working fine when I just had only these two modules at first. I wrote a value to the signal which connects module4 and module5 from the main function and these two started communicating just the way I wanted. Then, module1.h was defined. //input and output ports are defined //sc_cthread(func1, clk.pos()) module4.cpp module1.cpp //send message5; wait(); //receive message5(); wait(); But when I defined module1 just the way I defined modules4 and 5, the communication stopped after sending message1 in module4. Module5 didn't seem to receive message1. Can someone point out how to go about this? I know I probably am not using wait() statements the way they are meant to be used, so any help will be much appreciated. Thanks!
  • Create New...