LoginSignup
0
0

More than 3 years have passed since last update.

Xilinx ISEプロジェクトをGitで管理する

Posted at

はじめに

ISE 14.7が2013年に最終リリースされてから8年ほどですが
Spartan-6などの開発や過去製品の保守で使用することも稀にあります。

古いプロジェクトはバージョン管理されていないことも多いので
バージョン管理できるようにする手順をまとめました。

開発環境

  • Windows10
  • ISE 14.7

想定

  • HDLとIPのみのプロジェクト
  • MicroBlazeなどのソフトコアCPU関係は対象外

手順

作業前にバックアップは取っておくこと

管理対象を整理

古いコードがプロジェクト内に混在している場合があるので必要なファイルを整理します

  1. project_name.xiseを開く
  2. ツールバーからProject > Generate Tcl ScriptでTCLを生成する
  3. TCLを生成する(設定はデフォルトでOK)
    • project_name.tcl
    • All properties with complete script
  4. 生成されたproject_name.tclを開く
  5. add_source_files関数内でxfile addされているファイルを管理用フォルダにコピーする
    • srctestipcoreを分類する
    • IPについては各IP毎にipcore内にフォルダを作って分類する
  6. プロジェクトから既存のファイルを削除し、コピーしたファイルを追加する
  7. ISEを閉じる
  8. プロジェクトフォルダ内のproject_name.xise以外を全て削除する。
  9. project_name.xiseを開く
  10. Generate Programming Fileを実行し動作確認する。
    • IPの再生成を確認されるのでYesを選択する
  11. 整理したファイルを管理できるように.gitignoreを書く

この時点での管理対象ファイルは以下のような形になります

root/
 ├ .gitignore
 ├ project_name/
 │ └ project_name.xise
 ├ src/
 │ ├ *.vhd
 │ └ *.ucf
 ├ test/
 │ └ *.vhd
 └ ipcore/
   └ ip_name/
     └ ip_name.xco

TCLによる管理

プロジェクト再生成までtclで管理するようにします

  1. project_name.xiseを開く
  2. ツールバーからProject > Generate Tcl ScriptでTCLを生成する
  3. TCLを生成する(設定はデフォルトでOK)
    • project_name.tcl
    • All properties with complete script
  4. rebuild.batを作成する
    • 各IPの再生成用のtclは適宜選択する
  5. rebuild.batを実行し動作確認する
  6. .gitignoreを更新する
    • project_name.tclを管理対象に追加
    • project_name.xiseを管理対象から削除
    • IPの生成tclをを管理対象に追加
    • rebuild.batを追加
rebuild.bat(参考)
REM Set ENV
call C:\Xilinx\14.7\ISE_DS\settings64.bat

REM Regenerate IP
cd root\ipcore\ip_name
xtclsh gen_ip_name.tcl

REM Regenerate project
cd root\project\project_name
xtclsh project_name.tcl rebuild_project

以上で管理対象ファイルは以下のような形になります

root/
 ├ .gitignore
 ├ rebuild.bat
 ├ project_name/
 │ └ project_name.tcl
 ├ src/
 │ ├ *.vhd
 │ └ *.ucf
 ├ test/
 │ └ *.vhd
 └ ipcore/
   └ ip_name/
     ├ gen_ip_name.tcl # IP毎に異なる
     └ ip_name.xco

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0