• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Functional Verification
  3. Spectre processes sleep for random interval

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 65
  • Views 12782
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Spectre processes sleep for random interval

Khenglish
Khenglish over 9 years ago

I have a program which creates spectre simulation processes. It can do multiple simulations concurrently, however, even when running just one simulation, the spectre process will sleep a random interval between 0 and 15 seconds prior to doing any work. This interval is literally random, as running the same exact circuit again will produce a different sleep interval.

The waiting channel in the system monitor is listed as "poll_schedule_timeout" while the process is sleeping.

I have tried two different versions of spectre. The version found within mmsim121 produces more consistent results, with delay times usually around 5 seconds. The version within mmsim72 is much more varied, sometimes with no delay, and other times with a 15 second delay.

Below is command line output showing the problem area:

Aggregate audit (3:26:14 PM, Tue Nov 10, 2015):
Time used: CPU = 8.79 s, elapsed = 15.5 s, util. = 56.6%.
Time spent in licensing: elapsed = 6.04 s, percentage of total = 38.9%.
Peak memory used = 47.3 Mbytes.
Simulation started at: 3:25:59 PM, Tue Nov 10, 2015, ended at: 3:26:14 PM, Tue
        Nov 10, 2015, with elapsed time (wall clock): 15.5 s.
spectre completes with 0 errors, 13 warnings, and 9 notices.
0 pausing for new file
2 pausing for new file
4 pausing for new file
1 pausing for new file
3 pausing for new file
5 pausing for new file
0 pausing for new file
2 pausing for new file
4 pausing for new file
1 pausing for new file
3 pausing for new file
5 pausing for new file
0 pausing for new file
2 pausing for new file
4 pausing for new file
1 pausing for new file
3 pausing for new file
5 pausing for new file
Reading file:  /tmp/sim_englik/netlist/input_rev4.scs
Reading file:  /tmp/sim_englik/netlist/input_rev2.scs
Reading file:  /tmp/sim_englik/netlist/input_rev1.scs
Reading file:  /home/rhome/reesj2/RSFQ_LLv1/@jjvccs/veriloga/veriloga.va
Reading file:  /home/rhome/reesj2/RSFQ_LLv1/@jjvccs/veriloga/veriloga.va
Reading link:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/constants.h
Reading file:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/constants.vams
Reading link:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/discipline.h
Reading file:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/disciplines.vams
Reading link:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/constants.h
Reading file:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/constants.vams
Reading link:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/discipline.h
Reading file:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/disciplines.vams
Reading file:  /home/rhome/reesj2/RSFQ_LLv1/@jjvccs/veriloga/veriloga.va
Reading link:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/constants.h
Reading file:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/constants.vams
Reading link:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/discipline.h
Reading file:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/disciplines.vams
Reading file:  /home/rhome/reesj2/RSFQ_LLv1/@ICQ/veriloga/veriloga.va
Reading file:  /home/rhome/reesj2/RSFQ_LLv1/@ICQ/veriloga/veriloga.va

Time for NDB Parsing: CPU = 68.988 ms, elapsed = 3.10732 s.
Time accumulated: CPU = 68.988 ms, elapsed = 3.10732 s.
Peak resident memory used = 39.5 Mbytes.

The above example is where I started 6 Spectre simulations. Up to an including the "Aggregate Audit" sections, all 6 Spectre processes are behaving normally. The "(number) pausing for new file" line is my processes checking for simulation results failing to find an output tran.tran file from its respective spectre simulation. During this time the spectre simulations are listed as "sleeping" in the system monitor. These processes check for a tran.tran file every second, so with 3 printouts for each simulation in the example above, spectre did nothing for 3 seconds. After these 3 seconds eventually 3 of the spectre processes wake up and begin doing work. While not shown here, the other 3 processes wake up a few seconds later.


My Spectre exec command. input_file and dest_str are variables.

execlp("spectre","spectre",input_file, "+escchars", "-checkpoint", "-format", "psfascii", "-raw", dest_str,NULL);


This issue is drastically slowing down my simulation rate, as each simulation only takes roughly 7 seconds. Any ideas on why spectre is sleeping would be appreciated.

  • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information