Report Number: CSL-TR-95-681
Institution: Stanford University, Computer Systems Laboratory
Title: Netlist Processing for Custom VLSI via Pattern Matching
Author: Chanak, Thomas Stephen
Date: November 1995
Abstract: A vast array of CAD tools are available to support the design
of integrated circuits. Unfortunately, tool development lags
advances in technology and design methodology - the newest,
most aggressive custom chips confront design issues that were
not anticipated by the currently available set of tools. When
existing tools cannot fill a custom design's needs, a new
tool must be developed, often in a hurry. This situation
arises fairly often, and many of the tools created use, or
imply, some method of netlist pattern recognition. If the
pattern-oriented facet of these tools could be isolated and
unified among a variety of tools, custom tool writers would
have a useful building block to start with when confronted
with the urgent need for a new tool.
Starting with the UNIX pattern-matching, text-processing tool
AWK as a model, a pattern-action processing environment was
built to test the concept of writing CAD tools by specifying
patterns and actions. After implementing a wide variety of
netlist processing applications, the refined pattern-action
system proved to be a useful and fast way to implement new
tools. Previous work in this area had reached the same
conclusion, demonstrating the usefulness of pattern
recognition for electrical rules checking, simulation,
database conversion, and more. Our experiments identified a
software building block, the "pattern object", that can
construct the operators proposed in other works while
maintaining flexibility in the face of changing requirements
through the decoupling of global control from a pattern
matching engine.
The implicit computation of subgraph isomorphism common to
pattern matching systems was thought to be a potential
runtime performance issue. Our experience contradicts this
concern. VLSI netlists tend to be sparse enough that runtimes
do not grow unreasonably when a sensible amount of care is
taken. Difficulties with the verification of pattern based
tools, not performance, present the greatest obstacle to
pattern-matching tools.
Pattern objects that modify netlists raise the prospect of
order dependencies and subtle interactions among patterns,
and this interaction is what causes the most difficult
verification problems. To combat this problem, a technique
that considers an application's entire set of pattern objects
and a specific target netlist together can perform analyses
that expose otherwise subtle errors. This technique, along
with debugging tools built specifically for pattern objects
and netlists, allows the construction of trustworthy
applications.
http://i.stanford.edu/pub/cstr/reports/csl/tr/95/681/CSL-TR-95-681.pdf