2011-08-18

SVN Version Control with Xilinx ISE Projects

Maybe you have had the pleasure to work with Xilinx ISE already. A serious problem of ISE (version 13.2 at the time of this posting) is, that it has no support for version control like SVN. The project folder is a mess of generated scripts, reports and many other relatively useless files, which should not go into version control. However just adding all .vhd and .ucf files is not a good solution, because Wizards for IP generation cannot be used anymore. The 'Clean Project' Function within ISE is only an incomplete way to get rid of all unnecessary files.

A decent but working solution was to experiment a little which files are necessary and which ones aren't and use this information to create simple scripts which add necessary files to version control and set the svn ignore property to ignore the junk files. Albeit simple, these scripts have shown to be quite handy.

4 comments:

  1. Great Scripts. Just what I was looking for!

    Couple of improvements:
    1. add *.v to the include script name (verilog source files)
    2. add *.tfi to the ignore_1.txt (template instanciations)
    3. Allow scripts to be run anywhere: in the svn_set_ignore_prop.sh add:
    DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
    then update the lines:
    svn propset svn:ignore -F $DIR/ignore_1.txt $1
    svn propset svn:ignore -F $DIR/ignore_2.txt $1/ipcore_dir
    Then we don't have to keep all the files in the current dir.

    ReplyDelete
    Replies
    1. Hi Will!

      Thank you very much for your valuable feedback.
      I have uploaded an updated version of the scripts.

      Delete
  2. Wow, internet have everything. Thought I was the only one with problems versioning ISE projects.

    ReplyDelete
  3. My two cents:

    *.bit
    *.bgn
    *.drc
    *.par
    *.pcf
    *.ptwx
    *.twr
    *.twx
    *.unroutes
    *.ut
    *.xpi
    *.map
    *.mrp
    *.ngm

    ReplyDelete