[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA: Open-source VHDL compiler takes fresh approach



From: Stephen Williams <steve@icarus.com>
Subject: Re: gEDA: Open-source VHDL compiler takes fresh approach 
Date: Sun, 04 May 2003 13:34:27 -0700

> 
> phartke@stanford.edu said:
> > "GHDL is different from other open-source VHDL in two points: it is
> > written in Ada95, and it is a direct compiler, using the GCC
> > technology," Gingold said. "You analyze your VHDL sources and then you
> >  build an executable. To start a simulation, you run your executable."
> >  
> 
> A VHDL compiler written in ADA. Who woulda thunk:-)
> 
> I admit that I too considered making Icarus Verilog a gcc front end
> using exactly this same technique. I chose instead to not choose, and
> the ivl_target API was born. vvp came to pass for less obvious reasons.
> 
> Making a direct compiler out of Icarus Verilog is still possible for
> for the industrious compiler expert. There are two methods:
> 
> Method 1: Make a code generator that is itself a gcc front end.
> 
> Method 2: Make a vvp compiler front end for gcc. (The existing vvp
> is an interpreter.)
> 
> Method 1 is probably better.

Actually, GHDL makes use of the AIRE/IIR library format. If you look at the
AIRE/IIR spec you learn that it had the explicit intention to supper VHDL,
VHDL-AMS, Verilog and Verilog-AMS. If you think sufficiently far (OK, now when
we've done that) it doesn't should come as a supprise that you should be able
to make use of some common infrastructure between a VHDL and Verilog frontend
in GCC.

Also, it would be possible to hookup GHDL to a TyVis/WARPed runtime environment
instead of the GHDL runtime library, but that would mean quite alot of work in
reality. However, GCC, GHDL and Savant/TyVis/WARPed is all covered by the same
licence so who is waiting? ;O)

There is other pieces missing in the puzzel, such as STD_LOGIC acceleration and
fullblown VITAL/SDF support (missing in both GHDL and Savant), both missing if
you want to do any real work with them. I just happends to have a SDF library
under GPL, but it needs attention before it can be merged in.

I think GHDL takes on a brave direction. ADA isn't a problem, if you do VHDL
you are close to do ADA anyway and I've found that with much zilch ADA
experience the ADA code was very readable.

GHDL has a drawback, and that is that the parser isn't being written in a good
parser-generator languague. PCCTS or ANTLR would help out alot (C or C++ for
intermediary languague have to be tolerated for that).

The testbench material for VHDL is huge, and that will help keeping the grammar
stuff checked and cleaned up just like in Savant.

Then, if we where to dream a little seeing GnuCAP hooked in as a AMS engine
would be nice.

Both Savant and GHDL lacks builtin waveform viewers. GHDL has at least waveform
output, so it can be handled. I've scetched a waveform-dumper for Savant, but
ended up running my head into a now prooved broken design decission so I could
not get my data out in a smooth way (sigh!).

Cheers,
Magnus - looking under the hood of Savant and GHDL