-- FILE: Delay.mesa
-- Last edited by Ousterhout, July 5, 1983 12:01 pm

-- This file defines the routines used by Crystal to do delay analysis.

DIRECTORY
    Globals;

Delay: CEDAR DEFINITIONS =
BEGIN
OPEN Globals;

Propagate: PROC[prevStage: Stage];
    -- PrevStage gives information about a node that has changed value.
    -- This procedure looks for transistor gates and chip outputs whose
    -- values might change because of the change in the node.  For each
    -- of these, new stages are created and analyzed recursively.

DelayCmd: CmdProc;
    -- This command procedure invokes the delay calculations.  There
    -- are three arguments.  The first is the name of a node.  The second
    -- is the time at which the node rises (-1 means that the node never
    -- rises) and the third is the time at which the node falls (-1 means
    -- that the node never falls).

Stats: PROC[];
    -- This routine prints out various statistics gathered during delay
    -- analysis.

Print: BOOLEAN;
    -- TRUE means print out the names of nodes when their delay times
    -- are updated.  Only nodes whose first letters are alphabetic are printed.

PrintAll: BOOLEAN;
    -- TRUE means print out all nodes when their delay times change,
    -- regardless of whether the first letters are alphabetic.

BusThreshold: REAL;
    -- Threshold capacitance (in pfs) at which a node is considered to be
    -- a bus.

DelayLimit: INT;
    -- Limit of how many stages to examine before giving up delay analysis.

END.