• 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. getting error when using env variable in xstremout

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 6729
  • 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

getting error when using env variable in xstremout

saurabh96
saurabh96 over 2 years ago

Hello,

Am getting error when using env varaible to xstremout the _oa_gds.objectmap

i have set env as setenv CADENCE_PDK /home/test1/xyz

so when am giving layermapfile=$CADENCE_PDK/cadence_oa/test/maps/test_oa_gds.map

am getting error as ERROR (XSTRM-153): Failed to open object map file '$CADENCE_PDK/cadence_oa/test/maps/test_oa_gds.map'. Check that the file exists in the run directory and that you have permission to read it.
INFO (XSTRM-273): Translation failed. '1' error(s) and '0' warning(s) found.

i have check n ciw env is set correctly and file exist also.

now when am using absolute path as layermapfile=/home/test1/xyz/cadence_oa/test/maps/test_oa_gds.map
its working fine in XStrem Out

can you help what the issue how to correct it

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago

    Your post is extremely confused because it's talking about object map and layer maps - the error is related to object maps, yet you mention layermapfile=... (there is no setting called "layermapfile" for strmout - it's layerMap. And anyway the message talks about object maps!

    I have tested strmout from both the user interface and the command line with a templateFile - and both support environment variables. I found an old issue where it didn't work before but that was fixed some time ago, in IC617 ISR16.

    Since you didn't mention the version you're using, didn't say how you're invoking the stream out interface (from the form or from the command line), how you are passing these paths with environment variables to the stream out process (template file or command line or UI field), and also were rather vague about whether this was an object map or layer map, it's rather hard to help. Clear questions tend to lead to clear answers.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • saurabh96
    saurabh96 over 2 years ago in reply to Andrew Beckett

    sorry andrew, for confusion, let me be stright and explain in simple way-

    i have csv file in which is have defined

    test_file = $CADENCE_HOME/testfile.txt
    also $CADENCE_HOME is env var

    if i do get getShellEnvVar("CADENCE_HOME") Iin CIW i will get absolute path i.e /abc/xyz

    now i have another skill file in which i am reading the csv file and the test_file path

    but when am giviing test_file = $CADENCE_HOME/testfile.txt in csv its not working
    but when am defined test_file = /abc/xyz/testfile.txt in csv its working fine.

    am thinking to use eval function 

    can you please guide whats wrong and how to correct.

    beow is some part of code-

    procedure( extractCSV(csvfilename)
    CSVport = infile( csvfilename )
    indexcount=0
    indexstring = sprintf(nil "%L" indexcount)
    cvoptions = list(nil)
    cvoptions1 = list(nil)
    layerMapFile=nil
    objectMapFile=nil
    techLib=nil
    incFile=nil
    process=nil
    ams_path=nil
    lsfQueue=nil


    while( gets(myline CSVport)
    ;new cell view
    ;printf("--%L\n" myline)

    mylist1 = parseString( myline "=")
    varName = nth(0 mylist1)
    filePath = nth(1 mylist1)
    when( length(mylist1) == 2 && !rexMatchp( "#" car(mylist1)) && !rexMatchp( "//" car(mylist1))
    && varName == "test_file"
    rexCompile("\"")
    filePath = rexReplace(filePath "" 0)
    inFileContent=infile(filePath)
    printf("****************************\n")
    printf("Reading included file: %s" filePath)

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to saurabh96

    OK, so now you're asking a completely different question which is nothing to do with stream out. No wonder it's confusing.

    For your latest question, simply change:

    CSVport = infile( csvfilename )

    to

    CSVport = infile( simplifyFilename(csvfilename) )

    simplifyFilename will do the environment variable expansion.

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • saurabh96
    saurabh96 over 2 years ago in reply to Andrew Beckett

    Thanks a lot 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