• 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. redirecting the log from CIW to file for forms with nested...

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 149
  • Views 15143
  • 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

redirecting the log from CIW to file for forms with nested procedures

Chikoo
Chikoo over 13 years ago

Hi,

Is there a way to redirect the log from CIW to a log file when you have multiple procedures that are being called.

I have seen the command hiStartLog() and hiEndLog() which will allow you to send all log data to an additional second file for a sinlge function.As there are multiple callbacks(nested functions) in case of forms etc  the same cannot be used in that case.

Is there any other option to save the log?

Thanks ,

Chikva.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

     I don't really see why you can't use hiStartLog or hiEndLog for this purpose. Another alternative is to redefine the poport, errport and woport variables to write to a different file (but this must be used with caution).

    A couple of SKILL++ code files which might help:

    /* abRedirectOutput.ils
    
    Author     A.D.Beckett
    Group      Custom IC (UK), Cadence Design Systems Ltd.
    Language   SKILL
    Date       Aug 12, 1998 
    Modified   Dec 22, 2011 
    By         A.D.Beckett
    
    Call using abRedirectOutput(t) or abRedirectOutput(nil)
    to turn printing to CIW on or off.
    
    Note, this is SKILL++, so requires file to end in .ils
    
    ***************************************************
    
    SCCS Info: @(#) abRedirectOutput.ils 12/22/11.11:08:13 1.3
    
    */
    
    /* going to define abRedirectOutput */
    (define abRedirectOutput nil)
    
    /* private variable containing port to /dev/null */
    (let (nullport)
    
    (procedure (redirect on)
      (if on
          (progn
           (unless nullport
                   (setq nullport (outfile "/dev/null")))
           (setq poport nullport)
           )
          (progn
           (setq poport (inSkill stdout))
           (close nullport)
           (setq nullport nil)
           )
          )
      on)
    
    /* export it */
    (setq abRedirectOutput redirect)
    )
      
    And the other:

     

    /* abPoPortPush.ils
    
    Author     A.D.Beckett
    Group      Custom IC (UK), Cadence Design Systems Ltd.
    Language   SKILL
    Date       Jan 20, 1999 
    Modified   
    By         
    
    Defines two functions abPoPortPush(port) and abPoPortPop()
    which allow the current poport to be replaced by a new value,
    and restored afterwards. Implemented internally as a stack,
    so the calls can be nested.
    
    This is SKILL++ code, so must keep the .ils extension
    
    ***************************************************
    
    SCCS Info: @(#) abPoPortPush.ils 01/20/99.08:23:43 1.1
    
    */
    
    /* make the normal output port accessible */
    (importSkillVar poport)
    
    /* predeclare exported functions - don't have to do this really */
    (define abPoPortPush nil)
    (define abPoPortPop nil)
    
    (let (portStack)
      (defun portPush (port)
             (setq portStack (cons poport portStack))
             (setq poport port)
             )
      (defun portPop ()
             (when portStack
                   (setq poport (prog1 (car portStack) 
                                       (setq portStack (cdr portStack))))
                   ))
      /* export the functions */
      (setq abPoPortPush portPush)
      (setq abPoPortPop portPop)
      )
    

     

     

    • 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