Managing VLSI complexity: An outlook

The nature of complexity in the context of VLSI circuits is examined, and similarities with the complexity problem in large software systems are discussed. Lessons learned in software engineering are reviewed, and the applicability to VLSI systems design is investigated. Additional difficulties arising in integrated circuits such as those resulting from their two-dimensionality and from the required interconnections are discussed. The positive aspects of VLSI complexity as a way to increase performance and reduce chip size are reviewed. With this discussion as a basis, the evolution of VLSI system design environments is outlined for the near-term, medium-term, and long-term future. The changing role of the designer is discussed. Recommendations are made for enhancements to our engineering curriculums which would provide the next generation of designers with skills relevant to managing VLSI complexity.

[1]  Dave Johannsen Our machine, a microcoded LSI processor , 1978, MICRO 11.

[2]  T.M. McWilliams Verification of Timing Constraints on Large Digital Systems , 1980, 17th Design Automation Conference.

[3]  Glenn D. Bergland,et al.  A Guided Tour of Program Design Methodologies , 1981, Computer.

[4]  Corrado Böhm,et al.  Flow diagrams, turing machines and languages with only two formation rules , 1966, CACM.

[5]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[6]  Marc J. Rochkind,et al.  The source code control system , 1975, IEEE Transactions on Software Engineering.

[7]  William A. Wulf,et al.  Trends in the Design and Implementation of Programming Languages , 1980, Computer.

[8]  Philip C. Treleaven,et al.  Software Configuration Management: A Tutorial , 1979 .

[9]  Thomas Reps,et al.  Programming Techniques and Data Structures , 1981 .

[10]  Larry Masinter,et al.  The Interlisp Programming Environment , 1981, Computer.

[11]  Thomas W. Williams,et al.  A logic design structure for LSI testability , 1977, DAC '77.

[12]  Dave Johannsen,et al.  Bristle Blocks: A Silicon Compiler , 1979, 16th Design Automation Conference.

[13]  Niklaus Wirth,et al.  Program Development by Stepwise Refinement (Reprint) , 1983, Software Pioneers.

[14]  William A. Wulf Compilers and Computer Architecture , 1981, Computer.

[15]  Alberto Sangiovanni-Vincentelli,et al.  Design aids for VLSI: The Berkeley perspective , 1981 .

[16]  Carver A. Mead VLSI and Technological Innovation , 1979 .

[17]  Laszlo A. Belady Evolved Software for the 80's. , 1979 .

[18]  Edsger W. Dijkstra,et al.  The humble programmer , 1972, CACM.

[19]  Anthony I. Wasserman,et al.  Personal Development Systems for the Professional Programmer , 1981, Computer.

[20]  Peter Naur Proof of Algorithms by General Snapshots , 1966 .

[21]  John Grason,et al.  Digital Test Generation and Design for Testability , 1980, 17th Design Automation Conference.

[22]  Howard E. Shrobe,et al.  The Data Path Generator , 1982, COMPCON.

[23]  Anthony I. Wasserman,et al.  The future of programming , 1982, CACM.

[24]  Anthony I. Wasserman Automated Development Environments , 1981, Computer.

[25]  Brian W. Kernighan,et al.  The UNIX™ programming environment , 1979, Softw. Pract. Exp..

[26]  S. R. Bourne Unix time-sharing system: the unix shell , 1978, The Bell System Technical Journal.

[27]  G. A. Miller THE PSYCHOLOGICAL REVIEW THE MAGICAL NUMBER SEVEN, PLUS OR MINUS TWO: SOME LIMITS ON OUR CAPACITY FOR PROCESSING INFORMATION 1 , 1956 .

[28]  David Gries An Illustration of Current Ideas on the Derivation of Correctness Proofs and Correct Programs , 1976, IEEE Transactions on Software Engineering.

[29]  Gordon E. Moore,et al.  Progress in digital integrated electronics , 1975 .