Jump to content

KEVIN CHACKO

Members
  • Content Count

    10
  • Joined

  • Last visited

About KEVIN CHACKO

  • Rank
    Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi , Yes by adding the raise and drop phase objection the problem is solvable, but not all run phase can afford having these objections. For eg: top_uvm2 is a uvm component that has a run phase which has a thread that has to be run forever; like a driver component. It cannot have phaise raise or drop objections because of this reason. top_uvm2 is instantiated inside top_uvm1 component. top_uvm1 component has a phase raise and drop objections to make sure the phase is persistent and does not get over. If the threads in top_uvm2 are in a SC_JOIN or SC_JOIN_None imp
  2. Hi Philip, Here is the output of the simulation. I have observed that it works fine when you include phase.raise() and phase.drop() objection inside the run_phase. Well there are instances where you cannot afford to have these objections in every run_phase. SystemC 2.3.2-Accellera --- Dec 18 2018 15:43:13 Copyright (c) 1996-2017 by all Contributors, ALL RIGHTS RESERVED Universal Verification Methodology for SystemC (UVM-SystemC) Version: 1.0-beta2 Date: 2018-10-24 Copyright (c) 2006 - 2018 by all Contributors
  3. The wait statements inside the dynamically spawned threads are the cause of the problem. The waits cause the threads to terminate without completing.
  4. I am trying to implement SC_JOIN any in a uvm component run phase analogous to SystemVerilog UVM, but the wait statements inside the threads are not executing in the run phase. It will work fine if I use SC_THREAD instead. Here is my code: The code is fine for SC_JOIN all and SC_JOIN NONE implementation. And apparently this issue is there for every uvm_component I instantiate. #include<systemc.h> #include<uvm> template <int TOP_DEPTH=10> class top: public uvm::uvm_component{ public: void fun1() { cout<<"Current
  5. Yes I could see that it work fine with regular SC_THREAD. Thanks for the help though.
  6. Sure The code is fine for SC_JOIN all and SC_JOIN NONE implementation. And apparently this issue is there for every uvm_component I instantiate. #include<systemc.h> #include<uvm> template <int TOP_DEPTH=10> class top: public uvm::uvm_component{ public: void fun1() { cout<<"Current time is "<< sc_time_stamp() << endl; cout<< " =========== fun1========" << endl; wait(30,SC_NS); cout<<"Current time is "<< sc_time_stamp() << endl; } void
  7. Thank your for the help. But when I try implementing the fork_join any solution, I get this error invalid use of sc_(and|or)_event_list: list prematurely destroyed I am using the fork join any in a run phase process of a uvm systemc driver. This issue is reported specifically for 40th agent i am running out of 65 agents. Is it because the size of the process handles or the terminated_event list getting exhausted
  8. How can I have a virtual interface in systemC analogous to systemverilog
  9. How can i implement SC_FORK JOIN_ANY and SC_FORK JOIN_NONE in systemC which is analogous to systemverilog
×
×
  • Create New...