From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id FAA10897; Mon, 26 Mar 2001 05:04:24 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id FAA10893 for ; Mon, 26 Mar 2001 05:04:23 +0200 (MET DST) Received: from shell5.ba.best.com (shell5.ba.best.com [206.184.139.136]) by concorde.inria.fr (8.11.1/8.10.0) with ESMTP id f2Q34LT09986 for ; Mon, 26 Mar 2001 05:04:21 +0200 (MET DST) Received: from localhost (bpr@localhost) by shell5.ba.best.com (8.9.3/8.9.2/best.sh) with ESMTP id TAA01541; Sun, 25 Mar 2001 19:03:05 -0800 (PST) Date: Sun, 25 Mar 2001 19:03:05 -0800 (PST) From: Brian Rogoff To: Dennis Gang Chen cc: caml-list@inria.fr Subject: Re: [Caml-list] Why People Aren't Using OCAML? (was Haskell) In-Reply-To: <3ABE8D60.6685E7C5@motorola.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk 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