-- FILE: DPrint.mesa
-- Last edited by Ousterhout, December 13, 1983 11:26 am
-- This file defines the routines used to Crystal to record and print
-- out delay information.
DIRECTORY
Globals,
IO;
DPrint: CEDAR DEFINITIONS =
BEGIN
OPEN Globals;
Record: PROC[stage: Stage, list: listType];
listType: TYPE = {any, memory, watched};
-- This procedure records the delay path given by stage and
-- its predecessors, if this is one of the longest paths seen so
-- far. The list parameter indicates which list of slowest
-- paths this one should be recorded on. There are three
-- lists, one for the worst paths overall, one for the worst paths
-- to memory nodes, and one for the worst paths to nodes that
-- the user explicitly requests to watch.
PrintStage: PROC[stream: IO.STREAM, stage: Stage];
-- This procedure prints information about the path leading
-- up to stage. The info is printed in stream.
CriticalCmd: CmdProc;
-- This command procedure processes the "critical" command.
-- It reads arguments and prints out delay information. The
-- command takes any of several arguments. If a file name
-- is given, the critical path is written to that file. Otherwise
-- output is to standard output. If a number is given, the
-- number'th slowest path is printed out (otherwise, the slowest
-- path is printed). If the number is followed by an "m"
-- then only memory paths are considered.
Clear: PROC[];
-- Clear just nulls out all the recorded delay information in
-- anticipation of a new delay analysis.
Stats: PROC[];
-- Prints out various statistics gathered during delay recording
-- and printing.
RecomputeCmd: CmdProc;
-- Recomputes delays through each of the critical paths, using
-- the current delay model.
DumpCmd: CmdProc;
-- Dumps all the critical paths to the file contained in the first
-- argument.
UndumpCmd: CmdProc;
-- Reads back in dumped critical paths from the file contained
-- in the first argument. This is done in a very sloppy fashion:
-- the nodes and transistors along the critical path have no
-- relationship to actual nodes and transistors that might have
-- been read from a .sim file.
NumPaths: ARRAY listType OF INT;
-- Number of slowest paths to record. Fewer paths will likely
-- make Crystal run faster. There's a separate count for each
-- type of list.
MaxPaths: INT = 100;
-- Maximum allowable value for NumPaths.
Threshold: ARRAY listType OF REAL;
-- These values are exported to save procedure invocation overhead.
-- Delays less than the threshold values cannot possibly be among
-- the longest seen so far.
PrintEdgeSpeeds: BOOLEAN;
-- TRUE means print out edge speeds when printing critical
-- path information.
END.