哪種配置管理工具最適合FPGA設計,尤其是Xilinx FPGA採用VHDL和C編程的嵌入式(microblaze)軟件?FPGA設計的配置管理
回答
我建議CM工具支持版本標籤和二進制文件。大多數軟件CM應用程序都可以使用ASCII文本文件。他們可能只是存儲一個「差異」文件而不是整個文件進行更新。
我的建議:PVCS,ClearCase和Subversion。不要使用Microsoft SourceSafe。我不喜歡它,因爲它每個版本只支持一個標籤。
我見過Perforce和Subversion在幾個FPGA密集型公司中使用。
我個人使用Perforce,Subverion,git和ClearCase進行FPGA項目。由於VHDL和C只是文本文件,任何工作都可以。但是一定要捕獲其他項目和約束文件以及您使用的任何庫。
也要考慮如何處理輸出,例如日誌文件和比特流。兩者都很大,比特流是二進制文件。
我們使用Perforce,它很棒。您可以將您的代碼存放在Linux環境中,並與您的Windows環境中的規格和文檔並行檢查。並且你得到分支,標籤等。
我已經看到了從Clearcase到RCS的所有使用過程,而且對於這類事情確實沒問題。重要的是要爲您的團隊制定一套完善的登記政策,並確保他們堅持不懈。
並有夜間自動迴歸。這樣,當有人違反規定時,就可以識別並公開羞辱他們。
以前我使用Subversion,但兩年前切換到git。 Git可以處理FPGA設計文件,以及處理其他文本和二進制文件。 Git是控制文件和工件版本所需的全部。
對於構建設計,我建議只使用一個名爲「ise」的ISE項目(位於名爲「ise /」的子目錄中)。你可以看看我的(很謙虛)FPGA open-source project on github的文件格式。我不打擾存儲ISE文件,因爲它們很容易重新生成。我保存的唯一東西是Verilog文件和一些ISIM波形配置文件。在其他使用coregen的項目中,我保存了coregen.cgp項目文件和所有用於再生核心的* .xco腳本。然後我使用Makefile來實際運行* .xco文件中的coregen。還有一些您應該版本控制的特定於Xilinx的文件:* .ucf,* .coe,* .xcf等。
我嘗試使用Makefiles和Xilinx命令行工具,但發現ISE確實更好地跟蹤依賴關係並用正確的參數調用工具。只是不要試圖版本控制你的ise/project文件的錯誤,否則你會發瘋。賽靈思擁有300種不同的文件類型,每種版本都有所不同。如果你想保存一個文件,你可以用.xise擴展名嘗試ISE項目文件本身。任何難以重新創建的東西,比如你知道的黃金位文件需要花費6個小時才能生成,你可能需要複製它並且配置會明確地進行管理。
沒有「最好的」,但是對於軟件工作的配置控制解決方案對於FPGA來說是可以的 - 流程非常相似。我在工作中使用Subversion,在家中使用git,並使用wrote a little on 'why' at my blog。
在其他答案中,二進制文件不斷被提及 - 我處理的唯一二進制文件是編譯產品(相當於軟件對象和可執行文件),所以我不保留它們在版本控制庫中,我保留一個zip文件對於每個發佈/標籤,我創建了所有重要的(並且令人生氣的緩慢重現)。
我不認爲你使用哪種版本控制工具並不重要 - 你認爲一切都很好在這裏可能會好起來的。我個人使用Git進行大規模的Verilog +軟件項目,對此我感到非常滿意。不管使用何種版本控制,什麼都會使你受到影響:Xilinx工具通常並不尊重「輸入」和「輸出」之間或(人爲編輯的) 「源」和(不透明)「二進制」。許多工具喜歡在他們的「輸入」文件中存儲一些狀態信息,例如上次運行時間或散列值,這意味着您會得到很多錯誤的更改。 Coregen會將其用於.xco文件,而項目導航器(主GUI)會將其用於.xise文件。而且,這兩種工具都有插入或刪除默認值參數的習慣,這似乎是隨機的。
我遇到的最大的問題是工作流與Coregen:在許多情況下,以下至少有一個爲真:
- 您必須手動編輯由Coregen產生的HDL文件。
- 進入Coregen的參數存儲在除.xco文件之外的其他位置(通常看起來像輸出文件)。
- 您必須將Coregen的輸出複製並粘貼到您的頂層設計中。
這意味着沒有單個邏輯源/主位置輸入到核心生成過程。因此,即使您在版本控制下使用.xco文件,也不會期望您運行的設計與其相對應。如果你從標稱輸入重新生成「同一個」核心,你可能不會得到正確的輸出。甚至不考慮合併。
- 1. FPGA中的熱管理
- 2. 比較FPGA與ASIC設計
- 3. Sasebo GII virtex5 fpga配置
- 4. 檢索配置管理器加載的所有配置設置
- 5. 是否可以在FPGA上設計一個更小的FPGA?
- 6. 配置管理中的版本管理
- 7. 配置管理器中缺少配置設置
- 8. 配置管理.net
- 9. 配置管理器
- 10. 使用FPGA的高速設計
- 11. 管理用戶管理與設計
- 12. Magento - 瞭解管理配置頁面中納稅標籤下的計算設置
- 13. 在FPGA板上實現的可配置處理器
- 14. 配置數量的FPGA限制?
- 15. 管理web.config中的配置
- 16. yocto上的配置管理
- 17. 管理複雜的配置
- 18. Quartz.Net的管理配置
- 19. 代理配置facebook-omniauth與設計
- 20. 配置設計數據庫和經理
- 21. C#設置管理
- 22. 通過插件管理器在Notepad ++中配置代理設置
- 23. QJM中的資源管理器配置Hadoop 2.6.0的HA設置
- 24. 設計用戶管理
- 25. 資源管理設計
- 26. 設計管理路線
- 27. 庫存管理OOP設計
- 28. 內存管理設計
- 29. Cron管理工具設計
- 30. 管理服務器設計
您將需要一個偉大的二進制處理。我相信git是這種情況下的領導者之一。 – 2010-06-10 18:39:13