Jump to content

ralph.goergen

Members
  • Content Count

    146
  • Joined

  • Last visited

  • Days Won

    32

Reputation Activity

  1. Thanks
    ralph.goergen got a reaction from haase in Compiler error: using is_reset() with sc_signal<bool> in sc_signal.h   
    Hi.
    The is_reset method is private. So, you cannot call it on an object.
    But why are you using is_reset() method? What do you want to achieve?
    This is not part of the standard API, i.e. it might be dangerous to use.
    Greetings
    Ralph
     
  2. Like
    ralph.goergen got a reaction from maehne in Delta Cycle and concurrency   
    Hi.
    Maybe you should have a look at SystemC AMS. It offers the TDF (timed data flow) model of computation. It follows the data flow concept, i.e. you have a cluster of blocks; the solver defines an order of evaluation of each block; and in every time step, the blocks (or modules) are evaluated in that order. The output of one block is immediately visible at the input of the following block.
    Greetings
    Ralph
  3. Like
    ralph.goergen got a reaction from maehne in How to drive DUT clock and reset signal in UVM-SystemC?   
    Hi.
    This seems to be related to SystemC in general and not to UVM.
    sc_start() - without argument - starts the simulation until there is no activity anymore. No activity means no more events in the event queue. sc_clock generates new events all the time because the value changes independent from everything else in your design. As a result, the event queue will never be empty and the simulation never stops.
    (For completemess: the simulation ends as well when the maximum time is reached, i.e. the maximum time value that can be represented by sc_time).
    Normally, there are two ways to stop simulation, either by calling sc_start with a argument or by calling sc_stop.
    The first has been mentioned already by AmeyaVS. It runs the simulation for the given time and stops.
    The second can be done for instance from a testbench thread, e.g. from a sequencer when all sequences are done.
     
    Greetings
    Ralph
  4. Thanks
    ralph.goergen got a reaction from noay in Transaction Data Pointer   
    Hi.
    Normally the initiator is considered as owner of the payload, i.e. he should take care of allocating and de-allocating it.
    The target should decide how to use the data. If the target wants to keep it/store it, the target should make a copy of the data. In that sense, the transaction is completed when b_transport returns because the initiator transfered it to the target and the target had a chance to handle it.
    A benefit of this is that you do not need dynamic allocation of the buffer buf.
     
    Greetings
    Ralph
×
×
  • Create New...