MBK2PS(1)

NAME

mbk2ps
    - Creates a PostScript file from a symbolic layout cell

SYNOPSIS

mbk2ps cellname
    [-b] [-c] [-cn] [-fl] [-m] [-i] [-in] [-p] [-r] [-rn] [-rot] [-s] [-si] [-sn] [-v] [-mn]
    [-f X0,Y0,X1,Y1] [-l layernumber=patternnumber] [-sc scale] [-fs fontsize]

DESCRIPTION
The need for a clean output on paper of designs is an important issue in every day designer's life, and also in a more long term sight, to archive and give information about old design, or to build a complete documentation, for a standard cell library for example.
In order to be as device independant and powerfull as possible, the choosen output file format is PostScript, since many today's device, laser printers, plotters, graphical terminals, etc, support it.
The input file format is given by an environment variable MBK_IN_PH that gives the appropriate symbolic layout file format. The possible values are cp, ap. See mbk(1) for details.
The path to the input file is set up by two environment variables MBK_WORK_LIB(3) and if not found in the directory then the directory pointed by MBK_CATA_LIB(3) is then searched through. The output of mbk2ps is a PostScript file with the name cellname.ps in the current directory. The resulting file can be then used on any adequat device.
At invocation time, the first argument must be the cellname. The options can be given in any order beside this restriction.

OPTIONS
With no options, mbk2ps generate a "standard file", with all options off. This is ok for leaf cells output, but not for hierarchical circuit.

-b  inhibits the drawing of the abutment box.

-c  inhibits the drawing of the connectors.

-cn inhibits the drawing of the connectors names.

-i  inhibits the drawing of the instances.

-in inhibits the drawing of the instances names.

-r  inhibits the drawing of the references.

-rn inhibits the drawing of the references names.

-s  inhibits the drawing of the segments.

-sn inhibits the drawing of the segments names.

-v  inhibits the drawing of the vias.

-mn if the -in option is not active, this option writes the name of the instance's model, not the instance one. It implies that either the instance name is written, or its model name, but not both of them at once.

-f X0,Y0,X1,Y1
    gives the frame coordinates, in dot units, on the page. You may give any number, but no check will be performed to ensure it fits on a particular paper size, since many devices can be used for plotting. The default values are {(20, 40), (570, 820)}, and are meant to be used with A4 paper.

-fl flattens the cell to the catalog level. Recommended mainly for routed circuits that have more than one hierarchical level.

-fs fontsize
    uses the fontsize argument as the new size for the font used to print objects names. If fontsize is not specified, then the value twelve is used by default. If fontsize is smaller than four, then four is used.

-l layernumber=patternnumber
    affects a pattern, given by it's number in the patternfont.ps file, to a layer, given by it's number in the mbk.h file. The patterns by default are the one recommanded, so if you're not a genius in PostScript, avoid this option.

-m  do not merge rectangles of a same layer in a polygon. This options is automatically turned on when circuits have instances, since the algorithm is quit time consuming, and not useful then.

-p  do not fill the polygons and rectangles with a pattern. This option is more than strongly recommended when translating big circuits. The gained time factor is approximatly 35! Do not use it for leaf cells, or you won't understand them.

-rot
    rotates the figure from plus 90 degrees before output. Notice that this rotation is perfomed in memory, not in the generated PostScript file.

-sc scale
    uses the scale argument as the new scale factor for printing. If scale is not specified, then the scale will be choosen to best fit the page.

-si executes silently. If not specified, a banner appears on the screen, and some internals informations are displayed at the end of the process, giving the actual scale, frame, name, etc.

patternsheet
    if cellname is "pattersheet", without quotes, then mbk2ps generates a demonstration file, called patternsheet.ps that draws a segment in each layer with its name and pattern, and also each contact with its name. This can be done once in order to have a reference for all the future uses of this tool.

EXAMPLES

You should first have a correct execution environment :
    setenv MBK_IN_PH cp
    setenv MBK_WORK_LIB ~fred/mbk/mbk2ps
    setenv MBK_CATA_LIB /labo/cells/scr

mbk2ps n1_y
    will create a n1_y.ps file in the current directory the "standard" way.

mbk2ps na2_y -sc 1.1
    will create a na2_y.ps file in the current directory with a scale of 1.1 (in arbitrary unit!). Don't get afraid, mbk2ps gives back a value for each plot. This option is useful when you want to plot many cells with the same scale, as in a library document.

mbk2ps bigcell -rot -fl -m -p -in -sn -fs 4
    will create a bigcell.ps file in the current directory with a 90 degrees rotation, a flatten to the catalog, no patterns, nor segments names, nor instance names, and without merging the layers, with a font size of 4, that is the minimun allowed value. Tipically, this is what you would do for a routed circuit.

mbk2ps z2l_y -f 20,40,820,1160
    will create a z2l_y.ps file in the current directory with a frame choosen to fit on an A3 paper. Just find the printer now!

SEE ALSO
mbk(1), MBK_IN_PH(3), MBK_CATA_LIB(3), MBK_WORK_LIB(3), MBK_CATAL_NAME(3), pageview(1), lpr(1).

DIAGNOSTICS
Merging algorithm, that makes a polygone from a bunch of crossing rectangles fails if a loop exists. Do use the -m options in order to avoid it.
The generated PostScript is version 2.0. It may not run with 1.0 interpreters, due to the use of new structure conventions.
The pattern filling algorithm is written in PostScript, and when interpreted, may take a lot of time on big circuits. Even a printer timeout error can occur on machine having to few Kbytes of ram. This is not a mbk2ps generated PostScript error, but a misuse of it. If such a problem occurs, just use the -p option.