written by Francis
Chan, Mark Spiller
OCT is a data manager for VLSI/CAD applications. It has been a major component of the Berkeley CAD framework that has been used at Berkeley and other sites since the 1980s.
The basic unit in a design is the cell. A cell is the portion of a design that the user wishes to consider as a unit. A cell may have many views, such as schematic, symbolic, physical, simulation, etc.. Facets exist beneath the level of views. They contain instances of other cells, which may in turn contain instances of other cells. Each view has a facet named "contents" which contains the actual definition of the view and various application-dependent "interface" facets.The only facet that OCT has any explicit knowledge about is the contents facet, which is the facet that defines the name and number of external (formal) terminals a view has. When an instance of a view or a new interface facet is created , the contents facet of that view is consulted to find out what terminals the instance or facet inherits from the view. The contents facet must be created before any other facet is created and before any instance of that view is created.
The facet consists of a collection of objects that are related by attaching one to another. The basic OCT system allows OctObject such as bags, boxes, terminals, etc. to be arbitrarily attached to each other. The main mechanism of traversing these relationships is by InitGenContents (for generating the contents vector of objects attached) and InitGenContainers (for generating the containers vector of objects which the object is attached to).
OCT imposes no restriction on the interpretation of data and few restrictions on the organization of OctObjects. It is left to the application developer to implement policies (possible 244 project) to assign meanings to the organization and structure of data represented using OCT.
A example of the organization of an OCT
structure.
While we tried to retain as much of the original flavor of OCT as possible, this implementation has differed in many ways from the original OCT system. New concepts, structures and organizations have been introduced and, at the same time, unsuitable features have been obsolesced.
The three main implementational differences of (Java) OCT and the original OCT are:
http://www-cad.eecs.berkeley.edu/~mds/protocol.html
OCTTOOLS-5.2 Reference Manual, University of California at Berkeley, 1993.