• 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. Use skill to export gdsII

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 144
  • Views 14154
  • 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

Use skill to export gdsII

ardardachung
ardardachung over 7 years ago

HI:

I want to export GDS from the layout. I know that it can be done by using Virtuoso CIW ( File-->Export-->stream). But I need to use the skill to done it . I use virtuoso IC6.1.7

My code is :

procedure(strmout_gds()

cellid = geGetEditCellView()
printf("cellid %L \n" cellid)

thisLibName = cellid->libName
printf("thisLibName %L \n" thisLibName)

thisCellName = cellid->cellName
printf("thisCellName %L \n" thisCellName)

streamOutKeys = ncons(nil)

streamOutKeys->runDir = "."

streamOutKeys->libName = thisLibName

streamOutKeys->primaryCell = thisCellName

streamOutKeys->viewName = "layout"

streamOutKeys->scale = 0.001

streamOutKeys->units = "micron"

streamOutKeys->libVersion = "5.0"

streamOutKeys->errFile = "PIPO.LOG"

streamOutKeys->outFile= strcat("/home1st/art83420/NCSU-FreePDK15-1.2_final/FreePDK15/cdslib" thisCellName ".calibre.gds")

id = ipcBeginProcess("cd /home1st/art83420/NCSU-FreePDK15-1.2_final/FreePDK15/cdslib; source .bashrc; pipo strmout xstrmOut.templt")
printf("id %L\n" id)

ipcWait(id)

)

I found examples at the following URL
http://www.dayexie.com/detail2035097.html

My problem is the code can run and doesn't have error. But can't generate gds

Have anyone can tell me where is the problem or how to write the code

thanks




  • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    You're using the old IC5141 (and before) way of doing stream out, which used the "pipo" executable. Nowadays you can use a combination of xstSetField() calls to configure what  you want to write, then xstOutDoTranslate() to do the translation. No need to call any ipc processes. 

    Your code as is will fail because there is no "pipo" executable any more. Because you're not reading the output of the ipc process, you're not seeing any error - had you done ipcReadProcess(id) at the end, you'd have seen the failure message.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 7 years ago

    Hi ardardachung

    You can use the CCSgenGdsFile procedure in COS article 11803100.

    Best regards
    Quek

    • 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