一、 Vivado如何清理工程並保證不缺失必要文件
前言
vivado和ISE的使用差別很大,Vivado是專門針對7系列和以後系列的FPGA/AP SOC進行高效設計的工具,特別是最近提出的UltraFast設計方法,能夠極大地提高開發效率。ISE在支持老版本器件的基礎上,目前也支持7系列/ZYNQ的設計,但是效率不能和Vivado相比。關於vivado的基本使用這裏不多說,主要把一些問題點整理成“錯題集”,把一些小技巧進行歸納。
清理/壓縮工程
實際使用vivado的過程中,由於vivado會自動產生一系列文件,有些是不必要時刻保存的中間文件,有些是加快效率的文件(比如編譯IP核後產生的文件)。但是在上傳svn或者自己做備份的時候希望備份佔用儘量少的空間。然而由於vivado不會自動清理,所以這時候就需要我們做手動清理了,很多人採用的方法是根據經驗刪除沒用的文件和文件夾,這種對於不熟悉的人很容易犯下不可挽回的錯誤。也有人寫好了批處理文件可以直接幫助刪除的,但是這都不太適合初學者。其實vivado是有tcl命令可以幫助清理的。
reset_project
reset_projec
是vivado一個tcl命令,輸入後會發現所有的IP全部清掉了編譯後的文件,工程的綜合和實現也被清理掉了,所以會減少空間,下面我們用一個簡單的工程來對比下前後會少多少。
下圖爲某工程運行完成之後佔用的資源,佔用了176M。
對工程運行reset_project命令後如下圖所示,資源佔用105M,直接減少72M,也就是減少了40%!這個壓縮量還是比較可觀的。
復位後的影響
復位後是什麼效果呢?其實復位就是把裏面的綜合
和實現
清空,包括ooc下面的IP核等都清掉,這樣就只保留了最必要的文件,從而壓縮了佔用 空間。但是這樣也帶來一個問題,如果要重新產生一個可用的版本,需要的時間會更長,這個操作實際上也就是用空間換取了時間
,所以大家使用前要衡量下,不要隨便用,比較工程大了跑一次可能一天就沒了。
二、使用tcl命令保存vivado工程成.tcl文件和使用.tcl文件恢復vivado工程的方法
把vivado工程保存成.tcl文件,有兩種方法,分別是:
-
使用tcl命令:在打開的vivado工程中,在tcl命令輸入行,輸入如下命令,write_project_tcl { d:/work/system.tcl},即可把工程保存成.tcl文件。其中d:/work/是.tcl文件保存的路徑,可根據實際使用的需要更改,system.tcl是保存的文件名。
-
使用GUI操作:在打開的vivado工程中,依次點擊 File —》 Write Project to Tcl ,在Write Project To Tcl 界面設置相關參數(主要是tcl文件的保存路徑和文件名),即可把工程保存成.tcl文件。
使用.tcl文件恢復vivado工程,需要注意以下事項:
- 首先要打開.tcl文件,查看此.tcl文件是用哪個版本的vivado創建的,然後必須使用同樣版本的vivado軟件來運行此.tcl文件。因爲不同版本的vivado用的IP核可能不同,所以vivado版本必須先一致。
- 查看.tcl文件中的NOTE,把NOTE中提到的全部文件找到,並按相關提示修改.tcl文件中相關文件的路徑爲當前路徑。
使用.tcl文件恢復vivado工程,有以下兩種方法:
- 使用tcl命令:啓動vivado,在tcl console下,用cd命令將工作路徑指定到目標路徑,例如 cd d:/work/vivado_Project,在此路徑下保存有.tcl文件,然後輸入TCL命令 source ./system.tcl,即可完成恢復vivado工程。
- 啓動vivado,在vivado界面tools下,運行run tcl script,路徑指到system.tcl的保存路徑即可。
可以使用pwd
命令來查看當前路徑。