$b2 $17[Example I: A leaf cell editor for VLSI design] $p1 VLSI design systems are geared towards the management of complex, integrated circuit designs. By the end of this decade, using available technology, Mead [Mead 80] compares the design of integrated circuits with the complex task of designing an urban density road network the size of an entire continent. The scope for error in such a project, if no proper tools are available, is immense. Current fabrication technology also imposes a constraint on the number of iterations designers can make to their circuit layouts as financial expenditure increases on each iteration. $p1 Management is currently handled by a process of abstraction, i.e. of hierarchical structuring of the chip design into manageable "cells". Each cell can in turn be individually created with geometric design rule checking applied at each separate stage. A composition tool, either graphic or textual, is then applied to put together individually designed cells and form the overall design. $p1 [Gray 79], [Buchanan 80], [Whitney 81], [Rees 83] have proposed a methodology of circuit design based on such a hierarchical approach. Recognising that there is a striking similarity between structured programming techniques and VLSI design, we can apply the ideas of MODULARITY, (the partition of the design into manageable "cells" with well defined functions and interfaces), HIERARCHY, (where modularity extends over partitioned levels of the design), and ITERATION (the repetition of basic modules in both one and two dimensions). Using this design methodology, the complete design is created from a "top" down" partition and a "bottom up" integration, with verification and simulation applied at various levels of the layout. $p1 CAD may play an important role at all levels of the hierarchy, from composition tools at root nodes of the design system down to "leaf cell" graphics editors. In this section we provide a short presentation of an editor for structured design of VLSI leaf cells which has been created around the experimental graphics interface being presented in this paper. The editor is a component of a major design system [Rees 83] which comprises a high level composition language, on-line geometric design rule checking and automatic stretching and compaction of composition cells. We outline some of the capabilities of the editor, with particular emphasis on the ease with which we can produce a leaf cell cicuit design when tools such as the appropriate representing data structure and its efficient intepreter are available. $b1 $H[Editor design environment] $p1 There are certain features of a circuit design environment which are fundamental to the user. It must exhibit: fast interactive response, the ability to view the design at arbitrary geometric scales ( window management and multiple viewports ) together with a clean and comprehensive user interface. The designer should feel intimately coupled to his design environment, with both control and the ability to perform structured operations such as viewing, panning and zooming at the touch of a button. $p1 The editor is menu driven, and uses a mouse as the manipulating device. The mouse is used for pointing and editing individual objects on the screen, or as an area selector where whole groups of objects are operated upon. The menu consists of representations of components the designer can paint with (wires, transistors, contacts) together with a set of high level functions (view, move, clone, input, output etc.) which he can use to operate upon and compose design layouts. $p1 While operating within its own allocated window, the editor is a multiwindow system in itself, with one menu and potentially more than one workspace subwindow.