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 maximum number of simultaneous threads depends on the OS. For
Windows systems, the limit is 2; for Linux systems the default is 8. You can change the
limit by 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
All tasks are limited to two threads, regardless of processor count or task you execute. If the system has at least eight processors, you can set the limit to 8. You can also 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