Jump to content

Recommended Posts

Posted

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.

Posted (edited)

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
Posted

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.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...