6
Migrating from PIPO to XStream
This chapter contains the following sections:
Overview
From the ICOA5.1.51 release PIPO has been replaced by XStream on OpenAccess. Both PIPO and XStream provide Stream Out capability to generate GDSII format data required for mask generation, and both provide a Stream In capability to restore that data into a Virtuoso environment database. However there are differences in the functionality and use model of PIPO and XStream. The following sections explain these differences in terms of command line usage, arguments and options, template file, and syntax.
One difference between PIPO and XStream is that you could, to some extent, use PIPO as a Virtuoso environment database archival mechanism. For example, using PIPO you can preserve Pcells and keep ROD data though these options are not sufficient to archive the complete design information, such as connectivity or user defined groups. XStream on the other hand does not allow you to preserve Pcells and ROD data. XStream does not duplicate the archival mechanism of PIPO in OpenAccess.
PIPO-XStream Template File Differences
As a PIPO user, you might be running PIPO Stream In - Stream Out from the command line or from customized scripts with the command line function embedded within. These scripts might use established PIPO template files which can be managed outside of the Virtuoso environment GUI.
Moving to XStream, some options and the template file syntax has changed, so you cannot directly use existing PIPO template files with XStream. For example, PIPO template file implements the SKILL list syntax, whereas the XStream template file uses a straight ASCII text, space, and line delimited format. Each line contains the option or argument, the value, and an optional comment or description.
For a Boolean argument, the value is not shown. A nil or an unasserted option is preceded by the comment character, #. A t or asserted option is just listed without a value as shown below:
| PIPO | XStream Equivalent |
|---|---|
For all text, lists, and other string values, the values can be specified with or without quotes.
Numeric values are specified without any special characters. In-line comments, if present, are preceded by the comment character, #.
Although most PIPO options have identical XStream equivalents, some may have the same functionality but not an identical option name. Some of the seemingly arbitrary option name changes in XStream have been done to maintain compatibility with the native OA Stream translator.
The following section explains the differences in the commands and the options between PIPO and XStream.
Stream In Template File Mapping
The following table maps the PIPO Stream In options with the corresponding XStream options with notes on differences in functionality and changes in the use model.
Stream Out Template File Mapping
| PIPO Option | XStream Option | Notes |
|---|---|---|
|
In DFII on CDB, you could change the DBU/UU of a design at the library level. This is not permitted in OpenAccess and therefore not supported by XStream. |
||
|
In DFII on CDB, you could change the DBU/UU of a design and set the units at the library level. This is not permitted in OpenAccess and therefore not supported by XStream. |
||
|
This PIPO option flattens Pcells to geometry. XStream provides the Flatten Pcells option to flatten the Pcell instances in the designs. |
||
|
In PIPO this boolean option merely indicates whether to use reference libraries. XStream uses only one option Therefore the mapping is as follows: ’refLib t refLibList "XST_CDS_LIB" ’refLib nil refLibList "" For more information on refLibList see the Design Translation Using XStream Translator chapter of the Virtuoso Studio Design Environment Adoption Guide. |
||
|
This PIPO option allows you to change the version number of the output GDSII Stream. Default: 5.0. In XStream the version number of the output GDSII Stream is always 5.0. |
||
|
OA does not allow coincident or colinear points and removes them during creation of paths and polygons. XStream only reports incomplete or illegal polygons in the log file. |
||
|
By default on OA, mosaics are kept as OA arrays (AREF in SKILL). when you set |
||
|
In PIPO the template option Therefore the mapping is as follows:
‘lineToZeroPath "ignore" ignoreLines |
||
|
XStream does not support preservation of Pcells. See the Overview section for details. |
||
|
XStream does not do any data manipulation or data checking and therefore this option is not supported by XStream as yet. |
||
|
XStream does not perform this precision check and therefore this option is not supported by XStream. |
||
|
XStream does not filter warning and information messages during translation. All error, warning, and information messages are written to the log file. |
||
|
In PIPO, the error file contains messages and summary information. Therefore the PIPO template option |
||
|
XStream does not filter warning and information messages during translation. Therefore this option is not supported by XStream. |
||
|
The XStream option
The
The By default, the technology file of the source library is used to get information about the layers and purposes used in the design. |
||
|
XStream does not support preservation of Pcells. See the Overview section for details. |
||
|
XStream does not support preservation of Pcells. See the Overview section for details. |
||
|
By default, XStream uses a blank space as the property separator during Stream Out. You cannot specify a property separator during Stream Out though you can specify it during Stream In. |
||
|
In PIPO the following SKILL functions are supported:
In XStream all the above SKILL functions are supported for Stream Out except |
||
|
This option is not supported by XStream. Using PIPO you can preserve Pcells and keep ROD data though these options are not sufficient to archive the complete design information. XStream does not allow you to preserve Pcells and ROD data as it is not intended to be used as an archival mechanism. |
||
|
This is a SKILL reporting mechanism which is not applicable on XStream. Therefore, this option is not supported by XStream. |
||
|
XStream writes hierarchical information in the summary file. |
||
|
In XStream, you can specify the purpose on which blockages are to be translated. By default during Stream Out, blockages in the input OpenAccess database are translated as |
||
|
XStream provides two files for messages and summary information whereas in PIPO the error file contains both messages and summary information.
Therefore the PIPO template option |
Using the PIPO-XStream Template Conversion Utility
If you have been using PIPO and want migrate to XStream you can convert your existing PIPO templates to XStream template file using the pipo2Xstrm.pl utility. This utility can be accessed from the <install_directory>/tools/dfII/bin directory. This utility creates an XStream template file from an existing PIPO template file.
The command line syntax to execute this pipo2Xstrm.pl is as follows:
pipo2Xstrm.pl {-in PIPOTemplateFileName
[-out XStreamTemplateFileName]
[-log TranslationLogFileName]
[-overwrite]
[-help] }
If the pipo2Xstrm.pl utility fails to run, then copy the utility from <install_directory>/tools/dfII/bin directory to you local bin directory and modify the first line of code in the script by specifying the complete path from where you can use the perl executable:
#!/usr/bin/perl
#!<you_local_path_to_perl>
This utility automatically determines whether the input PIPO template file is for Stream In or Stream Out and creates the corresponding XStream template. If you specify a log file name, the log file contains:
- XStream replacements for PIPO options
- XStream inserted options for those missing from the PIPO template
- additional options specific to XStream, and
- PIPO options not supported in XStream on OpenAccess.
Using the PIPO-XStream Utility
The following section contains the sample XStream files translated from PIPO and the corresponding log files that the pipo2Xstrm.pl utility generates.
Use the following commands to run the utility.
pipo2Xstrm.pl - in streamOut.il -out xstrmIn.templt -log xlatestrmIn.log
..............
WARNING: Handling of mosaics has changed - review documentation on arrayInstToScalar
................................
PIPO to XStream strmIn template translation complete.
Review template output. You may want to change file names, etc. from retained values.
Following is a sample XStream stream in template file translated from PIPO
# XStream strmIn template translated from PIPO strmIn template.
# Source PIPO strmIn template file: streamIn.il
# Destination XSTREAM strmIn template file: xstrmIn.templt
# Wed Jul 20 20:46:51 2005
runDir "." # Run Directory
strmFile "test.gds" # Input Stream File
topCell "" # Toplevel Cell to Translate
library "strmLib" # Destination Library
loadTechFile "" # ASCII Tech File
logFile "PIPO.LOG" # Output Log File Name
hierDepth 32 # Hierarchical Depth to Translate to (0-32)
#snapToGrid # (t/nil)
#arrayInstToScalar # (t/nil)
case "lower" # upper | lower | preserve
#ignoreZeroWidthPath # (t/nil)
translateNode # (t/nil)
#skipUndefinedLPP # (t/nil)
#ignoreBoxes # (t/nil)
#keepStreamCells # (t/nil)
attachTechFileOfLib "" # Tech Lib to Attach to Target Lib
#NoOverwriteCell # (t/nil)
cellMap "" # Input Cell Map File
layerMap "layerMap" # Input Layer Map File
fontMap "" # Input Font Map File
pinAttNum 0 # Stream Attribute # (1-127) for Preserving Pins
propMap "" # Input Property Map File
propSeparator "," #
userSkillFile "" # Input User SKILL File
refLibList "" # File Containing refLibList
#mergeUndefPurposToDrawing # (t/nil)
viaMap "" # Input Via Map File
view "layout" # Destination View Name
summaryFile "" # Output Summary File
#disableLocking # (t/nil)
objectMap "" # Input Object Map File
Following is a sample of the corresponding pipo2Xstrm stream in translation log file
# Source PIPO strmIn template file: streamIn.il
# Destination XSTREAM strmIn template file: xstrmIn.templt
# Wed Jul 20 20:46:51 2005
runDir replaces runDir
strmFile replaces inFile
topCell replaces primaryCell
library replaces libName
loadTechFile replaces techfileName
scale is unsupported in XStream.
units is unsupported in XStream.
logFile replaces errFile
refLib is unsupported in XStream.
hierDepth replaces hierDepth
maxVertices is unsupported in XStream.
checkPolygon is unsupported in XStream.
snapToGrid replaces snapToGrid
WARNING: Handling of mosaics has changed - review documentation on arrayInstToScalar
arrayInstToScalar replaces arrayToSimMosaic
case replaces caseSensitivity
ignoreZeroWidthPath replaces zeroPathToLine
translateNode replaces convertNode
keepPcell is unsupported in XStream.
skipUndefinedLPP replaces skipUndefinedLPP
ignoreBoxes replaces ignoreBox
reportPrecision is unsupported in XStream.
keepStreamCells replaces keepStreamCells
attachTechFileOfLib replaces attachTechfileOfLib
runQuiet is unsupported in XStream.
saveAtTheEnd is unsupported in XStream.
NoOverwriteCell replaces noWriteExistCell
NOUnmappingLayerWarning is unsupported in XStream.
genListHier is unsupported in XStream.
cellMap replaces cellMapTable
layerMap replaces layerTable
fontMap replaces textFontTable
pinAttNum replaces restorePin
propMap replaces propMapTable
propSeparator replaces propSeparator
userSkillFile replaces userSkillFile
rodDir is unsupported in XStream.
refLibList replaces refLibOrder
comprehensiveLog is unsupported in XStream.
Adding missing PIPO option equivalents with default values.
Inserting mergeUndefPurposToDrawing with default value ’nil’
Adding new XStream options with default values.
New option ’viaMap’ with value ’""’
New option ’view’ with value ’"layout"’
New option ’summaryFile’ with value ’""’
New option ’disableLocking’ with value ’nil’
New option ’objectMap’ with value ’""’
PIPO to XStream strmIn template translation complete.
Review template output. You may want to change file names, etc. from retained values.
Following is a sample XStream stream out template file translated from PIPO
# XStream strmOut template translated from PIPO strmOut template.
# Source PIPO strmOut template file: streamOut.il
# Destination XSTREAM strmOut template file: xstrmOut.templt
# Wed Jul 20 21:13:45 2005
runDir "." # Run Directory
library "LIB" # Input Library
topCell "" # Toplevel Cell to Translate
view "layout" # Toplevel Cell View Name
strmFile "test.gds" # Output Stream File
hierDepth 32 # Hierarchical Depth to Translate to (0-32)
#flattenPcells # (t/nil)
maxVertices 200 # Limit of Vertices Allowed
#refLibList # Name of File Containing refLibList
#snapToGrid # (t/nil)
#arrayInstToScalar # (t/nil)
case "upper" # upper | lower | preserve
#ignoreLines # (t/nil)
convertDot "node" # node | polygon | ignore
#rectToBox # (t/nil)
#pathToPoly # (t/nil)
logFile "PIPO.LOG" # Output Log File Name
#respectGDSIINameLimit # (t/nil)
cellMap "" # Input Cell Map File
layerMap "layerMap" # Input Layer Map File
fontMap "" # Input Font Map File
convertPin "geometry" # geometry | text | geometryAndTxt | ignore
pinAttNum 0 # Stream Attribute # (1-127) for Preserving Pins
pinTextMap "" # Input Pin Text Map File
propMap "" # Input Property Map File
userSkillFile "" # Input User SKILL File
viaMap "" # Input Via Map File
summaryFile "" # Output Summary File
blockagePurpose "boundary" # Purpose Name for Blockages
techLib "" # Technology Library
objectMap "" # Input Object Map File
Following is a sample of the corresponding pipo2Xstrm stream in translation log file
# Source PIPO strmOut template file: streamOut.il
# Destination XSTREAM strmOut template file: xstrmOut.templt
# Wed Jul 20 21:13:45 2005
runDir replaces runDir
library replaces libName
topCell replaces primaryCell
view replaces viewName
strmFile replaces outFile
scale is unsupported in XStream.
units is unsupported in XStream.
hierDepth replaces hierDepth
flattenPcells replaces convertToGeo
maxVertices replaces maxVertices
refLibList replaces refLib
libVersion is unsupported in XStream.
checkPolygon is unsupported in XStream.
snapToGrid replaces snapToGrid
WARNING: Handling of mosaics has changed - review documentation on arrayInstToScalar
arrayInstToScalar replaces simMosaicToArray
case replaces caseSensitivity
ignoreLines replaces lineToZeroPath
convertDot replaces convertDot
rectToBox replaces rectToBox
pathToPoly replaces convertPathToPoly
keepPcell is unsupported in XStream.
useParentXYforText is unsupported in XStream.
reportPrecision is unsupported in XStream.
runQuiet is unsupported in XStream.
logFile replaces errFile
NOUnmappingLayerWarning is unsupported in XStream.
techFileChoice is unsupported in XStream.
pcellSuffix is unsupported in XStream.
genListHier is unsupported in XStream.
respectGDSIINameLimit replaces respectGDSIILimits
dumpPcellInfo is unsupported in XStream.
cellMap replaces cellMapTable
layerMap replaces layerTable
fontMap replaces textFontTable
convertPin replaces convertPin
pinAttNum replaces pinInfo
pinTextMap replaces pinTextMapTable
propMap replaces propMapTable
propSeparator is unsupported in XStream.
userSkillFile replaces userSkillFile
rodDir is unsupported in XStream.
comprehensiveLog is unsupported in XStream.
genListHier is unsupported in XStream.
Adding missing PIPO option equivalents with default values.
Adding new XStream options with default values.
New option ’viaMap’ with value ’""’
New option ’summaryFile’ with value ’""’
New option ’blockagePurpose’ with value ’"boundary"’
New option ’techLib’ with value ’""’
New option ’objectMap’ with value ’""’
PIPO to XStream strmOut template translation complete.
Review template output. You may want to change file names, etc. from retained values.
Return to top