AlpsDoc.tioga
Created by Bertrand Serlet, September 26, 1985 1:40:53 pm PDT
Last Edited by: Serlet, June 27, 1985 12:12:08 pm PDT
HOW TO USE Alps
CEDAR 5.2 — FOR INTERNAL XEROX USE ONLY
Alps: Generating Layout from boolean equations
User manual
Bertrand Serlet
© Copyright 1985 Xerox Corporation. All rights reversed.
Abstract: Alps has nearly the same functionality as a PLA generator. It uses a library of cells, a set of user-defined parameters including either truth-table or program generating boolean equations, and generates Alps structures with the help of PatchWork. Alps is particularly adapted to small problems (a dozen of inputs, a dozen of outputs), and has a better topology than PLA for generating Finite-State-Machines. It can be used interactively from ChipnDale.
[If you are reading this document on-line, try using the Tioga Levels menus (if you can) to initially browse the top few levels of its structure before reading it straight through.]
XEROX Xerox Corporation
Palo Alto Research Center
3333 Coyote Hill Road
Palo Alto, California 94304
For Internal Xerox Use Only
0. Introduction
Alps is not just another PLA generator. PLAs are laid out from equations represented in sum of products (=Disjunctive Normal Form =D. N. F.), while Alps is using a completely different compact representation. It is combinatorial logic with pull-down chains and cascode switches. More on this subject in AlpsGenerationDoc.tioga.
1. The equation handling
The only thing to know about it without entering into details is that optimisation consists mainly in permuting variables.
2. The Truth Table and Boolean Equations
You can specify your equations with a truth table, or with an expression which evaluates to a set of boolean equations (for the latter one, if you really need that, come and see mee). Names listed under the "Inputs" and "Outputs" options are the names of the entries if the input is a truth table. If a name belongs both to the Inputs and the Outputs, it is assumed that the output is latched and fed back to the input using a two non-overlapping clocks scheme. Some cells exist in the Alps cell library for latching.
The truth table is specified in "Berkeley format", i.e. something like
01010101 | 10001000
01000101 | 10011000
01110101 | 11101100
01000101 | 00001010
01000101 | 00001010
00010101 | 00100000
01-00101 | 10101001
In fact, some zeros, can be replaced by dots or minus signs, depending on the plane in which they occur. Do not add comments even preceded with "--". Spaces are OK.
On the left side is the AND plane, where every column represent an input; on the right side the OR plane and the outputs. The rows are of course product terms. This PLA-like representation is not the one used internally.
This format is not too smart, and we'll probably evolve towards something that incorporates the inputs and outputs names and types.
3. Options
The alps description is a file (name suffixed by ".alps", by convention) that contains the following options. Most of them are similar to PWPla description file.
TileSet ← "File where to get the tiles for the PLA";
-- Can be defaulted
Only change the default tiles if you know what you are doing. Come and see me!
TruthTableFile ← "FileContainingMyFavoritePLA.tt"; -- Required if equations not given by program
Inputs ← LIST["A", "reset", "in9"]; -- Both Required
Outputs ←
LIST["out1", "busCmd3"];
Names of the input and output signals to the PLA. If the same name appears in both inputs and outputs, Alps assumed this is a Latched wire.
Optimize ← TRUE; -- Optional. Default is TRUE
SuperOptimize ← 0; -- Tries all permutations (N!). Use only for wizzards
DistanceBetweenGlue ←
6
;
-- Optional.
If you have a small structure, meaning no strong timing constraint, you can set this parameter to 99, so never to put glue. Assuming you put DistanceBetweenGlue to 4 you can count 0.6 ns per input for the maximum delay.
DistanceBetweenContacts ←
10
;
-- Optional.
If you have a small structure, meaning no long poly lines, you can set this parameter to 99, so never to put contacts between poly and metal2.
Debug ←
FALSE;
-- Optional. Default is FALSE
Internal flag used only for program debugging.
4. Becoming a user
First bringover [Cedar]<Chipndale>6.0>Top>Alps21.df in your default working directory (if you want to use it in an other directory, first copy the file "AlpsDefaultParameters.alps" and "AlpsCells.dale" in your default working directory. Those files were brought over with the .df file). Alps uses PW21, CD21 and Cedar 6.0.
Now to start Alps, issue the command
% Alps
after running Chipndale.
P-MiddleClick in any design calls the PW menu, and "Run MakeAlps generator" should be available. The Alps generator package comes with a complete example including
NW.alps -- the PLA decription
NW.tt -- its truth table
So just try it. Click the command "Run MakeAlps generator", provide the file name "NW.alps" and you should get a medium size Alps structure. Expect to wait a few minutes for a dozen inputs problem (like NW.alps), with plenty of nonsense messages on the Terminal. Of course, the use of the optimizer has increased the response time. Alps is still under development, and next releases will improve the displayed messages and the time for the generation. Perhaps also the layout area ...
5. Programming interface
There is a programming interface avalaible. Just come and see me for using it.