batch mode gds stream out

Discussion in 'Cadence' started by sajin, Nov 15, 2006.

  1. sajin

    sajin Guest

    Hi all
    Can anybody help me doing a batch mode gds stream out of
    cells which are in cadence format(cdb). My aim is like given a list of
    cells the script should dump out the corresponding gds of cells. I
    think the script can be in PERL or SKILL, but not quite sure. One
    clarification here is that the output should not be like all gds in one
    file, but all cells should have their corresponding gds file
    Thanking all in advance
    Sachin
     
    sajin, Nov 15, 2006
    #1
  2. sajin

    wre Guest

    Hi Sajin,

    This can be done with pipo. Info:
    pipo -h

    Usage: pipo Translator SetupFile
    Translator = strmin, cifin
    strmout, cifout
    strmtechgen, ciftechgen


    Use:
    pipo strmout strmout.cfg

    A few remarks:
    You need to create the strmout.cfg file first.
    At our system, after pipo returns, the files are not necessarily there
    yet.
    So in my script, I added a wait for file routine after the pipo command
    before
    continuing.

    a few extracts from my script (not complete):

    I'm using ksh shell scripting. Note that a few variables need to be
    defined first.
    eg. the Library and Cell names or the layermap table. Check your
    present
    layermap table for your own settings.

    To create the strmout.cfg file I use:

    cat <<end_of_file
    streamOutKeys = list(nil
    'runDir "$Path"
    'libName "$Lib"
    'primaryCell "$Cell"
    'viewName "layout"
    'outFile "$Cell.gds2"
    'scale 0.001000
    'units "micron"
    'hierDepth 32
    'convertToGeo ""
    'maxVertices 200
    'refLib nil
    'libVersion "5.0"
    'checkPolygon nil
    'snapToGrid nil
    'simMosaicToArray t
    'caseSensitivity "preserve"
    'lineToZeroPath "path"
    'convertDot "ignore"
    'rectToBox nil
    'convertPathToPoly nil
    'useParentXYforText nil
    'reportPrecision nil
    'runQuiet nil
    'errFile "$Cell.pipoLog"
    'NOUnmappingLayerWarning nil
    'techFileChoice nil
    'pcellSuffix "DbId"
    'respectGDSIILimits nil
    'cellMapTable ""
    'layerTable "$layerTable"
    'textFontTable ""
    'convertPin "geometry"
    'pinInfo 0
    'pinTextMapTable ""
    'propMapTable ""
    'propSeparator ","
    'userSkillFile ""
    'rodDir ""
    )


    after the pipo command returns I added:

    WFile $Path/$Cell.pipoLog
    if [[ $Err != 0 ]]
    then
    openall $Path/$Cell.pipoLog
    FlowE "\n $clr Error:$cl0 $Program: Did not succeed in Creating
    $Sdir$Cell.gds2 ."
    elif grep -q -e "referenced, but not defined" $Path/$Cell.pipoLog
    then
    openall $Path/$Cell.pipoLog
    FlowE "\n $clr Error:$cl0 $Program: Found referenced, but not
    defined problem in pipolog."
    fi
    WFile $Path/$Cell.gds2
    chmod 640 $Path/$Cell.gds2

    And my WFile function is:

    function WFile
    {
    [[ "$#" -eq 0 ]] && print " $clg Warning:$cl0 $Program: $0: no
    argument given.\n Usage: $0 [seconds] FileName." && return

    typeset wait waiting
    if [[ $1 == [0-9]* ]]
    then
    wait=$1
    shift 1
    else
    wait=30
    fi
    sleep 1
    while [[ $# -ne 0 ]]
    do
    waiting=$wait
    TFileArg=$1
    [[ -n $Workdir ]] && echo $1 | sed -e "s|$Workdir/||g" | read
    TFileArg
    [[ -n $Workdir ]] && echo $TFileArg | sed -e
    "s|${Workdir%/*}/|../|g" | read TFileArg
    'ls' $1 1>/dev/null 2>&1 && { shift 1; continue;} || print "
    $Program: Waiting for $TFileArg ."
    while ! 'ls' $1 1>/dev/null 2>&1
    do
    let waiting+=-1
    print -n "."
    sleep 1

    [[ $waiting == 0 ]] && { print "\n $clr Error:$cl0 $Program: Did
    not found $TFileArg ." && return 1 || break;}

    done

    [[ $waiting != 0 ]] && print "\n Found $TFileArg"

    print
    shift 1
    done
    }
     
    wre, Nov 15, 2006
    #2
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.