問題
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時可提高速度。
審核編輯:劉清
-
Vivado
+關注
關注
19文章
812瀏覽量
66547
原文標題:Vivado-jobs和threads的區別
文章出處:【微信號:FPGA通信小白成長之路,微信公眾號:FPGA通信小白成長之路】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論