• 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 load streamin for files in a directory

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 143
  • Views 13659
  • 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 load streamin for files in a directory

venuuuuu
venuuuuu over 13 years ago

Hi all,

I need to load streamin for files in a directory to a library (library is specified by user). Give me your suggetions to do it.

And can i run LVS,DRC  to  a library.

  • Cancel
  • venuuuuu
    venuuuuu over 13 years ago

     Hi all,

     I write a code for this which works not properly. First I take files which contain .gds as suffi. my code is below.

     In the template File field, specify a file with path and save it. For example /template/file and click on Save button.

    procedure(CCSStreamoutFiles( dirPath tempFileOrDPL @key (suffix ".gds") )
        let((gdsFileList )
            if(stringp(tempFileOrDPL) && isFile(tempFileOrDPL) then
                loadi(tempFileOrDPL)
            else
                error("\n Specify correct parameter file ...")
            ) ; if
            gdsFileList=setof(x getDirFiles(dirPath) and(isFile(x) rexMatchp(suffix x)))
          
          foreach(filename gdsFileList
                CCSImportstreamIn(strcat(dirPath "/" filename) streamInKeys filename )
                   ) ; foreach
            t
        ) ; let
    ) ; procedure
     
     

    procedure(CCSImportstreamIn(gdsFile streamInKeys filename )
        let((template fileName ipcId)
            streamInKeys~>inFile=gdsFile
            streamInKeys~>primaryCell =car(parseString(filename ".gds"))
            printf("Writing streamIn for %s to %s/%s layout\n"
                filename libName streamInKeys~>primaryCell
                     ) ; printf
            fileName=makeTempFileName("/tmp/StreamIn")
            template=outfile(fileName)
            fprintf(template "streamInKeys='%L\n" streamInKeys)
            close(template)
            ipcId=ipcBeginProcess(strcat("nino strmin " fileName))
            ipcWait(ipcId)
            deleteFile(fileName)
        ) ; let
    ) ; procedure
    ;; =============

     When i entered it in CIW

    CCSStreamoutFiles("/path/directory"  "/template/file")

    CIW shows :*Error* putprop: first arg must be either symbol, list, defstruct or user type -"/path/directory"

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    First of all, you're going to confuse yourself if the function is called CCSStreamoutFiles when actually it does a Stream In not Out.

    The problem is because you've used ~> with a disembodied property list (e.g. streamInKeys~>inFile). If the left hand side is a list, it is important whether you use -> or ~>. In the case of a disembodied property list, you must use ->, otherwise if you use ~> it will apply ~> to each member of the list and return a list of the results.

    So change all the streamInKeys~>... to streamInKeys->...

    Whilst I'm at it, I see you're calling "nino strmin". Not sure why, because it should be "pipo strmin". "nino" is a program to do "netlist in, netlist out" (although in practice it only does a netlist import). It is the underlying program behind File->Import->CDL in IC5141 (it used to be used for some other languages too).

    Regards,

    Andrew.

    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