在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Git進行Vivado工程管理的教程分享

454398 ? 來源:科學計算technomania ? 作者:貓叔 ? 2020-11-16 14:59 ? 次閱讀

作者:貓叔

git有多好用我就不用多說了,可謂是程序員必備技能之一。對于一般的軟件代碼來說,只需把源文件進行git管理即可。但對于FPGA工程師來說,使用git多多少少有些蛋疼,主要有下面幾個問題:

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

② 很多公司都會有一些積累下來的hdl文件,放到某個文件夾中,所有的工程目錄下都會有這個文件夾,因此這個文件中會有很多不是當前工程的文件,因此git的文件中,必須包含當前工程的files list,否則就得重新添加文件;

③ 如果把整個Vivado工程都放入git,非必要文件太多,既浪費git服務器的空間,Push和Pull的速度也會很慢;

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

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

我們這篇文章只講Vivado的工程,不包括HLS或者Sdk工程,因為這這兩個工具都是純C/C++/TCL的,git管理起來比較簡單

1. 工程目錄

我們采用如下的目錄結構,這種方式也是Xilinx官網某個教程上推薦的,

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

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

Doc目錄:放跟工程相關的文檔,如果沒有的話可以不加;

Mcs目錄:放工程生成的bit和mcs文件,這個文件也看個人用途,如果覺得bit文件太大不想放在git上也無所謂,但個人覺得在調試的時候經常會用到之前測試好了某個bit;

Scripts目錄:也是進行git管理的關鍵,里面放各種Tcl腳本;

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

2. 操作步驟

1. 在打開的Vivado工程中,通過Tcl Console將目錄切換到Work目錄:

cd [get_property directory [current_project ]]

2. 生成新建工程的Tcl腳本,執行:

write_project_tcl {./Scripts/s1_recreate_project.tcl}

3. 依次生成bd文件的tcl腳本,比如工程中有兩個bd文件aa.bd和bb.bd,打開aa.bd,并執行:

write_bd_tcl {./Scripts/s2_aa_bd.tcl}

打開bb.bd,并執行:

write_bd_tcl {./Scripts/s3_bb_bd.tcl}

這樣,在Scripts文件夾中,就會多出三個文件:

4. 在.gitignore文件中,把整個Work目錄全部ignore掉,Src文件夾中根據實際情況進行ignore即可,HDL文件都保留,IP Core只留.xci文件;Scripts目錄全部保留。

5. 到這一步,就可以進行Commit和Push了。

6. 把程序Clone下來后,首先要修改s1_recreate_project.tcl,需要修改的地方有兩個:一個是新建工程時的路徑,原始文件為:

替換為:

第二處需要更改的是刪除files list中的bd文件信息,如下圖中框起來的部分,這部分內容是將文件添加到工程中,但此時我們的bd文件還沒有生成,因此這兩個要刪掉。bd文件是我們通過后面的tcl腳本添加進來的。

7. 切換到Scripts目錄

8. 依次執行:

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

OK,到這里工程就Clone完成了!!!

下面說一下我操作的過程中碰到的幾個問題:

1. 如果是DDR3的MIG IP Core,會有Configuration Files,如果我們修改了MIG,并重新生成后,就會經常出現這個Configuration Files找不到的情況,像下面這樣:

這樣就要我們在導出s1_recreate_project.tcl前要先把這個文件替換成正確的文件。如果MIG是放在到bd中,那么在上述的第6步修改s1_recreate_project.tcl中,也要把mig_*.prj文件刪掉,因為這個文件是在新建MIG時自動生成的。

2. 有些朋友用bd的時候喜歡用wrapper.v的文件來封一層,這個wrapper.v是Vivado自動生成的,而且默認目錄就是在Work的工程目錄下,我們可以不用管這個wrapper.v的文件,等bd文件添加進去后,再手動生成一下即可;也可以不使用wrapper.v,直接例化bd文件。

3. 上面這種方法是在Vivado2017.2上進行的測試,如果是2017.4及以上的版本,write_project.tcl指令中需要增加-use_bd_files選項,也就是:

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

如果不加這個選項,默認會把bd文件信息也導出,這樣在運行時會提示么有發現bd文件的錯誤。

4. 如果是低版本的工程進行git后,要用高版本的Vivado打開,我們可以在導出bd時去掉IP的版本信息,也就是:

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

總結

我嘗試了網上很多方法基本都不能直接使用,但他們既然把方法放到網上,說明是經過測試的,但可能測試的并不是特別全面,就是MIG的IP一樣,如果我的工程中沒有這個IP,那我也不知道在git時會出現這種問題。我也不能保證在使用別的IP時不會出現問題,但思路都是一樣的,就是把工程的tcl腳本和bd的tcl腳本分開,先新建工程把非bd文件的內容加進來,再把bd的文件內容添加進來。

編輯:hfy


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Git
    Git
    +關注

    關注

    0

    文章

    205

    瀏覽量

    16149
  • Vivado
    +關注

    關注

    19

    文章

    834

    瀏覽量

    68371
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    主流版本控制工具Git vs Perforce P4:架構模式、性能、大文件管理及分支管理對比詳解

    Git vs Perforce P4,如何選型?架構模式、性能、大文件管理、分支策略四大維度對比,幫你全面了解兩者的核心差異,選擇更合適你團隊需求的版本控制系統。
    的頭像 發表于 06-13 14:52 ?117次閱讀
    主流版本控制工具<b class='flag-5'>Git</b> vs Perforce P4:架構模式、性能、大文件<b class='flag-5'>管理</b>及分支<b class='flag-5'>管理</b>對比詳解

    如何使用One Spin檢查AMD Vivado Design Suite Synth的結果

    本文講述了如何使用 One Spin 檢查 AMD Vivado Design Suite Synth 的結果(以 Vivado 2024.2 為例)。
    的頭像 發表于 05-19 14:22 ?424次閱讀
    如何使用One Spin檢查AMD <b class='flag-5'>Vivado</b> Design Suite Synth的結果

    一文詳解Vivado時序約束

    Vivado的時序約束是保存在xdc文件中,添加或創建設計的工程源文件后,需要創建xdc文件設置時序約束。時序約束文件可以直接創建或添加已存在的約束文件,創建約束文件有兩種方式:Constraints Wizard和Edit Timing Constraints,在綜合后
    的頭像 發表于 03-24 09:44 ?3098次閱讀
    一文詳解<b class='flag-5'>Vivado</b>時序約束

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-移植前準備之git管理內核源碼

    我們前邊已經介紹過Git工具,是一個非常實用的代碼管理工具。如果驗證編譯出的內核能夠正常啟動,就可以將源碼用git工具管理起來。可以清楚的了解源碼改動記錄。如果不小心把源碼改亂了還可以
    發表于 01-23 10:51

    飛凌嵌入式ElfBoard ELF 1板卡-移植前準備之git管理內核源碼

    我們前邊已經介紹過Git工具,是一個非常實用的代碼管理工具。如果驗證編譯出的內核能夠正常啟動,就可以將源碼用git工具管理起來。可以清楚的了解源碼改動記錄。如果不小心把源碼改亂了還可以
    發表于 01-22 10:39

    飛凌嵌入式ElfBoard ELF 1板卡-git管理源碼之git安裝和使用

    第一種當前代碼的管理。Ubuntu上安裝git執行sudo apt-get install git 進行git安裝elf@ubuntu:~/
    發表于 01-14 09:08

    云服務器 Flexus X 實例:部署 Gitea,擁有自己的 Git 倉庫,管理本地代碼

    、零售、金融、游戲等眾多領域的通用工作負載需求。本文旨在詳細闡述如何高效利用“云服務器 Flexus X 實例”,包括如何在其中從零開始,通過安裝相關依賴、安裝 Docker、安裝 Gitea 等步驟,實現自己的 Git 倉庫,管理本地代碼。精彩內容,不容錯過,快來一探究
    的頭像 發表于 01-07 16:59 ?381次閱讀
    云服務器 Flexus X 實例:部署 Gitea,擁有自己的 <b class='flag-5'>Git</b> 倉庫,<b class='flag-5'>管理</b>本地代碼

    Flexus X 實例 C#/.Net Core 結合(git 代碼管理、docker 自定義鏡像)快速發布部署 - 讓你的項目飛起來~

    與 Docker 容器化部署,實現代碼高效管理與無縫遷移。即刻行動,讓您的 Web 服務更加穩定、高效,領跑數字化轉型之路! ???本實驗深入演示了如何在 Ubuntu 環境中,利用 Git 進行版本控制
    的頭像 發表于 12-25 21:15 ?539次閱讀
    Flexus X 實例 C#/.Net Core 結合(<b class='flag-5'>git</b> 代碼<b class='flag-5'>管理</b>、docker 自定義鏡像)快速發布部署 - 讓你的項目飛起來~

    Xilinx_Vivado_SDK的安裝教程

    完之后,就進行解壓。(最好在解壓和安裝之前都關閉所有的殺毒軟件以防萬一) 解壓完之后,雙擊?xsetup.exe 進行安裝...... 等待一會兒之后,就會跳出如下安裝界面: 點擊 Next: 全選
    的頭像 發表于 11-16 09:53 ?4799次閱讀
    Xilinx_<b class='flag-5'>Vivado</b>_SDK的安裝教程

    每次Vivado編譯的結果都一樣嗎

    很多FPGA工程師都有這種困惑,Vivado每次編譯的結果都一樣嗎? 在AMD官網上,有這樣一個帖子: Are Vivado results repeatable for identical
    的頭像 發表于 11-11 11:23 ?1122次閱讀
    每次<b class='flag-5'>Vivado</b>編譯的結果都一樣嗎

    使用Vivado通過AXI Quad SPI實現XIP功能

    本博客提供了基于2023.2 Vivado的參考工程,展示如何使用Microblaze 地執行(XIP)程序,并提供一個簡單的bootloader。
    的頭像 發表于 10-29 14:23 ?1437次閱讀
    使用<b class='flag-5'>Vivado</b>通過AXI Quad SPI實現XIP功能

    Vivado使用小技巧

    有時我們對時序約束進行了一些調整,希望能夠快速看到對應的時序報告,而又不希望重新布局布線。這時,我們可以打開布線后的dcp,直接在Vivado Tcl Console里輸入更新后的時序約束。如果調整
    的頭像 發表于 10-24 15:08 ?929次閱讀
    <b class='flag-5'>Vivado</b>使用小技巧

    智能記錄隱蔽工程管理系統

    ? ? ? 隱蔽工程管理是現代建筑工程中一個至關重要的環節。為了提高工程質量和管理效率,智能記錄隱蔽工程
    的頭像 發表于 10-18 10:18 ?484次閱讀
    智能記錄隱蔽<b class='flag-5'>工程</b><b class='flag-5'>管理</b>系統

    Vivado編輯器亂碼問題

    我們在日常開發中經常使用sublime、vim、vs code等第三方的編輯器,這些編輯器可以使用很多插件來提高我們的編碼效率,但是也往往會帶來亂碼的問題。我一般使用的是sublime來進行編碼
    的頭像 發表于 10-15 17:24 ?2318次閱讀
    <b class='flag-5'>Vivado</b>編輯器亂碼問題

    打開esp-idf的任意一個component時,vscode會自動導入該component的git倉庫,怎么解決?

    當我打開esp-idf 的任意一個component時,vscode會自動導入該component的git倉庫,導致vscode的源碼管理非常擁擠,請問這有什么辦法解決嗎?還是我vscode設置不對導致? 希望大家能指導指導,感謝!
    發表于 06-21 07:39
    主站蜘蛛池模板: h在线观看视频 | 69色视频 | 国产精品午夜在线观看 | 天天插天天干 | 男人的午夜天堂 | 日本不卡视频免费的 | 男女做视频网站免费观看 | 国产婷婷色一区二区三区 | 日本aaaaa特黄毛片 | 丁香婷婷成人 | 美女视频黄的免费视频网页 | 欧美视频三区 | 精品福利 | 一级片在线免费观看 | 91伊人久久大香线蕉 | 久久99国产精品久久99 | 超黄视频网站 | 天天干天天操天天爱 | 1区2区3区 | 欧美猛性 | 五月sese| 欧美性视频一区二区三区 | 一级片免费在线观看视频 | 国产欧美另类第一页 | 午夜影院一级片 | 欧美日韩亚洲国产 | 国产又爽又黄又粗又大 | 四虎www成人影院免费观看 | 日韩黄色免费 | 午夜在线影视 | 狠狠干狠狠插 | 日本黄色大片免费 | 国产成人精品视频一区二区不卡 | 国产亚洲欧美日本一二三本道 | 小雪被老外黑人撑破了 | 国产资源在线观看 | 天天射天天干天天插 | 99久热只有精品视频免费观看17 | 五月激情久久 | 天天躁夜夜躁狠狠躁躁 | 免费啪视频观在线视频在线 |