如何使用Git進(jìn)行Vivado工程的管理

這篇文章將為大家詳細(xì)講解有關(guān)如何使用Git進(jìn)行Vivado工程的管理,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

10年的江海網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整江海建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“江海網(wǎng)站設(shè)計(jì)”,“江海網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

??git有多好用我就不用多說(shuō)了,可謂是程序員必備技能之一。對(duì)于一般的軟件代碼來(lái)說(shuō),只需把源文件進(jìn)行g(shù)it管理即可。但對(duì)于FPGA工程師來(lái)說(shuō),使用git多多少少有些蛋疼,主要有下面幾個(gè)問(wèn)題:

  1. 有bd文件的工程中,只把bd文件加入git是不行的;

  2. 很多公司都會(huì)有一些積累下來(lái)的hdl文件,放到某個(gè)文件夾中,所有的工程目錄下都會(huì)有這個(gè)文件夾,因此這個(gè)文件中會(huì)有很多不是當(dāng)前工程的文件,因此git的文件中,必須包含當(dāng)前工程的files list,否則就得重新添加文件;

  3. 如果把整個(gè)Vivado工程都放入git,非必要文件太多,既浪費(fèi)git服務(wù)器的空間,Push和Pull的速度也會(huì)很慢;

  4. 很多FPGA工程師有自己的一套git管理Vivado的流程,但每次push前和Clone后都需要做很多操作。

??最近我也一直在研究Vivado工程git的管理方式,查了網(wǎng)上很多方法,但有些操作略復(fù)雜,有些方法完全不起效,但好在最終綜合整理出了一種相對(duì)簡(jiǎn)單的方式進(jìn)行,也許這種方式不是最合適的,如果你有更好的方法,希望能分享出來(lái)。

我們只講Vivado的工程,不包括HLS或者Sdk工程,因?yàn)檫@這兩個(gè)工具都是純C/C++/TCL的,git管理起來(lái)比較簡(jiǎn)單

1. 工程目錄

??我們采用如下的目錄結(jié)構(gòu),這種方式也是Xilinx官網(wǎng)某個(gè)教程上推薦的,

  • Work目錄:Vivado的工程全都放在Work目錄下,包括bd以及它的相關(guān)文件;

  • Src目錄:放hdl的源文件以及IP Core的源文件;

  • Doc目錄:放跟工程相關(guān)的文檔,如果沒(méi)有的話可以不加;

  • Mcs目錄:放工程生成的bit和mcs文件,這個(gè)文件也看個(gè)人用途,如果覺(jué)得bit文件太大不想放在git上也無(wú)所謂,但個(gè)人覺(jué)得在調(diào)試的時(shí)候經(jīng)常會(huì)用到之前測(cè)試好了某個(gè)bit;

  • Scripts目錄:也是進(jìn)行g(shù)it管理的關(guān)鍵,里面放各種Tcl腳本;

  • 如果工程中有SDK/HLS/SsyGen,可以在該目錄下再增加文件夾專門放置對(duì)應(yīng)的工程文件。

如何使用Git進(jìn)行Vivado工程的管理
image

 

2. 操作步驟

  1. 在打開(kāi)的Vivado工程中,通過(guò)Tcl Console將目錄切換到Work目錄:

cd [get_property directory [current_project ]]
 
  1. 生成新建工程的Tcl腳本,執(zhí)行:

write_project_tcl {./Scripts/s1_recreate_project.tcl}
 
  1. 依次生成bd文件的tcl腳本,比如工程中有兩個(gè)bd文件aa.bdbb.bd,打開(kāi)aa.bd,并執(zhí)行:

write_bd_tcl {./Scripts/s2_aa_bd.tcl}
 

打開(kāi)bb.bd,并執(zhí)行:

write_bd_tcl {./Scripts/s3_bb_bd.tcl}
 

這樣,在Scripts文件夾中,就會(huì)多出三個(gè)文件:

如何使用Git進(jìn)行Vivado工程的管理
image

替換為:

如何使用Git進(jìn)行Vivado工程的管理
image

  1. 切換到Scripts目錄

image

  1. 依次執(zhí)行:

source ./s1_recreate_project.tcl
source ./s2_aa_bd.tcl
source ./s3_bb_bd.tcl
 

OK,到這里工程就Clone完成了?。。?/p>

下面說(shuō)一下我操作的過(guò)程中碰到的幾個(gè)問(wèn)題:

  1. 如果是DDR3的MIG IP Core,會(huì)有Configuration Files,如果我們修改了MIG,并重新生成后,就會(huì)經(jīng)常出現(xiàn)這個(gè)Configuration Files找不到的情況,像下面這樣:

如何使用Git進(jìn)行Vivado工程的管理
image

這樣就要我們?cè)趯?dǎo)出s1_recreate_project.tcl前要先把這個(gè)文件替換成正確的文件。如果MIG是放在到bd中,那么在上述的第6步修改s1_recreate_project.tcl中,也要把mig_*.prj文件刪掉,因?yàn)檫@個(gè)文件是在新建MIG時(shí)自動(dòng)生成的。

  1. 有些朋友用bd的時(shí)候喜歡用wrapper.v的文件來(lái)封一層,這個(gè)wrapper.v是Vivado自動(dòng)生成的,而且默認(rèn)目錄就是在Work的工程目錄下,我們可以不用管這個(gè)wrapper.v的文件,等bd文件添加進(jìn)去后,再手動(dòng)生成一下即可;也可以不使用wrapper.v,直接例化bd文件。

  2. 上面這種方法是在Vivado2017.2上進(jìn)行的測(cè)試,如果是2017.4及以上的版本,write_project.tcl指令中需要增加-use_bd_files選項(xiàng),也就是:

write_project_tcl -use_bd_files {./Scripts/s1_recreate_project.tcl}
 

如果不加這個(gè)選項(xiàng),默認(rèn)會(huì)把bd文件信息也導(dǎo)出,這樣在運(yùn)行時(shí)會(huì)提示么有發(fā)現(xiàn)bd文件的錯(cuò)誤。

  1. 如果是低版本的工程進(jìn)行g(shù)it后,要用高版本的Vivado打開(kāi),我們可以在導(dǎo)出bd時(shí)去掉IP的版本信息,也就是:

write_bd_tcl -no_ip_version {./Scripts/s2_aa_bd.tcl}

??我嘗試了網(wǎng)上很多方法基本都不能直接使用,但他們既然把方法放到網(wǎng)上,說(shuō)明是經(jīng)過(guò)測(cè)試的,但可能測(cè)試的并不是特別全面,就是MIG的IP一樣,如果我的工程中沒(méi)有這個(gè)IP,那我也不知道在git時(shí)會(huì)出現(xiàn)這種問(wèn)題。我也不能保證在使用別的IP時(shí)不會(huì)出現(xiàn)問(wèn)題,但思路都是一樣的,就是把工程的tcl腳本和bd的tcl腳本分開(kāi),先新建工程把非bd文件的內(nèi)容加進(jìn)來(lái),再把bd的文件內(nèi)容添加進(jìn)來(lái)。

關(guān)于如何使用Git進(jìn)行Vivado工程的管理就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

新聞標(biāo)題:如何使用Git進(jìn)行Vivado工程的管理
標(biāo)題路徑:http://muchs.cn/article4/pphcoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、標(biāo)簽優(yōu)化、網(wǎng)站制作、建站公司品牌網(wǎng)站建設(shè)、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司