标签归档:Vivado

Vivado多线程综合问题

今日群友闲聊时提到Vivado的多线程综合相关问题。猴哥引用了Xilinx的UG904文档[1]。

其中说明,Windows下综合时默认使用2线程,Linux下综合时默认使用8线程。

如果想要更改的话,需要在Vivado的TCL窗口中使用下列命令:

Vivado% set_param general.maxThreads <new limit>

其中,new limit可以是1~8之间的任意一个值。

感谢猴哥[坏笑]!

为方便起见,将对应的文档粘贴过来,方便阅读。

Multithreading with the Vivado Tools

On multiprocessor systems, Vivado tools use multithreading to speed up certain processes,including DRC reporting,statictiming analysis, placement, and routing. The maximum number ofsimultaneous threads varies, depending on the number of processors and task. The maximumnumber of threads by task is:

  • DRC reporting: 8
  • Statictiming 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 taskbeing executed. If the system has at least eight processors, you can set the limit to 8 and alloweach 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

参考资料:
[1] UG904 https://www.xilinx.com/support/documentation/sw_manuals/xilinx2021_1/ug904-vivado-implementation.pdf