Multithreading with the Vivado Tools - Multithreading with the Vivado Tools - 2025.2 English - UG904

Vivado Design Suite User Guide: Implementation (UG904)

Document ID
UG904
Release Date
2025-11-20
Version
2025.2 English

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