问题
Vivado中对工程进行综合时,会弹出如下对话框:
所以,这里选择多个jobs能综合得更快吗?
很多人都会选多个jobs进行综合,觉得这样会更快一些,而且这个jobs的数量跟本地CPU的线程数是一致的,这就更让人信服这个选项就是多线程编译。
实际上,Vivado中的多线程是通过tcl命令设置的,且目前最大线程数为8个,所以这里的jobs和多线程有什么联系?使用多个jobs能加快综合的速度吗?
对于jobs,UG904中这样写道:
所以,这里的jobs在同时有多个runs在跑的时候才会起效,如果只有一个Design run,那这个参数是不起效的。
而对于多线程,UG904中这样写到:
在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时可提高速度。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !