• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. How to export GDS using terminal

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 19382
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to export GDS using terminal

Muralidhar
Muralidhar over 8 years ago

Hi,

I want to export GDS from the given layout. I know that it can be done by using Virtuoso CIW like File-->Export-->streamOut and giving the required fields. But I want to do it using terminal (linux commands). I have seen that it can be done using strmout command but I don't know how to do it. Please tell me how to use it. If possible give an example.

Thanks,

  • Cancel
  • skillUser
    skillUser over 8 years ago

    strmout -library <libName> -topCell <cellName> -view <layout|viewName> -strmFile <outputGDSFile> -logFile strmout.log

    There are many options so you may need to adjust the command accordingly.  You could try reading the documentation?  You didn't say which version you are using, which is important information. Here's an example of "strmout -help":

    
    Usage: strmout
    	-library		Input Library
    	-strmFile		Output Stream File
    	[-strmVersion]		Stream Version Number
    	[-runDir]		Run Directory
    	[-topCell]		Toplevel Cells to Translate
    	[-view]			Toplevel Cell View Name
    	[-logFile]		Output Log File Name
    	[-summaryFile]		Output Summary File
    	[-techLib]		Technology Library
    	[-hierDepth]		Hierarchical Depth to Translate to
    	[-layerMap]		Quoted List of Layer Map Files
    	[-translateUnmappedLPP]	Allow undefined LPP to be translated by incrementally mapping LPP using layerMap file, SKILL hook poLayerMap, and automatic layer mapping
    	[-labelMap]		Input Label Map File
    	[-labelDepth]		Hierarchical Depth to Add Labels to
    	[-replaceBusBitChar]	Replace "<>" With "[]"
    	[-cellMap]		Input Cell Map File
    	[-fontMap]		Input Font Map File
    	[-propMap]		Input Property Map File
    	[-objectMap]		Quoted List of Object Mapping Files
    	[-viaMap]		Via Mapping File
    	[-viaCutArefThreshold]	Threshold Value For Creating AREF For Cut Geometries For Via
    	[-userSkillFile]	User Skill File>
    	[-refLibList]		Name of The File Containing Refliblist 
    	[-arrayInstToScalar]
    	[-cellNamePrefix]	Cell Name Prefix
    	[-cellNameSuffix]	Cell Name Suffix
    	[-ignoreTopCellPrefixSuffix]	Ignore cellName Prefix and Suffix for topCell
    	[-case]			upper | lower | preserve 
    	[-labelCase]		upper | lower | preserve 
    	[-ignoreLines]
    	[-noOutputTextDisplays]
    	[-noOutputUnplacedInst]	Do not Output Unplaced Instances
    	[-convertDot]		node | polygon | ignore 
    	[-convertPin]		geometry | text | geometryAndText | ignore 
    	[-pinAttNum]		Stream Attribute Num (1-127) For Preserving Pins
    	[-pathToPolygon]	Convert Paths to Polygons
    	[-diagonalPathToPolygon] Convert Paths with non-orthogonal segments to polygons
    	[-propValueOnly]	Output Property Values Only
    	[-rectToBox]
    	[-respectGDSIINameLimit]
    	[-gdsCellNameLength]	Truncate GDS Cell/STRUCT name length to specified value (>=10)
    	[-flattenPcells]
    	[-flattenVias]
    	[-flattenViaShapesToViaPurp]	Flatten Vias' Shapes to Via Purpose
    	[-doNotPreservePcellPins]
    	[-snapToGrid]
    	[-dbuPerUU]		DB Units per user units
    	[-reportPrecisionLoss]	Report Precision Loss Because of dbuPerUU Value
    	[-noObjectProp]
    	[-ignorePcellEvalFail]
    	[-mergePathSegsToPath]	Merging pathSegs into a single PATH
    	[-noConvertHalfWidthPath]	Do not Convert The Half Width Path to Boundary
    	[-checkPolygon]		Report Bad Polygons And Paths
    	[-backupGdsLogFiles]	Backup GDSII and LOG files, if they already exist
    	[-maxVertices]		Maximum Limit of Vertices (5-4000) Allowed in Stream File
    	[-strmTextNS]		NameSpace of The TEXT Records in The Stream File
    	[-templateFile]		Name of The File Containing Option Names And Values
    	[-cellListFile]		Name of the file containing cellList
    	[-outputDir]		output directory
    	[-noInfo]		Quoted List of Info Message Ids
    	[-noWarn]		Quoted List of Warning Message Ids
    	[-warnToErr]		Quoted List of warning Message Ids
    	[-infoToWarn]		Quoted List of Info Message Ids
    	[-donutNumSides]	Number of sides (Positive value) for the BOUNDARY of donut
    	[-ellipseNumSides]	Number of sides (Positive value) for the BOUNDAR of ellipse
    	[-wildCardInCellMap]	Wild Card in cell map file
    	[-ignoreMissingCells]	Ignore Missing cellViews During Translation and Continue Translation
    	[-subMasterSeparator]	Separator to used for sub-master naming (default: "_CDNS_")
    	[-convertPcellPin]	geometry | text | geometryAndText | ignore (default: convertPin value)
    	[-guiHistory]		Use options of last successful translation from the XStream Out GUI
    	[-ignoreZeroWidthPathSeg]	Ignore zero width PathSeg during translation
    	[-ignoreObjectMapFromTech]	Ignore object map file from technology
    	[-enableColoring]	Enable Coloring Support
    	[-mapAllColorToLocked]	Map all the Colored Shapes to Locked DataType
    
    
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Muralidhar
    Muralidhar over 8 years ago
    Thanks.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Muralidhar
    Muralidhar over 8 years ago
    Actually my goal is to generate busplots using perl script in the terminal. I wrote some script that will generate busplot for a particular net using the command
    "calibre -drc filename " in the terminal where we source the virtuoso to get licenses. But the problem with this is we need to enter gds name and netname manually.

    I have create a perl script that will generate a dummy file with the gdsname and netname like as below in the terminal
    "perl filename gdsname netname". It is creating a file with the modifications like gds and net names. But my question is how to include this strmin (or) strmout functions in the perl script? Is it possible or not ?
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    I've no idea what a "busplot" is, but I don't think that matters.

    Invoking a UNIX command from perl can be done numerous ways, but using the "system" function in perl is probably the easiest. Type "man perlfunc"  and then do /^ *system / to find it in the manual. You can use this to call strmout.

    A rather strange question - sounds as if  you don't have much perl experience (and this is not a perl forum, of course...)

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information