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