Vivado-jobs和threads的区别在哪?

描述

问题

Vivado中对工程进行综合时,会弹出如下对话框:

Vivado

所以,这里选择多个jobs能综合得更快吗?

很多人都会选多个jobs进行综合,觉得这样会更快一些,而且这个jobs的数量跟本地CPU的线程数是一致的,这就更让人信服这个选项就是多线程编译。

实际上,Vivado中的多线程是通过tcl命令设置的,且目前最大线程数为8个,所以这里的jobs和多线程有什么联系?使用多个jobs能加快综合的速度吗?

对于jobs,UG904中这样写道:

Vivado

所以,这里的jobs在同时有多个runs在跑的时候才会起效,如果只有一个Design run,那这个参数是不起效的。

而对于多线程,UG904中这样写到:

Vivado

在Implementation中,最多使用8个线程,在Windows上,默认是2线程,在Linux上,默认是8线程。我们可以通过tcl命令改变线程数,命令为:

set_param general.maxThreads 8

也可以获取当前使用的线程数:

get_param general.maxThreads

总结

对单个的design run来说,jobs的数量多少并不影响综合速度;

Windows中,默认的线程数是2,我们可以通过tcl命令来改变线程数,但每次打开工程后都要重新设置一下,多线程会使综合实现的时间缩短,但效果并不是特别明显;

有多个design runs时,jobs的数量是当前可以同时运行的design run的个数,jobs数量越多,可同时跑的design run越多,同时跑多个runs或者跑BD时可提高速度。







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分