vcs-parallel

Introduce vcs parallel technologies.

compile

Add below options at compile time

1
2
3
-j<number_of_processs>
Specifies the number of process to use for parallel compilation.
There is no space between the j character and the number.

For example.

1
vcs -j4 .....

simulation

The rapid growth in the number of available cores per processor, in addition to the fast evolving vectorization support, enables next generation simulation technologies, such as VCS’ new Fine-Grained
Parallelism (FGP). With this technology, you can gain the complete advantage of the newly available compute power to reduce the total turnaround time for simulation.

VCS FGP technology is designed to take advantage of the heterogeneous environments that consists of any combination of processors and vector cores. It improves the performance by adapting its algorithms dynamically to completely utilize all the available cores. This optimizes the simulation for latency sensitive
tests.

For two-step flow and three-step flow, add the option -fgp in VCS command line. At runtime, you need to specify the number of cores that you want to utilize for the parallel engines. So, if you specify 12 threads for the parallel engines and run the top design, you can see 13 cores being utilized for your simulation as one extra core is used by the master for running serial and parallel simulation.

Two-step flow:

1
2
% vcs -fgp -full64 <otherOptions>
% simv -fgp=[FGP-OPTIONS]

Three-step flow:

1
2
3
4
% vlogan -full64 <otherOptions>
% vhdlan -full64 <otherOptions> (for Mixed-HDL design only)
% vcs -fgp -full64 <otherOptions>
% simv -fgp=num_threads:<value>

Where, the -fgp option is used to enable FGP at compile-time or at runtime.
If you specify the -fgp option at compile time, and do not specify the option at runtime, simv runs on a single core.
Note: The -fgp option works only in 64-bit mode

You can use the num_threads: \<value> runtime option to specify the number of cores. \<value>+1 cores are picked that includes one master core and \<value> child cores.

Note: NOT the more threads the faster.

Summary

If you want to the fastest compilation and simulation, please use below options.

1
2
vcs -full64 -j4 -fgp ...
simv -fgp=num_threads:10,num_fsdb_threads:8 ...