Computer Aids for VLSI Design
Steven M. Rubin
Copyright © 1994
Chapter 8: Programmability
Programmability is that extra control over the design process that allows
any circuit to be produced.
It extends the power of all tools and defines new, special-purpose ones.
Given that hardware is often described algorithmically, a CAD system that
has the ability to use those algorithms in design can consider all
Programs for design can exist in many forms, from traditional imperative
text to purely graphical and declarative.
Graphic programming is particularly attractive in an environment that is
Also, declarative programming is preferred because of its appeal to the
nonprogrammers who typically do design.
It simplifies issues of hierarchy and merges well with the overall design
What is the danger of using an embedded language for hardware description?
Why do designers dislike programming?
How would you maintain an association between a conditional expression and its
Why is a collection of linear inequalities a poor way to describe layout?
How would you eliminate unnecessary processing when solving constraints with
What is the most difficult aspect of implementing parameterized cells?
Why is there a need to link textual and graphical descriptions of a circuit?
Applicon, IAGL User's Guide, Applicon Incorporated, Burlington,
Massachusetts, June 1983.
Arnold, John E., "The Knowledge-Based Test Assistant's Wave/Signal Editor:
An Interface for the Management of Timing Constraints," Proceedings 2nd
Conference on Artificial Intelligence Applications, 130-136, December 1985.
Batali, J. and Hartheimer, A., "The Design Procedure Language Manual,"
AI Memo 598, Massachusetts Institute of Technology, 1980.
Borning, Alan, "ThingLab-A Constraint-Oriented Simulation Laboratory,"
PhD dissertation, Stanford University, July 1979.
Borriello, Gaetano, "WAVES: A Digital Waveform Editor for the Design,
Documentation, and Specification of Interfaces," unpublished document.
Brown, Harold; Tong, Christofer; and Foyster, Gordon, "Palladio: An
Exploratory Environment for Circuit Design," IEEE Computer, 16:12,
41-56, December 1983.
Buric, Misha R. and Matheson, Thomas G., "Silicon Compilation Environments,"
Proceedings Custom Integrated Circuits Conference, 208-212, May 1985.
CAE Corporation, CAE 2000 Command Language User's Manual, August 1984.
Calma, GPL II Programmers Reference Manual, GE Calma Company,
Cherry, James; Shrobe, Howard; Mayle, Neil; Baker, Clark; Minsky, Henry;
Reti, Kalman; and Weste, Neil, "NS: An Integrated Symbolic Design System,"
VLSI '85, (Horbst, ed), 325-334, August 1985.
Clarke, Edmund and Feng, Yulin, "Escher-A Geometrical Layout System for
Recursively Defined Circuits," Proceedings 23rd Design Automation Conference,
650-653, June 1986.
Computervision, CADDS II/VLSI Integrated Circuit Programming Language User's
Guide, Computervision Corporation Document 001-00045, Bedford, Massachusetts,
Davis, Tom, and Clark, Jim, "SILT: A VLSI Design Language," Stanford University
Computer Systems Laboratory Technical Report 226, October 1982.
Gosling, James, Algebraic Constraints, PhD dissertation, Carnegie-Mellon
University, CMU-CS-83-132, May 1983.
Henderson, Peter, "Functional Geometry," Proceedings ACM Symposium on LISP and
Functional Programming, 179-187, August 1982.
Holt, Dan and Sapiro, Steve, "BOLT-A Block Oriented Design Specification
Language," Proceedings 18th Design Automation Conference, 276-279, June 1981.
Hsueh, Min-Yu and Pederson, Donald O., "Computer-Aided Layout of LSI
Circuit Building-Blocks," Proceedings International Symposium on Circuits
and Systems, 474-477, July 1979.
Johnson, Stephen C., "Hierarchical Design Validation Based on Rectangles,"
Proceedings MIT Conference on Advanced Research in VLSI (Penfield, ed), 97-100,
Kingsley, C., Earl: An Integrated Circuit Design Language, Masters
Thesis, California Institute of Technology, June 1982.
Lipton, Richard J.; North, Stephen C.; Sedgewick, Robert; Valdes, Jacobo; and
Vijayan, Gopalakrishnan, "ALI: a Procedural Language to Describe VLSI
Layouts," Proceedings 19th Design Automation Conference, 467-473, June 1982.
Mathews, Robert; Newkirk, John; and Eichenberger, Peter, "A Target
Language for Silicon Compilers," Proceedings 24th IEEE Computer Society
International Conference, 349-353, February 1982.
Mayo, Robert N., "Combining Graphics and Procedures in a VLSI Layout
Tool: The Tpack System," University of California at Berkeley Computer
Science Division technical report, January 1984.
Mosteller, R. C., "REST-A Leaf Cell Design System," VLSI '81 (Gray, ed),
Academic Press, London, 163-172, August 1981.
Nelson, Greg, "Juno, a constraint-based graphics system,"
Computer Graphics, 19:3, 235-243, July 1985.
North, Stephen C., "Molding Clay: A Manual for the Clay Layout Language,"
Princeton University Department of Electrical Engineering and Computer
Science, VLSI Memo #3, July 1893.
Rosenberg, Jonathan B. and Weste, Neil H. E., "ABCD-A Better Circuit
Description," Microelectronics Center of North Carolina Technical
Report 4983-01, February 1983.
Saito, Takao; Uehara, Takao; and Kawato, Nobuaki, "A CAD System For
Logic Design Based on Frames and Demons," Proceedings 18th Design Automation
Conference, 451-456, June 1981.
Sastry, S. and Klein, S., "PLATES: A Metric Free VLSI Layout Language,"
Proceedings MIT Conference on Advanced Research in VLSI (Penfield, ed),
165-169, January 1982.
Stallman, R.M. and Sussman, G.J., "Forward Reasoning and Dependency
Directed Backtracking in a System for Computer-Aided Circuit Analysis,"
Artificial Intelligence, 9:2, 135-196, October 1977.
Steele, G. L. Jr., The Definition and Implementation of a Computer
Programming Language Based on Constraints, PhD dissertation, Massachusetts
Institute of Technology, August 1980.
Sussman, Gerald Jay, "SLICES-At the Boundary between Analysis and
Synthesis," AI Memo 433, Massachusetts Institute of Technology, 1977.
Sutherland, Ivan E., Sketchpad: A Man-Machine Graphical Communication
System, PhD dissertation, Massachusetts Institute of Technology, January
Trimberger, Stephen, "Combining Graphics and A Layout Language in a Single
Interactive System," Proceedings 18th Design Automation Conference,
234-239, June 1981.
Turing, A. M., "Computing Machinery and Intelligence," Mind, 59:236,
433-460, October 1950.
Weste, Neil, "Virtual Grid Symbolic Layout," Proceedings 18th Design
Automation Conference, 225-233, June 1981.
Wilcox, C. R.; Dageforde, M. L.; and Jirak, G. A., Mainsail Language
Manual, Version 4.0, Xidak, 1979.
Williams, John D., "STICKS-A graphical compiler for high level LSI design,"
Proceedings AFIPS Conference 47, 289-295, June 1978.
Zippel, Richard, "An Expert System for VLSI Design," Proceedings IEEE
International Symposium on Circuits and Systems, 191-193, May 1983.