batch mode gds stream out

S

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
 
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
}
 

Welcome to EDABoard.com

Sponsor

Back
Top