GHDL query

Discussion in 'VHDL' started by John Williams, Aug 8, 2003.

  1. Hi folks,

    Does anybody have any experience with GHDL? For those who don't know,
    it's a VHDL compiler based on the gcc (GNU Compiler Collection) framework.

    http://ghdl.free.fr

    It's free, unlike modelsim et al. It can export the VCD file format for
    viewing in various wave viewers and so on. Not sure how its performance
    compares with other commercial simulators.

    I've downloaded it and compiled trivial examples (adders etc), and it
    seems to work OK. Just wondering if any body has any deeper experience
    or comments on it?

    Thanks,

    John
    John Williams, Aug 8, 2003
    #1
    1. Advertising

  2. > Does anybody have any experience with GHDL?
    > http://ghdl.free.fr



    GHDL is in good shape. I have successfully simulated some 'real-world'
    FPGA projects of about 100k gates. I was easily able to compile and
    simulate all my testbenches and rtl code. I had a few problems compiling
    the Xilinx Unisim, though. Tristan is very responsive and working hard
    on fixing any issue that is reported to him, so I am sure that these
    woes are sorted out soon.


    > It can export the VCD file format
    > for viewing in various wave viewers and so on.



    GHDL is creating VCDs with a resoultion of fs, which may create problems
    with some tools. Currently only the following signal types are dumped to
    the VCD: bit, std_ulogic, std_logic, bit_vector, std_logic_vector, std_
    ulogic_vector.

    I working on integrating GHDL into IVI. IVI is a graphical frontend,
    which will allow for interactive simulation and Tcl scripting. IVI is
    currently making rapid progress with new features nearly every week.
    More info on IVI can be found here:
    http://ivi.sourceforge.net/

    IVI was originally created to support the Icarus Verilog simulator.
    Icarus Verilog is without doubt a very good simulator with very good
    performance. More info here:
    http://www.icarus.com/eda/verilog/

    Once GHDL is integrated with IVI, the result will be a nice GPL'ed and
    language-neutral simulator.


    > Not sure how its
    > performance compares with other commercial simulators.



    currently GHDL is a little slow, so there is definitely a need to work
    on optimization. But I am very confident that we can achieve this with
    the help of a few volunteers.


    Any comments welcome,
    best regards


    Felix
    Felix Bertram, Aug 8, 2003
    #2
    1. Advertising

  3. In article <bhb31h$q17$>, m a ellis wrote:
    >> Does anybody have any experience with GHDL? For those who don't know,

    > Yeah, I made some debian packages for an old version (0.3, I think).


    An URL would be nice. Also, if you make updated packages, could you
    please post notice (with URL) here?
    (I'm running Debian stable so I hope your packages don't need
    testing or newer).
    Tuukka Toivonen, Aug 13, 2003
    #3
  4. John Williams

    m a ellis Guest

    Tuukka Toivonen wrote:

    > In article <bhb31h$q17$>, m a ellis wrote:
    >>> Does anybody have any experience with GHDL? For those who don't know,

    >> Yeah, I made some debian packages for an old version (0.3, I think).

    >
    > An URL would be nice. Also, if you make updated packages, could you
    > please post notice (with URL) here?


    Sure. I'll have a go at building a new version.

    > (I'm running Debian stable so I hope your packages don't need
    > testing or newer).


    I found an old version in a directory called 'woody', which I would give you
    the apt source line for, but it doesn't seem to work with woody. Hrm.
    Screwed that one up somewhere along the line.

    I'll let you know how I get on.

    Martin
    m a ellis, Aug 13, 2003
    #4
  5. > The problem seems to be that GHDL (0.7, at least )can't be compiled with the
    > gnat packages distributed with gcc (3.3) - it seems to be necessary to use
    > the one from ftp://cs.nyu.edu/pub/gnat (which is based on gcc 2.8.1).



    I am using the following build system here:


    gcc -v
    Reading specs from /usr/libexec/gcc/darwin/ppc/3.1/specs
    Thread model: posix
    Apple Computer, Inc. GCC version 1252, based on gcc version 3.1 20021003
    (prerelease)

    gnatmake -v
    GNATMAKE 5.00w (20010924) Copyright 1995-2001 Free Software Foundation,
    Inc.
    Usage: gnatmake opts name {[-cargs opts] [-bargs opts] [-largs opts]
    [-margs opts]}


    Of course, I am building GHDL with gcc3.3 sources.



    Best regards, Felix
    Felix Bertram, Aug 15, 2003
    #5
  6. John Williams

    Jerahmie Guest

    Felix Bertram <> wrote in message news:<-berlin.de>...
    > > The problem seems to be that GHDL (0.7, at least )can't be compiled with the
    > > gnat packages distributed with gcc (3.3) - it seems to be necessary to use
    > > the one from ftp://cs.nyu.edu/pub/gnat (which is based on gcc 2.8.1).

    >
    >
    > I am using the following build system here:
    >
    >
    > gcc -v
    > Reading specs from /usr/libexec/gcc/darwin/ppc/3.1/specs
    > Thread model: posix
    > Apple Computer, Inc. GCC version 1252, based on gcc version 3.1 20021003
    > (prerelease)
    >
    > gnatmake -v
    > GNATMAKE 5.00w (20010924) Copyright 1995-2001 Free Software Foundation,
    > Inc.
    > Usage: gnatmake opts name {[-cargs opts] [-bargs opts] [-largs opts]
    > [-margs opts]}
    >
    >
    > Of course, I am building GHDL with gcc3.3 sources.
    >
    >
    >
    > Best regards, Felix


    Would it be possible to get a more detailed description of how you
    built ghdl for OS X? I've been having some difficulties, and the ghdl
    installation instructions aren't very complete yet. I'm using the
    same version of gcc,GNAT,& ghdl as you described.

    thanks,
    Jerahmie
    Jerahmie, Sep 3, 2003
    #6
  7. > Would it be possible to get a more detailed description of how you
    > built ghdl for OS X? I've been having some difficulties, and the ghdl
    > installation instructions aren't very complete yet. I'm using the
    > same version of gcc,GNAT,& ghdl as you described.


    sure, this is quite easy. I attached the script I am using to build GHDL
    below. Please note the following:

    * use the v0.7 version (which is currently the latest)

    * configure currently does not work properly. You will need to manually
    adjust the vhdl/Makefile.in in order to replace the Linux/x86 code by a
    pthread-based implementation for MacOSX:
    GRT_LINUX_OBJS=i386.o linux.o
    GRT_PTHREAD_OBJS=pthread.o
    GRT_ADD_OBJS= $(GRT_PTHREAD_OBJS) grt-cbinding.o grt-cvpi.o

    * I am building a patched version of GHDL, that includes a VPI interface
    to integrate with IVI. To do so, I need dlcompat (from Fink) linked into
    the GHDL runtime. I am patching grt.lst to do this. These changes will
    not show up in GHDL before version 0.8

    I assume that you are mainly interested in testing GHDL a little bit
    before putting further effort into this. I have put a binary
    distribution on my website:
    http://homepage.mac.com/f.bertram
    Go to the Files section, browse to the IVIonOSX folder and get the most
    recent dmg-image. This includes an installer that installs IVI complete
    with GHDL and Icarus into /Simulator (so that you may easily remove the
    tools later). The tools may be installed individually, if you need to
    save disk space. Please note that you will also need Tcl/Tk for Aqua
    found here, when planning to use IVI:
    http://www.maths.mq.edu.au/~steffen/tcltk/TclTkAqua/

    Please be advised that this binary distribution is not finished yet, as
    we are still working on the GHDL/IVI integration. I hope that you are
    nontheless able to get a feeling for it. I am planning to have all this
    polished in the next few weeks. If you have any further questions,
    please do not hesitate to contact me directly.



    Best regards

    Felix
    email: f-dot-bertram-at-mac-dot-com



    #!/bin/sh
    #------------------------------------------------------------------------
    # Project: GHDL - VHDL simulator
    # File: build.command
    # Description: Script to build GHDL on Mac OS X
    #------------------------------------------------------------------------
    root=`dirname $0`
    cd ${root}

    gcc=gcc-3.3
    srcdir=${root}/${gcc}
    ghdldir=${root}/ghdl-0.7
    objdir=${root}/build
    pfx=/Simulator/GHDL
    fink=/sw

    echo "----------------------------------------"
    echo "merge GHDL into GCC"
    echo "----------------------------------------"

    cp -rf ${ghdldir}/vhdl ${srcdir}/gcc

    echo "----------------------------------------"
    echo "setup"
    echo "----------------------------------------"

    CC="cc -no-cpp-precomp"
    export CC

    mkdir ${objdir}
    cd ${objdir}

    mkdir ${pfx}/include
    mkdir ${pfx}/lib
    cp ${fink}/include/dlfcn.h ${pfx}/include/dlfcn.h
    cp ${fink}/lib/libdl.0.dylib ${pfx}/lib/libdl.dylib

    echo "----------------------------------------"
    echo "configure"
    echo "----------------------------------------"

    ${srcdir}/configure \
    --enable-languages=vhdl \
    --prefix=${pfx} || exit 1

    echo "----------------------------------------"
    echo "make"
    echo "----------------------------------------"

    make || exit 1

    echo "----------------------------------------"
    echo "install"
    echo "----------------------------------------"

    make install || exit 1

    # --------------------------------------------
    # fix GHDL build problems
    # --------------------------------------------

    echo "@/libgrt.a" >
    ${pfx}/lib/gcc-lib/powerpc-apple-darwin6.6/3.3/vhdl/lib/grt.lst
    echo "@/system.o" >>
    ${pfx}/lib/gcc-lib/powerpc-apple-darwin6.6/3.3/vhdl/lib/grt.lst
    echo "${pfx}/lib/libdl.dylib" >>
    ${pfx}/lib/gcc-lib/powerpc-apple-darwin6.6/3.3/vhdl/lib/grt.lst
    cp /usr/lib/ada/system.o
    ${pfx}/lib/gcc-lib/powerpc-apple-darwin6.6/3.3/vhdl/lib

    # --------------------------------------------
    # copy additional files
    # --------------------------------------------

    echo `${pfx}/bin/ghdl --version` | \
    sed -e 's/GHDL //' | \
    sed -e 's/ \[.*//' > ${pfx}/VERSION.txt

    cp -f ${srcdir}/COPYING ${pfx}
    cp -f ${srcdir}/COPYING.lib ${pfx}
    cp -f ${srcdir}/MAINTAINERS ${pfx}
    cp -f ${srcdir}/README ${pfx}
    cp -f ${srcdir}/FAQ ${pfx}
    cp -f ${srcdir}/BUGS ${pfx}
    cp -f ${srcdir}/GNATS ${pfx}

    #------------------------------------------------------------------------
    # end of file
    Felix Bertram, Sep 4, 2003
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. John Williams

    GHDL for VHDL simulation?

    John Williams, Aug 8, 2003, in forum: VHDL
    Replies:
    0
    Views:
    1,290
    John Williams
    Aug 8, 2003
  2. Tristan Gingold

    [ANN] GHDL 0.13 - a free VHDL simulator

    Tristan Gingold, Jun 26, 2004, in forum: VHDL
    Replies:
    0
    Views:
    637
    Tristan Gingold
    Jun 26, 2004
  3. pini

    ghdl on wondows (cygwin)

    pini, Oct 25, 2004, in forum: VHDL
    Replies:
    0
    Views:
    657
  4. pini
    Replies:
    2
    Views:
    1,203
    Andras Tantos
    Nov 29, 2004
  5. Phil Tomson

    Building GHDL on Cygwin

    Phil Tomson, Dec 16, 2004, in forum: VHDL
    Replies:
    1
    Views:
    2,107
    Phil Tomson
    Dec 26, 2004
Loading...

Share This Page