FPGARelated.com
Forums

Re: Which revision control do fpga designers use (2009)

Started by Andreas Ehliar January 7, 2009
On 2009-01-07, Svenn Are Bjerkem <svenn.bjerkem@googlemail.com> wrote:
> Hi, > found a thread on revision control from 2001 here, but obviously some > of the newer tools weren't available back then. We currently use > Subversion for anything and I find it kind of awkward to use for RTL. > Obvious alternatives are CVS and git. Have people found new favourite > tools since then?
I'm using SVN as well. I think the only real problem is when used in conjunction with ISE (because ISE's config files are mostly binary instead of text). To work around this (and to gain other advantages) I'm using a Makefile based build system for larger projects and a simple synthesis script for smaller projects (where it doesn't matter if everything has to be resynthesized every time). Anyway, I'm not involved in projects which has lots of participants, so I can't vouch for SVN:s greatness for HDL code in large projects, but it has worked very well for us when developing HDL code for various courses and research projects. (Around 3-5 developers who fiddle with the code occasionally.) /Andreas
Hi,
found a thread on revision control from 2001 here, but obviously some
of the newer tools weren't available back then. We currently use
Subversion for anything and I find it kind of awkward to use for RTL.
Obvious alternatives are CVS and git. Have people found new favourite
tools since then?

Also configuration management has become a buzzword. Any favourite
tools in this category?

--
Svenn
Svenn Are Bjerkem <svenn.bjerkem@googlemail.com> writes:

> of the newer tools weren't available back then. We currently use > Subversion for anything and I find it kind of awkward to use for RTL.
Would you care to elaborate? Petter -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail?
Andreas Ehliar <ehliar-nospam@isy.liu.se> writes:

> I'm using SVN as well. I think the only real problem is when used in > conjunction with ISE (because ISE's config files are mostly binary
So it's more an ISE rather than a RTL problem. I've been using SVN with Altera, Xilinx and several ASIC based designs. I typically use a Make or Tcl type of flow and find SVN to fit wery well. I use mostly Emacs for writing HDL, programs, scripts, documentation (latex), e-mail, news (like now). Petter -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail?
Svenn Are Bjerkem wrote:
> Hi, > found a thread on revision control from 2001 here, but obviously some > of the newer tools weren't available back then. We currently use > Subversion for anything and I find it kind of awkward to use for RTL. > Obvious alternatives are CVS and git. Have people found new favourite > tools since then?
Try to give TortoiseSVN a go. It's very powerful and open source. Regards Jan
On Jan 7, 4:39=A0am, Andreas Ehliar <ehliar-nos...@isy.liu.se> wrote:
> On 2009-01-07, Svenn Are Bjerkem <svenn.bjer...@googlemail.com> wrote: > > > Hi, > > found a thread on revision control from 2001 here, but obviously some > > of the newer tools weren't available back then. We currently use > > Subversion for anything and I find it kind of awkward to use for RTL. > > Obvious alternatives are CVS and git. Have people found new favourite > > tools since then? > > I'm using SVN as well. I think the only real problem is when used in > conjunction with ISE (because ISE's config files are mostly binary > instead of text). To work around this (and to gain other advantages) > I'm using a Makefile based build system for larger projects and a > simple synthesis script for smaller projects (where it doesn't matter > if everything has to be resynthesized every time). > > Anyway, I'm not involved in projects which has lots of participants, > so I can't vouch for SVN:s greatness for HDL code in large projects, > but it has worked very well for us when developing HDL code for > various courses and research projects. (Around 3-5 developers who > fiddle with the code occasionally.) > > /Andreas
We use CVS, which isn't great, but it gets the job done. I use the Tortoise shell over top of that personally, because I'm a GUI kind of guy. The trick is to get all your configuration files into a text format. I don't use any of the ISE configuration utilities, maybe occasionally to help guide what I'm doing. But everything else is is captured in various constraint files or the synplify project file. Our build is pretty straightforward. I use /bat files, others use make, tcl, perl, etc. Then it's all text and you can check in whatever is needed. Chris
Hi,

I converted my repository to subversion about four years ago (from cvs)
and find it great. My code base is a wide mix of VHDL/Verilog/C/C++. As
regards FPGA projects, all four main vendors but in the last on and a
half years with a slant towards Lattice.

I have found the properties (principally svn:externals) very helpful in
reusing code within other projects, once you get the directory structure
right. With the svn:externals settings I can keep track of which tagged
sub-block versions are contained in each project delivered, which I
suppose is the first stage of configuration management.
I then have a java-based workflow on top of everything to generate my
make files, top-level testbenches, Lattice Project Files etc.

In comparison, some of my customers use clearcase or synchronicity but I
can't say I find either of them better. I suppose there might be some
advantages for larger corporations with multi-site hosting etc.
I've used CVS and bzr, both for small projects. I like bzr.

In general, I check in source and configuration files, enough that I can
reconstruct the project.

I also check in the *.bit files for quick regression testing. And the
*.ise file for quick recovery when I've screwed up the configuration
options. Also the *.syr file from XST, just so I can track resources. But
these ISE files are treated as disposable, since I seem to occasionally
get the project completely hosed, and have to reconstruct it from the HDL 
sources.

ISE uses lots of intermediate files and caches that don't get cleaned up,
and sometimes get locked. It's important to not include these.

-- 
	mac the na&#4294967295;f
On Jan 7, 9:51=A0am, Chris Maryan <kmar...@gmail.com> wrote:
> On Jan 7, 4:39=A0am, Andreas Ehliar <ehliar-nos...@isy.liu.se> wrote: > > > > > > > On 2009-01-07, Svenn Are Bjerkem <svenn.bjer...@googlemail.com> wrote: > > > > Hi, > > > found a thread on revision control from 2001 here, but obviously some > > > of the newer tools weren't available back then. We currently use > > > Subversion for anything and I find it kind of awkward to use for RTL. > > > Obvious alternatives are CVS and git. Have people found new favourite > > > tools since then? > > > I'm using SVN as well. I think the only real problem is when used in > > conjunction with ISE (because ISE's config files are mostly binary > > instead of text). To work around this (and to gain other advantages) > > I'm using a Makefile based build system for larger projects and a > > simple synthesis script for smaller projects (where it doesn't matter > > if everything has to be resynthesized every time). > > > Anyway, I'm not involved in projects which has lots of participants, > > so I can't vouch for SVN:s greatness for HDL code in large projects, > > but it has worked very well for us when developing HDL code for > > various courses and research projects. (Around 3-5 developers who > > fiddle with the code occasionally.) > > > /Andreas > > We use CVS, which isn't great, but it gets the job done. I use the > Tortoise shell over top of that personally, because I'm a GUI kind of > guy. The trick is to get all your configuration files into a text > format. I don't use any of the ISE configuration utilities, maybe > occasionally to help guide what I'm doing. But everything else is is > captured in various constraint files or the synplify project file. > > Our build is pretty straightforward. I use /bat files, others use > make, tcl, perl, etc. > > Then it's all text and you can check in whatever is needed. > > Chris- Hide quoted text - > > - Show quoted text -
Quick addendum regarding the project build: using the ISE tools from the command line is very easy. A typical build is just a single execution of ngdbuild, map, par, trce and then bitgen. The command line options for each are fairly simple and map directly to the options you set for yor build in ISE. There's an option in ISE somewhere to get it to show you what the command line version of your last build is, you can use that as a starting point. Then copy it all to a script file and you're set - and you can check it into a text only revision control system. Chris
On Wed, 7 Jan 2009 09:39:39 +0000 (UTC)
Andreas Ehliar <ehliar-nospam@isy.liu.se> wrote:

> On 2009-01-07, Svenn Are Bjerkem <svenn.bjerkem@googlemail.com> wrote: > > Hi, > > found a thread on revision control from 2001 here, but obviously > > some of the newer tools weren't available back then. We currently > > use Subversion for anything and I find it kind of awkward to use > > for RTL. Obvious alternatives are CVS and git. Have people found > > new favourite tools since then? > > I'm using SVN as well. I think the only real problem is when used in > conjunction with ISE (because ISE's config files are mostly binary > instead of text). To work around this (and to gain other advantages) > I'm using a Makefile based build system for larger projects and a > simple synthesis script for smaller projects (where it doesn't matter > if everything has to be resynthesized every time). > > Anyway, I'm not involved in projects which has lots of participants, > so I can't vouch for SVN:s greatness for HDL code in large projects, > but it has worked very well for us when developing HDL code for > various courses and research projects. (Around 3-5 developers who > fiddle with the code occasionally.) > > /Andreas
Just said everything that I was going to. Especially with TortoiseSVN as an interface into the system, I really find Subversion to be plenty good enough to check in/out my VHDL, Xilinx schematic entry files (text, underneath it all), configuration option text files, Makefiles, and a few pre-post processing scripts. -- Rob Gaddi, Highland Technology Email address is currently out of order