Version française
Home     About     Download     Resources     Contact us    
Browse thread
Re: [Caml-list] Why People Aren't Using OCAML? (was Haskell)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Brian Rogoff <bpr@b...>
Subject: Re: [Caml-list] Why People Aren't Using OCAML? (was Haskell)
On Mon, 26 Mar 2001, Dennis Gang Chen wrote:
> > I would have said that it's ideal for VLSI design software (any other EDA
> > hackers out there?) so maybe it's just ideal for everything?
> 
> I would like to hear more about using ocaml in VLSI design and
> verification. For simulation and formal verification of chips, speed is crucial.

Well, I work in the subfield called VLSI Physical Design, so simulation
here means SPICE, and the verification isn't formal. However, I do have 
a little bit of experience in the whole ASIC/RTL and behavioral modeling 
so I'll toss in my two cents. 

People write simulation models in all kinds of languages, including Perl
and Java, so speed is not always of the essence. For those cases where it
is, people often write in C (I worked at Denali for a while and I wrote
some of their models) since Verilog and VHDL simulators sometimes aren't 
quite good enough. Where would OCaml fit in there? Well, I've often
thought that the FFTW approach of just spitting out optimized C would be 
workable, and since most people acknowledge that MLs are really good for 
writing compilers, how about a Verilog (or VHDL if you're European :) RTL 
to C compiler? I had started on a Verilog front end for other reasons but
since migrating to physical design it's not as important. Incidentally, in 
the ASIC flows I've worked on a Verilog front end would have *lots* of
uses, flattening hierarchy, scan chain insertion, etc. Anyone interested
in working on such a tool? 

For formal verification I suspect you're asking about fast BDDs, a topic
that has come up a few times on this list. I suspect that for very
demanding problems you'll want the BDD library in C so as to minimize the 
overhead. I'd be delighted to find that a "pure OCaml" BDD library was
competitive to a well optimized C one, but I doubt that will be true. In
any case, you can just link with one of the available C libraries. I'm
surprised that no one has made a publically available binding to Cudd or 
some other C library. Maybe I'll do that one day if someone else doesn't
beat me to it. Once you have such a library available, I think that other 
tools (say a symbolic model checking tool) could be coded up far more
easily in OCaml than in many other languages, and the performance
bottleneck will have been addressed. 

>From the physical design standpoint, I just find it easier to express
complex algorithms in ML than other languages I've used, for all the 
old reasons. I suppose for things like linear programming OCaml isn't 
(yet :) ideal but the problems I work on are not huge, think leaf cell 
synthesis scale rather than whole chip (for now!). 

Anyways Dennis, if you're interested in pursuing any of those things I
mention, please contact me. One constraint is that I'd like to make source
available so that other EDA people get sucked into the OCaml vortex. There
are too many in-house point tools that die because they never get out. I've 
noticed quite a few postings from people in the industry (I post from my
ISP but I work at Artisan) so I know there are some more of us out there. 
Come on guys, do you want to hack on Perl for the rest of your careers? 
Let's make OCaml the EDA language of choice!

-- Brian


-------------------
To unsubscribe, mail caml-list-request@inria.fr.  Archives: http://caml.inria.fr