Jump to content
dakupoto

What does this SystemC 2.3 warning mean ?

Recommended Posts

Could some SystemC guru please shed light on the

following SystemC 2.3 warning? This is the model of

a simple inverter, with VCD file tracing in the test

harness, as well as console output.

SystemC 2.3.0-ASI --- Jul 19 2012 18:53:11

Copyright © 1996-2012 by all Contributors,

ALL RIGHTS RESERVED

Note: VCD trace timescale unit is set by user to 1.000000e-09 sec.

1e-09 1 0

2e-09 0 1

3e-09 1 0

Warning: (W571) no activity or clock movement for sc_start() invocation

In file: sc_simcontext.cpp:1606

3e-09 0 0

Trace Warning:

Multiple cycles found with same (3) time units count.

Waveform viewers will only show the states of the last one.

Use ((vcd_trace_file*)vcdfile)->sc_set_vcd_time_unit(int exponent10_seconds)

to increase time resolution.

4e-09 1 0

5e-09 0 1

6e-09 1 0

Info: /OSCI/SystemC: Simulation stopped by user.

Share this post


Link to post
Share on other sites

3e-09 1 0

Warning: (W571) no activity or clock movement for sc_start() invocation

In file: sc_simcontext.cpp:1606

3e-09 0 0

Trace Warning:

Multiple cycles found with same (3) time units count.

Waveform viewers will only show the states of the last one.

Use ((vcd_trace_file*)vcdfile)->sc_set_vcd_time_unit(int exponent10_seconds)

to increase time resolution.

(Rather wild guess based on the output:) At 3ns, you start the simulation via sc_start() (with no parameters), although there is no pending activity in your system (no processes need to be run, no events unprocessed, …). Therefore, the simulation returns immediately, without any changes and the simulation time stays the same.

The following trace warning is probably a follow-up problem caused by the testbench code.

You can avoid such empty calls, by checking for pending activity first:

if( sc_pending_activity() )
 sc_start();

Alternatively, you can run the simulation with an explicit time step, which at least moves the simulation time (depending on the sc_starvation_policy).

/Philipp

Edited by Philipp A. Hartmann

Share this post


Link to post
Share on other sites

Hello Phillip,

Actually, I do have sc_start with non-zero arguments,

as sc_core::sc_start(1.0, sc_core::SC_NS);

It seems like, and I am not sure, that there was some

clash with the VCD file creation. I have used similar

sc_start statements, with VCD file creation in other

modules, but there was no problem.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×