Accession Number : ADA190386

Title :   Software Structuring Principles for VLSI CAD.

Descriptive Note : Memorandum rept.,

Corporate Author : MASSACHUSETTS INST OF TECH CAMBRIDGE ARTIFICIAL INTELLIGENCE LAB

Personal Author(s) : Katzenelson, Jacob ; Zippel, Richard

PDF Url : ADA190386

Report Date : 03 Dec 1987

Pagination or Media Count : 19

Abstract : VLSI CAD systems are typically large and undergo frequent changes. A frustrating aspect of these changes is that so little of the old available programs can be reused. The reason is that it takes too much time and effort to find the reuseable pieces and recast them for the new use. We believe that such systems should be designed for reusability by anticipating change. Our thesis is that this goal can be achieved by designing the software as layers of problem oriented languages, which are implemented by suitably extending a base language. A language layer rarely needs to be adapted to changes, only the application (i.e. algorithm) needs to be changed. We illustrate this methodology with respect to VLSI CAD programs and a particular language layer: a language for handling networks. A concept shared by many CAD programs is that of networks consisting of components and their interconnects. We capture this common part by providing a language for handling network problems. Such a language consists of our base language (EC or Lisp) plus data types, operations and control structures that are relevant to network problems. The network language is but one of several languages used; other languages we use deal with sets, two dimensional layout structures, waveforms, etc. The discussion of the network language illustrates this technique. We present two different implementation of the above philosophy. The first uses UNIX and Enhanced C, a set oriented language supporting data abstraction based on C. The second approach uses Common Lisp on a Lisp machine. In each case, we describe the basic technique and its applications. We concluded by comparing the two approaches.

Descriptors :   *COMPUTER AIDED DESIGN, *COMPUTER PROGRAMS, ALGORITHMS, COMPUTER PROGRAMS, CONTROL, HANDLING, LAYERS, NETWORKS, STRUCTURES, TWO DIMENSIONAL, COMPUTER PROGRAMMING, PROGRAMMING LANGUAGES, WAVEFORMS, INTEGRATED SYSTEMS

Subject Categories : Computer Programming and Software

Distribution Statement : APPROVED FOR PUBLIC RELEASE