ArbCountdown2.cm
Copyright Ó 1987 by Xerox Corporation. All rights reserved.
Louis Monier November 10, 1987 5:56:45 pm PST
Last Edited by: McCreight November 10, 1987 5:17:21 pm PST
                             
Assemble the whole chip, assuming the SC block has been checkpointed as ArbInFrame.core
                             
-- Start everything and read in the source design
Statistics on
-- you always want to know how long it took
ColorDisplayModeOff
-- saves a lot of cycles
Install DAUser
-- SpiceOps
-- and anything else you might need such as FSA, DP, Alps, ..., or any of your private code
← CedarProcess.SetPriority[background]
cdread Arbiter25
-- read the CD design
← &design ← CDViewer.FindDesign["Arbiter25"]
← &cx ← Sisyph.Create[&design, NIL]
-- this creates a context for Sysiph
-- Generate whole chip, assuming SC block has been cached on file
← &ct ← Sisyph.ES["Arbiter.sch", &cx]
-- this extracts the top-level schematic
-- ← CoreIO.ReportSaveCellType[&ct, "ArbSch.core"]
-- Apply Static
Install Static
← Static.CountLeafConnections[&ct, Static.CheckCount, CoreFlat.CreateCutSet[labels: LIST["Logic"]]]
-- errors can be found found in the terminal
-- Apply MintCheck
Install Mint
← &circuit ← Mint.CreateCircuit[&ct]
← MintCmds.PrepareCircuit[&circuit, FALSE];
← Mint.CheckLibrary[&circuit]
-- errors can be found found in the terminal
-- make a note of this number of transistors, and write home about it
-- you also get an estimation of the total capacitance which you can use to derive an upper bound on the average power consumption.
-- Simulate as completely as possible, at transistor level (assuming testproc)
Source TestArbiter.cm
-- Generate Layout
← &ob ← PWCore.Layout[&ct]
-- creates the CD object and attaches it to the cellType
← PWCore.Store[&ct, TRUE]  
-- saves the decorated Core under Arbiter.core, the layout under ArbiterLayout.dale, and a view of the public pins under ArbiterShell.dale
-- the decorated Core will be read back for future work
-- the layout will be DRCed, plotted, and turned into a Mebes file
-- the shell will be needed to check the pad position and make the probing and bonding maps
PW.Draw[&ob]
-- Check the connectivity
Install ConnectivityChecker
CheckConnectivity ArbiterLayout.dale
-- signals all disconnected internals; returns a list of disconnected publics
-- DRC ArbiterLayout.dale (we need a programming interface)
-- Plots
CDPlot Sleepy -k ArbiterLayout
-- Plot ArbLayout.dale and eyeball it
-- Use the shell to produce a bonding map; make sure that all bonding and wiring constraints are satisfied
-- Generate the Mebes files
source CDMEBESCMOSB01Oct87.load
← %CDMEBES.stripesPerClump ← 5;
← %CDMEBES.wDir ← "///mebes/"
← &layDesign ← PW.OpenDesign["ArbiterLayout"]
← CDProperties.PutDesignProp[&layDesign, $CDMEBESMaskSetName, "ARBNOV87A"]
-- 9 chars, alphanum
← CDMEBESMainImpl.StartMEBESMask[NEW[CDSequencer.CommandRec ← [design: &layDesign]]]
-- generates a bunch of files of the form ///mebes/ARBNOV87A/ARBNOV87A.dd
-- Smodel under /indigo/dragon7.0/Arbiter12Oct87.df and archive immediately
-- Visit your travel agent for good prices for Tahiti