Journal of Microcomputer
Applications (1984) 7, 8 l-83
Book reviews
VLSI: Silicon Compilation and the Art of Automatic Microchip Design. Ronald F. Ayres,
Prentice-Hall International
(1983) 481 pp., E44.95
There can be few who claim an interest in the design and capabilities of current integrated circuitry who are not also aware of Carver A. Mead’s (1981) analogy with streetplans when discussing IC layout complexity. According to Mead the complexity of the conductor network linking active elements on a chip was, in the mid 1960s. roughly equal to that of a small town. Most people could navigate and comprehend such a network without difficulty. By the dawn of the eighties the complexity was more on a par with that of the Los Angeles basin. Possibly a highly experienced taxi driver could handle this, at least for the main thoroughfares. Such is the rate of advance of chip fabrication technology that before the end of the century conductor network complexity could be equivalent to that of an urban road network covering the entire North American continent-and multi-level to boot. Obviously such networks will need well constructed and carefully applied design disciplines if advantage is to be taken of the opportunities that they afford. In the text under review Dr Ayres identifies a second, and much more immediate. problem associated with chip design. This is the problem of the translation of an initial specification of desired chip properties into a layout suitable for chip fabrication. This process of layout design will often cost a few million dollars and take a year or more. By contrast the subsequent fabrication process can be performed for a few thousand dollars and take a month. With improving fabrication technology leading to more complex chips this imbalance, using current techniques, would worsen possibly by orders of magnitude. It is generally agreed that the solution, or at least a major part of the solution, of both these problems is by the creation and use of ‘silicon compilers’. As in standard software processing such compilers take a specification in some high-level language and produce an implementation of it in a target low-level language. Where silicon compilers differ from their software counterparts is in the ‘target language’; this is a layout ofsuitable integrated circuitry created directly in a form suitable for the fabrication process. Such compilers are in their infancy. Such is their importance, however, that research into their creation and implementation is being carried out in most advanced countries. In the forefront of such research is the Californian Institute of Technology at which Dr Ayres is based. and on the collective expertise of which he has drawn for the preparation of this book. It is a large and lavishly produced book which addresses the full range of topics associated with the creation of complex layouts on silicon. Thus the discussion passes from an initial consideration of the simple basis of layout creation and representation. through a consideration of integrated circuit behaviour as it impinges on layout design. to a detailed consideration of silicon compilation as exemplified by a specific compiler. Throughout there appears to have been a careful and largely successful attempt to build
81
82
Book Reviews
the text from the simple to the complex in easy stages. Indeed an identified aim of the book is to ‘. . . serve as a university textbook for the majority of a one-year graduate course in VLSI computer-aided design, as a handbook for designers of computer-aided design systems, and as a case study for a large software application’. In each of these aims it should succeed well, though it is from the latter viewpoint that it will probably be of most use in Europe. The compiler chosen as the exemplar is RELAY (REcursive Logic Arrays) with source language ICL (Integrated Circuit Language). These are good and useful vehicles for the purpose and have enabled a valuable, integrated text to be written. If there is a criticism to be made it is in the presentation of diagrams. Throughout the majority of the text these are monochrome. However, in the text, layers are represented by colours robbing many of the monochrome illustrations of their full impact. A number of the key diagrams are also reproduced in colour in a central ‘insert’ partially redressing the criticism. I feel that the text would have benefited from a larger proportion being so treated however. In summary, the book appears carefully prepared, well presented and complete in itself. The quality of paper, typesetting and binding is high, the bibliography parsimonious (nineteen entries) and the index adequate. At a price of effectively &45 it does not seem overpriced compared with many less worthy texts. This book would be a useful addition to the library of any institution concerned with the creation of modern integrated circuitry. R. J. FRYER
Reference Mead, C. A. 1981. VLSI and technological Academic Press.
innovation.
In VLSI 81 (J. P. Gray, ed.). London:
Programming Embedded Microprocessors. A High-Level Foulger, NCC Publications (1983). 240 pp., E14.60
Language
Solution. R. J.
This book gives an overview of the programming implications of using microprocessor systems in control applications. It is particularly aimed at those who are considering the inclusion of microprocessor controllers in products which are not sold as computer systems. It relies heavily on another NCC book, High-Level Languages,for Microprocessor Projects by David Taylor and Lyndon Morgan. Those readers who are not familiar with high-level languages and their use would find reading that book first very helpful. After discussing what the authors mean by an embedded system, they go on to summarize the main conclusions of Taylor and Morgan’s book. In particular, the reasons for using high-level languages, what languages are available and how they might be used. Structured programming is discussed at length in Chapter 2, as are the different types of control system considered. Chapter 3 discusses the need for operating system support. Some of their characteristics are well illustrated with a discussion of the features of two well-known commercial products. Chapter 3 ends with a general discussion of multitasking and concurrancy. The next two chapters discuss some of the criteria for choosing a language. This includes a section on compilation versus interpreting and how sections of programs written in different languages might be linked together.