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>