Under the old 3-step process (ncvlog+ncelab+ncsim), I could compile the testbench once. Then call ncsim multiple times to run the sim again(without recompiling.)
How do I do that with irun? What are the proper command-line switches?
In reply to Stewart:
I'll also add that, if you haven't updated the source code, using the exact same irun command line as used to compile the first time will behave the way you've described. irun will compare the timestamps of the source code files and if they are earlier than the snapshot, they won't be recompiled. If nothing is recompiled, the elaborator won't be run again either.
However, iIf you change the compiler's command-line options, then irun will recognize that and recompile when necessary.
The -r and -R options that Stewart mentioned are especially useful if you have changed a source file, but want to hold off recompiling 'til later.
I also in need of the same, compiling once and simulating that snapshot(INCA_libs) many times. If you have a solution, please share.
In reply to sivauvm:
On the first invocation of irun, add -elaborate to the command line. This will cause irun to perform compile and elaborate, creating a snapshot but not simulating.
The snapshot can then be simulated by using the irun -R option (or -r <snapshot>) that I described previously.
More detailed descrptions are availabe in the irun help: irun -helpall | grep "\-R"
Hope that helps,
In reply to tpylant:
Now I am able to do "compile once and simulate the snapshot many times" with irun.
One change in your command is it should be -nclibdirpath instead of -nclibdirname.
I am also thinking about this one-step/multi-step irun flow.
With one-step irun -nclibdirname $SNAPSHOT_DIR ... , my simulation works well and can be run anywhere. But later when I migrate this command into EManager, looks some of my cases terminated without running at all.
I think it is probably related to this one-step command may not work well in EManager with parallel simulation at the same time.
If I divide the irun by irun -c & irun -r , some questions below:
1. first invocation of irun with "-c" option, do I need to supply case name "+UVM_TESTNAME=$testname" ?
2, the second time when I want to sim only, what option is needed? Is it irun -R or irun -r ?
3. how to merge ifv commands into irun ?
I am now trying . if you can give some help meanwhile, very appreciated.