2010-06-05 82 views
3

哪種配置管理工具最適合FPGA設計,尤其是Xilinx FPGA採用VHDL和C編程的嵌入式(microblaze)軟件?FPGA設計的配置管理

+2

您將需要一個偉大的二進制處理。我相信git是這種情況下的領導者之一。 – 2010-06-10 18:39:13

回答

1

我建議CM工具支持版本標籤和二進制文件。大多數軟件CM應用程序都可以使用ASCII文本文件。他們可能只是存儲一個「差異」文件而不是整個文件進行更新。

我的建議:PVCS,ClearCase和Subversion。不要使用Microsoft SourceSafe。我不喜歡它,因爲它每個版本只支持一個標籤。

1

我見過Perforce和Subversion在幾個FPGA密集型公司中使用。

1

我個人使用Perforce,Subverion,git和ClearCase進行FPGA項目。由於VHDL和C只是文本文件,任何工作都可以。但是一定要捕獲其他項目和約束文件以及您使用的任何庫。

也要考慮如何處理輸出,例如日誌文件和比特流。兩者都很大,比特流是二進制文件。

1

我們使用Perforce,它很棒。您可以將您的代碼存放在Linux環境中,並與您的Windows環境中的規格和文檔並行檢查。並且你得到分支,標籤等。

我已經看到了從Clearcase到RCS的所有使用過程,而且對於這類事情確實沒問題。重要的是要爲您的團隊制定一套完善的登記政策,並確保他們堅持不懈。

並有夜間自動迴歸。這樣,當有人違反規定時,就可以識別並公開羞辱他們。

1

以前我使用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個小時才能生成,你可能需要複製它並且配置會明確地進行管理。

5

沒有「最好的」,但是對於軟件工作的配置控制解決方案對於FPGA來說是可以的 - 流程非常相似。我在工作中使用Subversion,在家中使用git,並使用wrote a little on 'why' at my blog

在其他答案中,二進制文件不斷被提及 - 我處理的唯一二進制文件是編譯產品(相當於軟件對象和可執行文件),所以我不保留它們在版本控制庫中,我保留一個zip文件對於每個發佈/標籤,我創建了所有重要的(並且令人生氣的緩慢重現)。

1

我不認爲你使用哪種版本控制工具並不重要 - 你認爲一切都很好在這裏可能會好起來的。我個人使用Git進行大規模的Verilog +軟件項目,對此我感到非常滿意。不管使用何種版本控制,什麼都會使你受到影響:Xilinx工具通常並不尊重「輸入」和「輸出」之間或(人爲編輯的) 「源」和(不透明)「二進制」。許多工具喜歡在他們的「輸入」文件中存儲一些狀態信息,例如上次運行時間或散列值,這意味着您會得到很多錯誤的更改。 Coregen會將其用於.xco文件,而項目導航器(主GUI)會將其用於.xise文件。而且,這兩種工具都有插入或刪除默認值參數的習慣,這似乎是隨機的。

我遇到的最大的問題是工作流與Coregen:在許多情況下,以下至少有一個爲真:

  1. 您必須手動編輯由Coregen產生的HDL文件。
  2. 進入Coregen的參數存儲在除.xco文件之外的其他位置(通常看起來像輸出文件)。
  3. 您必須將Coregen的輸出複製並粘貼到您的頂層設計中。

這意味着沒有單個邏輯源/主位置輸入到核心生成過程。因此,即使您在版本控制下使用.xco文件,也不會期望您運行的設計與其相對應。如果你從標稱輸入重新生成「同一個」核心,你可能不會得到正確的輸出。甚至不考慮合併。