-- FILE: Check.mesa
-- Last edited by Ousterhout, August 23, 1983 12:52 pm

-- This file defines the routines used by Crystal for performing
-- static checks on the circuit, such as for improper nMOS ratios
-- and nodes that can't be driven.

DIRECTORY
    Globals,
    IO;

Check: CEDAR DEFINITIONS =
BEGIN
OPEN Globals;

CheckCmd: CmdProc;
    -- This procedure performs some simple static electrical checks.
    -- It shouldn't be invoked until after transistor flow has been
    -- determined.  Warning messages are output about the following
    -- dubious features:
    --
    -- 1. Nodes not attached to any transistors.
    -- 2. Nodes that can't be driven.
    -- 3. Nodes that don't drive anything.
    -- 4. Transistors that can't pass information.
    -- 5. Bidirectional transistors with no flow attributes.
    -- 6. Transistors between Vdd and Ground.

RatioCmd: CmdProc;
    -- This command procedure checks the whole circuit to be sure
    -- that the nMOS ratio rules are obeyed.  The command line may
    -- contain arguments of the form "limit value" to change the
    -- acceptable range for ratios.

ratioLimit: INT;
    -- Maximum number of ratio error messages to be printed about
    -- any given incorrect ratio.

totalRatioLimit: INT;
    -- Maximum total number of ratio error messages to print.

END.