History of Schemata
Short Story
My name is Martin Mallinson
and I make my living as an analog design engineer; I am not a software
engineer. I began designing chips in the UK in 1977 when we drew designs by hand
and sometimes did no more than a hand calculation of our circuits – no
simulation – before we sent then to fabrication. Later (1983) I joined Analog Devices (ADI) in Boston MA and
was fortunate enough to find myself in very forward-looking group (the LSP
group) run by Peter Holloway. Our business plan was to provide ASICs (Application Specific IC’s) to key customer needs –
we would in effect use Analog’s design teams to work for one or two key
customers. For reasons that you may care read about in the “long story” below,
the LSP group of ADI developed their own CAD tools. The group was run by Ted Vucurevich and was all done on Symbolics’s
machines in the LISP programming language. I had had some experience with
Pascal (I wrote an event driven analog simulator in Pascal on the VAX) but
other than that I had not been exposed to computer science or programming in
general. Peter sent a selection of the design engineers to Symbolics LISP
School and in Dec 1985 (I
think!) I went to learn about the Symbolics LISP machine. I came away awestruck
– the object orient language, speed and sheer delight of the Symbolics LISP
environment overcame me. It was, in a word, awesome. I felt I could do
anything. You will find this hard to comprehend I know, but as the years have
gone by since 1985 we do now have some analogies I can use: if you are a
programmer check out the C# environment on Windows. This is similar to the LISP
environment – now try to imagine you had seen the C# environment in 1985.
That’s a glimpse of the impact of the Symbolic machine. So with this machine
the LSP group of ADI began to develop CAD tools: schematic, (simulation with ADI’s very good ADICE spice like simulator, but not a LISP
tool and not part of the LSP group’s work – we interfaced to it) layout and
routing. The engine controller of the A340 (and other Airbus and Boeing planes
that use the CFM56 GE engine) was developed with it, also world-beating (at the
time!) ADC and DACs, data acquisitions systems and
more were created in the tool. But it all went wrong – not the technical output
– ultimately the chips did generate profits – but the fact that Symbolics was
associated with the AI movement that was, quite frankly disastrous, and
headlines like “LISP Flaw Sinks MCC” did not help. (Read the longer story for
more insight into why I think the LSP and more particularly the Symbolics
“revolution” failed) Ted Vucurevich left for Cadence,
I started the first of a string of companies and the LSP group fell apart. But
I had by this time developed a skill in programming the LISP machine – I bought
one (I spent $30k on one!) and bootstrapped my new businesses using the
machines. I still have five of them today (2007). I never thereafter mentioned
Symbolics or LISP – I just got on with the job. I designed many things as a
consultant: part of the Suny chips for PMC Sierra,
some power management chips for ADI, parts of the Varian PAXScan
imager, designs for Integration Associates and many more. (Ironically, ADI
Santa Clara invited me to show how I was doing all the corner simulations so
quickly – I think I can say they were impressed with the scope of the work I
did for them – I was using the tools that ADI Boston had quite recently decided
were not useful!). Symbolics machines became increasing rare – David Schmidt
ex-Symbolics president did support and sell them for a while, but clearly I
wasn’t going to get a group of any size going with them. My first company was
CMT – (not Country Music Television! Crimble Micro
Test) and my old friend from Oxford
(Martin Snowden) was responsible for all the software. Martin was (and still
is) a hard core software programmer – C and all that. So all our delivered code
and code that ran the testers was written in C (in Borland C in those days) and
we made what turned out to be a good decision to use the PC as the platform. I
therefore can say with confidence that I wrote thousands of lines of C code and
got many accolades for my programming skills. National Semiconductor said it
was the “best written code they had ever seen”. I was surprised – I see myself
as an analog designer not a software programmer. Later I took the Berkeley
SPICE C code and added many new features to it for my own use. I mention all
this because I know that no one will believe me when I say that LISP can be
viable unless they know that the person also knows C. You see there is a sense
that it can’t be that good – perhaps he doesn’t know what C can do? (Actually,
quite the reverse is true – many like to pontificate about LISP without
actually having any experience of using it – or perhaps they used it in 1970! –
it’s sad really). Back to the point: the LISP code was never going to go
forward on the Symbolics machine – it was dead – a new platform was needed. Franz provided such a platform, and after
acquiring Procyon Common LISP, delivered it on a PC.
I set about to re-implement the old ADI design code on the PC in Franz Allegro
Common LISP. It was very difficult. In fact the lack of the Symbolics substrate
tools meant that I ended up first of all adding the CLOS-like presentation
system to the PC LISP. (It doesn’t matter what that means – it just means that
step one was very far from actually writing the Schematic). I presented
this at the Stanford LISP Conference a few years ago. Today (July 2007) I
have the Schematic re-written in what is called Common LISP on top of my tools
within the Franz Allegro LISP tool. I and others (about 20 analog and layout
design engineers) use it to develop circuits. It largest design was a complete
3.2MegPixel imager chip, but it also handles Flash ADC’s, Audio Codecs and so forth. It uses many processes from TSMC 035
all the way down to IBM’s 90nm processes. So why give it away? Well, because I
have other interests – I will continue to design chips – analog design is wired
in my brain, but I plan to write a book and someday get around to using that
16in telescope I have in the Observatory on the roof of my house. Plus I am no
longer a young man who can stay up late to hack LISP and then go design chips
all day! So to begin with, I must remove all the proprietary stuff from the
code base (I have signed none-disclosure agreements for the models for IBM for
example) and then I will make the setup.exe file available. Shortly thereafter
I will complete a first pass of these WWW based help files, then I will post
the entire source code. I know there are still LISP hackers out there and I
hope that you will take the code and make it much better. (As you read the code
you will see those code modules that were not on a path to getting a critical
chip out the door – they are nicely done <even if I say so myself> an
example is the Presentation subsystem, but there are the inevitable hacks where
elegance was dropped in favor of “just getting it done” – this is always when I
have to keep some design moving forward – I find beauty between those
parentheses and when I can’t spend the time to make it beautiful it offends me
– but that is beginning to happen more and more)
Bottom line: this is free because it is not the primary part
of my or any of my companies money making machine (I don’t sell software) –
it’s a capability I have developed over the years that I am proud of and now
have decided to share.
Long Story
<written when I get more time –
July 16th 2007>