ParsleyDoc.tioga
Rick Barth, October 10, 1986 4:29:07 pm PDT
PARSLEY
FOR INTERNAL XEROX USE ONLY
Parsley
Rick Barth
© Copyright 1985, 1986 Xerox Corporation. All rights reserved.
Abstract: Parsley is a hierarchical analyzer for synchronous sequential circuits.
Created by: Rick Barth
Maintained by: Barth <Barth.pa>
Keywords: timing analysis, synchronous sequential circuits
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
Introduction
Parsley is an analysis program for synchronous sequential circuits. It combines ideas from MOSSIM, Crystal, and Rosemary with a few new ideas of its own to efficiently enumerate the combinatorial paths of a synchronous sequential circuit and calculate the speed of these paths.
Definitions
A node is an electrical equipotential region. A vicinity is a set of nodes which are connected by resistive branches such as the channels of MOS transistors. Parsley models the voltage level of a node as a value from the set {L, H, X} just as Rosemary and MOSSIM model logic levels. A port is the interface to a node presented by some component. It has a current strength as well as a value. An input port is a port which is never driven but is sensed by a component. An output port is a port which is driven but never sensed by a component. A value context is a set of values which partition a synchronous sequential network into feedback free combinatorial circuits. A primary input is a vicinity which is sensed but is never driven by the circuit given a value context. The input ports of the circuit and the output ports of latches which are not currently sensing their inputs are connected to primary inputs. A primary output is a vicinity which is never sensed but driven by the circuit given a value context. The output ports of the circuit and the input ports of latches which are not currently sensing their inputs are connected to primary outputs. An infinite node is one which has a fixed value that cannot be changed by the circuit. It is able to supply an infinite amount of charge in order to maintain its value. Perhaps this idea could be subsumed by the general specification of impossible node values.
Operations
Allow specification of impossible combinations of node values. Generate all legal combinations given these specifications of illegal combinations. Mutual exclusion with active low or high values may be a sufficiently powerful primitive. It covers one hot decoders, multidriver wires, and nonoverlapping clocks.
Compute a partial ordering of the network given a value context. During the partial ordering computation check that the network is really cycle free as the value context is asserting. Keep all the data structures hierarchical while doing so.
Generate a total ordering of combinational paths given a partial ordering.
Generate the critical paths in descending order given a partial ordering. Prune the paths on the fly. Allow pruning by designer indication that the delay from one vicinity to another vicinity is the same along all paths.