在Vivado下,有兩種方式管理IP。一種是創建FPGA工程之后,在當前工程中選中IP Catalog,生成所需IP,這時相應的IP會被自動添加到當前工程中;另一種是利用Manage IP,創建獨立的IP工程,缺省情況下,IP工程的名字為magaged_ip_project。在這個工程中生成所需要的IP,之后把IP添加到FPGA工程中。Xilinx推薦使用第二種方法,尤其是設計中調用的IP較多時或者采用團隊設計時。Tcl作為腳本語言,在FPGA設計中被越來越廣泛地使用。借助Tcl可以完成很多圖形界面操作所不能完成的工作,從而,可提高設計效率和設計自動化程度。Vivado對Tcl具有很好的支持,專門設置了Tcl Shell(純腳本模式)和Tcl Console(圖形界面模式)用于Tcl腳本的輸入和執行。本文介紹了如何利用Tcl腳本在Manage IP方式下實現對IP的高效管理。
Manage IP的特點:
(1)Vivado在Manage IP模式下只顯示IP Catalog,便于直觀地定制IP;
(2)IP工程目錄獨立于FPGA工程目錄,可獨立管理并便于IP復用;
(3)對IP采用OOC(Out-of-Context)的綜合方式,生成相應的DCP文件,添加到FPGA工程中,無需再次綜合;
與ISE Core Generator的不同之處:
(1)ISE Core Generator不同IP的生成文件會在同一目錄下,而Vivado下每個IP有獨立的文件夾,該文件夾下包含了IP所有相關文件,這為IP復用提供了便利;
(2)ISE Core Generator生成的IP定制文件為.xco,Vivado生成IP的定制文件為.xci;
(3)ISE Core Generator生成的網表文件為.ngc,Vivado生成的網表文件為.dcp,DCP不僅包含網表文件還包含約束文件;
(4)ISE Core Generator不支持Tcl腳本,Vivado則支持Tcl腳本;
Vivado下IP生成文件:
(1)用于綜合的RTL文件和約束文件;
(2)實例化模板文件;
(3)行為級仿真文件;
(4)綜合后的網表文件DCP;
(5)用于第三方綜合工具的Stub文件;
(6)例子工程;
生成文件是可以定制的,這可通過generate_target命令完成,同時,生成的文件也可以通過reset_target被清除掉,如Tcl腳本 1所示。
Vivado下每個對象都有自己的屬性,這些屬性可通過report_property顯示。managed_ip_project的屬性如圖 1所示。圖中綠色線條標記了該工程所在目錄;紅色方框MANAGED_IP屬性值為1,表明該工程為IP工程;藍色方框是我們創建或修改IP工程設置時最常用的一些屬性。Tcl腳本 2中第1行語句用于顯示IP工程屬性,第2~4行語句用于設置仿真工具、目標語言和芯片型號。set_property命令的第一個參數為屬性名,第二個參數為屬性值,第三個參數為屬性所屬對象。
采用Vivado Manage IP創建IP工程后,可能會遇到以下情況:(1)軟件版本升級,例如Vivado由2013.4升級至2014.2;(2)芯片型號改變,例如芯片型號由XC7K325TFFG676-2變為XC7K160TFFG676-2;(3)A項目中的一些IP在B項目中也被使用,且這些IP參數配置完全相同。上述三種情況均可通過Tcl命令完成。
第一種情況:軟件版本升級
假如用Vivado 2013.4創建的IP工程,當軟件版本升級至2014.2時,需要將IP重新生成。此時,若用Vivado 2014.2打開該工程會彈出如圖 2所示的對話框。選擇圖中藍色方框標記的選項打開工程,通過report_ip_status命令顯示當前IP狀況,如圖 3所示。
圖 3中藍色方框顯示了IP處于鎖定狀態,可通過get_property查看IS_LOCKED屬性確定;紅色方框顯示了IP當前版本號和建議升級到的新版本號。相應的Tcl腳本如Tcl腳本 3所示。對處于鎖定狀態的IP可選擇升級,這可通過Tcl腳本 4完成指定IP的升級。Tcl腳本 4可內嵌到Vivado中作為用戶常用命令。
第二種情況:芯片型號改變
若芯片型號改變,首先要對舊型號芯片對應的工程做備份處理,這可通過archive_project命令完成;然后修改芯片型號。相應的Tcl腳本如Tcl腳本 5所示。完成這些操作之后,會發現IP處于鎖定狀態,此時可通過Tcl腳本 4對IP升級。
第三種情況:A項目中的一些IP在B項目中也被使用,且這些IP參數配置完全相同
在這種情況下,可將A項目中的IP導入到B項目的IP工程中,這可通過import_ip命令完成,如Tcl腳本 6所示。Import_ip的第一個參數為原始IP所在目錄,第二個參數為該IP的新名字,缺省情況下與原始IP名一致。導入之后,可通過Tcl腳本 4重新生成IP。
如前所述,Vivado下生成的IP都有獨立的文件目錄,在添加IP到Vivado FPGA工程中時,若采用圖形界面方式就需要一個一個地瀏覽到IP所在文件目錄,找到.xci文件,然后添加到工程中,如果調用的IP較多,顯然這種方式不夠高效。此時可用Tcl腳本 7所示的Tcl命令找到所有IP相關文件,文件類型可以是xci或dcp。該命令會返回完整的文件路徑,如Tcl腳本 6中的文件路徑。然后通過add_files命令將其添加到當前工程中。
此外,有些IP會有例子工程,這些例子工程帶有完整的測試激勵,可對IP進行仿真,以理解IP的輸入/輸出時序,也可單獨生成bit文件。可通過open_example_project命令打開例子工程,如Tcl腳本 8所示。
與ISE Core Generator相比,Vivado Manage IP對IP的管理更加便捷,加之Vivado對Tcl腳本的支持,利用Tcl腳本可實現對IP更高效的管理,進一步加強FPGA設計自動化的程度。
審核編輯:黃飛
-
FPGA
+關注
關注
1629文章
21729瀏覽量
602993 -
TCL
+關注
關注
10文章
1722瀏覽量
88566 -
Vivado
+關注
關注
19文章
812瀏覽量
66471
原文標題:在Vivado下利用Tcl實現IP的高效管理
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論