IOBCountdownSourceChecks.cm
Copyright Ó 1987 by Xerox Corporation. All rights reserved.
Jean-Marc Frailong November 25, 1987 3:00:05 pm PST
-- Goal
-- This command file does all the source-level checks on the IOBridge
-- Start everything, read in the source design and extract chip
ColorDisplayModeOff
Install IOBridge
← CedarProcess.SetPriority[background]
Statistics on
← &design ← IOBridge.GetDesign[]
← &cx ← Sisyph.Create[&design, NIL]   
← &ct ← Sisyph.ES["IOBridge.sch", &cx]
ForceReclaimFreePages 5; ForceReclaimFreePages 5
← SafeStorage.ReclaimCollectibleObjects[TRUE, TRUE]
ForceReclaimFreePages 5; ForceReclaimFreePages 5
-- Apply Static, errors on terminal
Install Static
← Static.CountFlatConnections[&ct, Static.ConnectionCheck, CoreFlat.CreateCutSet[labels: LIST["Logic"]]]
← Static.CountHierarchicalConnections[&ct, Static.ConnectionCheck, CoreFlat.CreateCutSet[labels: LIST["Logic"]]]
-- Apply MintCheck (analysis of incorrect electric connections) on schematic
Install Mint
← &circuit ← Mint.CreateCircuit[&ct]
← MintCmds.PrepareCircuit[&circuit, FALSE]
← Mint.CheckLibrary[&circuit]
← Mint.KillCircuit[&circuit]
← &circuit ← NIL
ForceReclaimFreePages 5; ForceReclaimFreePages 5
← SafeStorage.ReclaimCollectibleObjects[TRUE, TRUE]
ForceReclaimFreePages 5; ForceReclaimFreePages 5
-- Perform Mint timing analysis on schematic
Install Mint
← &circuit ← Mint.CreateCircuit[&ct]
← MintCmds.PrepareCircuit[&circuit, FALSE]
← &clkList ← LIST [Mint.NodeFromRope["public.Clock", &circuit], Mint.NodeFromRope["public.PCLK", &circuit], Mint.NodeFromRope["public.DBusIn[?]", &circuit]]
← Mint.RecordPaths[&circuit, &clkList]
← &lastNodes ← Mint.FindSlowestPaths[&circuit, 10, TRUE]
← Mint.PrintPathArray[&lastNodes, &circuit]
← Mint.KillCircuit[&circuit]
← &circuit ← &lastNodes ← NIL
ForceReclaimFreePages 5; ForceReclaimFreePages 5
← SafeStorage.ReclaimCollectibleObjects[TRUE, TRUE]
ForceReclaimFreePages 5; ForceReclaimFreePages 5
-- Simulate as completely as possible, at transistor level using oracle
← &oracle ← Sisyph.ES["IOBridge.test", &cx]
← Ports.CoerceNewToOld[&oracle.public]
← Rosemary.SetFixedWire[CoreOps.FindWire[&oracle.public, "Vdd"], H]
← Rosemary.SetFixedWire[CoreOps.FindWire[&oracle.public, "Gnd"], L]
← &tester ← RosemaryUser.TestProcedureViewer[cellType: &oracle, testButtons: LIST["Logic Test"], name: "IOBridge transistor level test", cutSet: NIL]
← RosemaryUser.StartTest[&tester]
RollBackAnd IOBCountdownSCLayout