On multiprocessor systems, Vivado tools use multithreading to speed up certain processes, including DRC reporting, static timing analysis, placement, and routing. The maximum number of simultaneous threads varies, depending on the number of processors and task. The maximum number of threads by task is:
- DRC reporting: 8
- Static timing analysis: 8
- Placement: 8
- Routing: 8
- Physical optimization: 8
The default number of maximum simultaneous threads is based on the OS. For Windows
systems, the limit is 2; for Linux systems the default is 8. The limit can be changed
using a parameter called general.maxThreads
. To change the limit use
the following Tcl command:
Vivado% set_param general.maxThreads <new limit>
where the new limit must be an integer from 1 to 8, inclusive.
Tcl example on a Windows system:
Vivado% set_param general.maxThreads 2
This means all tasks are limited to two threads regardless of number of processors or the task being executed. If the system has at least eight processors, you can set the limit to 8 and allow each task to use the maximum number of threads.
Vivado% set_param general.maxThreads 8
To summarize, the number of simultaneous threads is the smallest of the following values:
- Maximum number of processors
- Limit of threads for the task
- General limit of threads