OKAD (Oh CAD)
OKAD, pronounced Oh CAD, is the VLSI design environment designed by the inventor of Forth, Charles Moore. Mr. Moore has been designing Forth chips for fifteen years and has been working with his own VLSI CAD design tools for a decade.
Frustrated by years of fighting expensive design tools that didn't understand what he needed to do and that would not allow fine tuning of design parameters and that did not provide a clear understanding of the underlying design process Chuck set out to write his own set of tools. He developed a minimal OS called OK which simply loaded a few DOS files into memory, put the processor into protected mode, turned off interupts, and turned control over to Chuck's menu code. The menu code just reads the keys and indexes into the current jump table.
Initially OKAD was implemented as the only application program in OK and was an experiment in sourceless programming. The structure of the programs looks like Forth code, but there was no Forth compiler or interpreter except Chuck himself. He entered the kernel of OK using a debugger and built the tools he need to build the rest of OK and OKAD. This included file loaders, a boot program, and the OK component programs. These include a hex memory editor, an instruction decompiler and editor, a font editor, a graphic screen editor. These were set up in a simple menu system that combines a table of eight functions to a graphic and matched it to a simple set of seven cursor and function keys (timeout was the 8th function).
OK and OKAD were implemented several times on different platforms all without source code. The system was bootstrapped and constructed with its own construction tools.
OK uses a combination of pixel graphics and a fixed spacing font that includes a minimal of characters and essential graphics for representing tiles layers in a chip layout. OKAD does not provide schematic input or high level representation of the design but rather maintains a graphic representation of each of the layers created in the VLSI design process. The system allows different views of different combinations of layers and allows cutting and pasting in these multi-layered views.
Chuck often said in the early days of his OKAD use, "The map is not the territory." He meant he wanted to understand an actual chip that he could specify not the result of someone else's silicon compiler applying its own rules to his high level description of a chip. The programming language that Chuck invented and has used for thirty years, Forth, gives a programmer understanding of and access to all levels of the software design process. Chuck wanted to do the same thing in hardware design. He did not want to be at the mercy of other people's compilers, libraries, and simplistic autorouters and such. By dealing with the actual chip layout and specifying his own equations for transistor models he had complete control.
He insisted that the Spice equations for circuit modeling that everyone else was using were overly complex, inaccurate, and had serious errors. He applied a simple transistor model, eventually he added thermal modeling, and provided incredibly fast simulation and editing features by carefully constructing the internal representation of the design. His calculations are very simple integer operations on simple equations.
He has added features and changed things over the years. Today OKAD includes the OK tools but is also in source code that can be assembled. OKAD included a layout editor, simulator, design rule checks, and file conversion programs. OKAD is a collection of small programs. Chuck maintains that most programs should be small, about 1K. OKAD is a collection of about a dozen 1K programs. It is in extreme contrast to the commercial VLSI CAD tool set where the set includes a half dozen ten megabyte and hundred thousand dollars programs. While commercial CAD systems do also provide high level description compilation to low level layout with autoroute and high level libraries, and tools to coordinate the work of a team these were not features that Chuck needed in his work. Chuck has his own library of components that he has designed and tested over the years.
The simulator evolved from 4 simulated osciloscope traces to more than 30 simulated scope traces superimposed on a graphic representation of the full design where all the key transistors are displayed in red or green for on and off. The simulation is remarkably fast compared to other CAD tools and provides a full simulation of the analog operation of every transitor on chip. The simulation also provides a simulated memory interface that can be loaded with code so that programs execution can be specified and examined in OKAD.
When Chuck began doing extensive simulations he first manually placed the simulated scope probes and manually launched the simulator. Later he added the ability to write scripts to automate the testing process. This evolved into a Forth embedded in OKAD, Color Forth. Chuck's Color Forth replaces some of the old Forth words with text color set by color tokens in the source code. Color Forth includes a color-enabled editor. Standard Forth could be displayed as Color Forth with an editor that would interpret certain traditional Forth words as color change escape sequences. Chuck has been very happy working with his Color Forth for the last five years and is now reengineering OKAD inside of Color Forth instead of the way it evolved with Color Forth inside of OKAD.
Chuck has done a number of presentations about OKAD and his experience in CAD development. He also provided some OKAD documentation that was published in Offete Enterprises's More on Forth Engines.
Videos of many of these presentations and others are available in the UltraTechnology store and some play for free in the UltraTechnology Streaming Video Theater.
Chuck Moore to SVFIG on 4/23/93. He talks about an implemention of OK on his new MuP21 chip in 93. (Not much about OKAD.)
More on Forth Engines Volume 16, 1992 - OKAD articles Charles Moore, Dr. C. H. Ting, provides early OKAD menus, equations, and details.
Chuck Moore interviewed in his home 6/6/93. He explains the purpose of his work on chips and chip design. He gives a tour of OKAD and the F21a layout. Lots of nice pictures to give a sense of early OKAD.
Fireside Chat 1996 Charles Moore 11/16/96. Talk to the Forth Interest Group about his work at iTV, CAD, and chips.
Color Forth Charles Moore 7/27/97 Chuck's first explanations of his Color Forth software. A later update, Color Forth Update 9/16/97 with a few images.
Fireside Chat 1998 Charles Moore 11/30/98 in his presentation to the Forth Interest Group he gives examples of his Color Forth in the latest version of OKAD.
On 5/22/99 Chuck gave a presentation to the Forth Interest Group entitiled Dispelling the User Illusion mostly about Color Forth. The illusion that Chuck would like to dispel is that the computer IS the virtual desktop. The actual computer that Chuck has made is far simpler and easier to understand than the virtual desktop abominations that are popular. Chuck thinks the hardware, ths software, OS, GUI, compiler, etc. should be so simple that no illusions are needed.
On 12/19/99 Chuck gave his annual Fireside Chat 1999 to the Silicon Valley Chapter of the Forth Interest Group on their Forth Day. In this presentation he explained more details of his Color Forth. On 7/22/00 Chuck gave a presentation to SVFIG entitled Color Forth 2000 which is available in the UltraTechnology store.
On 11/11/00 Chuck presented his Fireside Chat 2000 to the Silicon Valley Chapter of the Forth Interest Group on their Forth Day.
Other accounts of the history of OKAD and Chuck's programming techniques are discussed on the Introducing Aha and Aha web pages.
page created by Jeff Fox
UltraTechnology's F21 Microprocessor
was designed by Chuck Moore using his OKAD system