Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!ut-sally!husc6!bloom-beacon!think!ames!ucbcad!ucbvax!zion.berkeley.edu!spp
From: spp@zion.berkeley.edu (Steve Pope)
Newsgroups: comp.lsi
Subject: Re: A Definition of Silicon Compilation
Message-ID: <19746@ucbvax.BERKELEY.EDU>
Date: Fri, 17-Jul-87 11:38:19 EDT
Article-I.D.: ucbvax.19746
Posted: Fri Jul 17 11:38:19 1987
Date-Received: Sat, 18-Jul-87 14:31:34 EDT
References: <7031@sci.UUCP>
Sender: usenet@ucbvax.BERKELEY.EDU
Reply-To: spp@zion (Steve Pope)
Organization: Experimental Computing Facility, U.C. Berkeley
Lines: 35
Keywords: silicon compiler defintion

I will add just a few things to this discussion.

The term "silicon compiler" was coined 10 or more years ago
by, if I'm not mistaken, Ron Ayres.  The original intent
was quite obvious; to design a circuit layout by other than
manipulating geometries, by using something a little higher
level.  Nothing more specific was spelled out at the time.

As the term evolved, things which are called silicon compilers
are more or less of two types.

The first type, which is the less common and probably the least useful, 
involves something which compiles a transistor net-list
(or equivalent higher-level representation) into a cell layout.

The second type, which accounts for most of the silicon compliers
out there (including all the commercial products I've seen)
uses the following passes: a high-level front-end, the input to which
may be either textual or graphical; a module generator, which generally
accesses a cell library and produces two-dimensional blocks or
macrocells of circuitry; and a place-and-route program (which sometimes
is partially interactive). 

These passes correspond to the passes of a programming language
compiler.

Usually, two-dimensional module generation (as opposed to
one-dimensional as in a standard-cell system) is a requirement.
Also, to be called a compiler, the system should be able to produce
a wide variety of circuits, not just a narrow subset such as PLA's
or RAM's.  

Of course, other more restrictive definitions are possible.

steve