• 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 view easier the netlists set in Assura Netlisting...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 15963
  • 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 view easier the netlists set in Assura Netlisting Options Form

Laur
Laur over 7 years ago

Hi,

We use  a lot of CDL/etc. netlists for our Assura LVS run. In the daily work we have to change some of them and then we would like to have some possibility to view and check if all netlists are correct.

At present there is only one way to do it is by using this small view area at the bottom of the Assura Netlisting Options Form.

This is a bad joke from the GUI designer of this Form   :-(

We find it very difficult to use it for checking of set netlists.

Question : is there no other way to present the used netlists to the Assura user, some GUI like a viewfile window ?!?

Or is it possible to put a new button on the Assura Netlisting Options Form that will pop up a viewfile ?

Regards

Laurent

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    Hi Laurent,

    Not entirely sure what you mean. Are you asking about being able to see the contents of the files you've added? If so, that can be done by selecting the row, click Modify and then the View button allows you to see the contents:

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Laur
    Laur over 7 years ago in reply to Andrew Beckett

    Hi Andrew,

    No, I don't want to see the contents of the file but if all needed files/netlist are loaded AND if their path is the right one. In the case we have a lot of netlist then they don't fit anymore  in the displayed area and we have to scroll back and forth AND simultaneously up or down in this small view area ( on the picture encircled in green). You can imagine that one can oversee easily something and later LVS run is getting errors.

    I hope you can see my loaded picture.

    Regards

    Laurent

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Laur
    Laur over 7 years ago in reply to Andrew Beckett

    Hi Andrew,

    No, I don't want to see the contents of the file but if all needed files/netlist are loaded AND if their path is the right one. In the case we have a lot of netlist then they don't fit anymore  in the displayed area and we have to scroll back and forth AND simultaneously up or down in this small view area ( on the picture encircled in green). You can imagine that one can oversee easily something and later LVS run is getting errors.

    I hope you can see my loaded picture.

    Regards

    Laurent

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to Laur

    Hi Laurent,

    OK, I had a bit of fun knocking up a solution for this (didn't have time today really, but oh well...). Hopefully you are using IC617 or ICADV122 or later, because I wrote the code in a way that only works with those releases. 

    Anyway, here's the code (note the comments - a .ils suffix must be kept):

    /* abReviewAssuraNetlistFiles.ils
    
    Author     A.D.Beckett
    Group      Custom IC (UK), Cadence Design Systems Ltd.
    Language   SKILL
    Date       Jul 04, 2018 
    Modified   
    By         
    
    Defines a function to display the list of netlist files
    for Assura LVS on a friendlier form (with hypertext links to display
    the file contents).
    
    abReviewAssuraNetlistFiles() - displays the new form
    
    Also defines a trigger via vuiUserDefinedSetupCB to add a "Review"
    button onto the form so the above can be accessed. See comment
    above this function in case you need to change that behaviour.
    
    Note that this uses layout forms (so they can be nicely resized)
    which means you must be using IC617 or ICADV122 or later.
    
    This code uses SKILL++ semantics, so the .ils suffix must be kept.
    
    ***************************************************
    
    SCCS Info: @(#) abReviewAssuraNetlistFiles.ils 07/04/18.17:20:13 1.1
    
    */
    
    (importSkillVar abReviewAssuraNetlistFilesForm)
    
    /**********************************************************************
    *                                                                     *
    *                    (abReviewAssuraNetlistFiles)                     *
    *                                                                     *
    * Function to retrieve the files on the Assura LVS Netlisting Options *
    *       form and display them in a hypertext field for review.        *
    *                                                                     *
    **********************************************************************/
    (defun abReviewAssuraNetlistFiles ()
      (let (assuraForm fileList fileBits grid 
                       (removeHash (pcreCompile "^#")))
        /***************************************************************
        *                                                              *
        *     (hyperlinkCB _field _form _hyperlinkName hyperlink)      *
        *                                                              *
        * Local function which is the callback when the hypertext link *
        *       is clicked. Opens the file in a viewFile window        *
        *                                                              *
        ***************************************************************/
        (defun hyperlinkCB (_field _form _hyperlinkName hyperlink)
          (when (stringp hyperlink)
            (setq hyperlink (pcreReplace removeHash hyperlink "" 1))
            )
          (view hyperlink)
          t
          )
        /*****************************************************************
        *                                                                *
        *                          (createForm)                          *
        *                                                                *
        * Local function to create the form with a hypertext field. Uses *
        *                 a grid layout so it stretches                  *
        *                                                                *
        *****************************************************************/
        (defun createForm ()
          (let (allFiles)
            (setq allFiles
                  (hiCreateHypertextField
                    ?name 'allFiles
                    ?value ""
                    ?callback hyperlinkCB
                    ?hasHorizontalScrollbar nil
                    )
                  )
            (setq grid
                  (hiCreateGridLayout
                    'grid
                    ?items (list
                             (list allFiles 'row 0 'col 0)
                             )
                    )
                  )
            (hiCreateLayoutForm
              'abReviewAssuraNetlistFilesForm
              "Review Netlist Files"
              grid
              ?sizePolicy 'expanding
              )
            )
          )
        ;--------------------------------------------------------------------
        ; Get hold of Assura netlist options form and the files on the
        ; form, create our form if needed
        ;--------------------------------------------------------------------
        (setq assuraForm 
              (inSkill (and (boundp 'vuiLVSschNLoptionForm)
                            vuiLVSschNLoptionForm)))
        (when assuraForm
          (setq fileList (getq (getq assuraForm netlistFile) choices)))
        (unless (and
                  (boundp 'abReviewAssuraNetlistFilesForm)
                  abReviewAssuraNetlistFilesForm)
          (createForm))
        (putpropq (getq abReviewAssuraNetlistFilesForm allFiles)
                  ;----------------------------------------------------------
                  ; build the hyperlink for each file - the # in the href
                  ; stops the widget from following it directly
                  ;----------------------------------------------------------
                  (buildString
                    (foreach mapcar file fileList
                             (setq fileBits (parseString file "::"))
                             (sprintf nil "<div>%s::<a href='#%s'>%s</a></div>"
                                      (car fileBits)
                                      (cadr fileBits)
                                      (hiEscapeHTMLTags (cadr fileBits))
                                      )
                             )
                    ""
                    )
                  value
                  )
        (hiDisplayForm abReviewAssuraNetlistFilesForm)
        )
      )
    
    /****************************************************************************
    *                                                                           *
    *                     (vuiUserDefinedSetupCB _theForm)                      *
    *                                                                           *
    *     Initialisation function - this gets called before the LVS form is     *
    *  displayed. If you don't want this to be used, or if it clashes with an   *
    * existing trigger function in your environment, you may need to comment it *
    *  out, or rename it and call it from your existing vuiUserDefinedSetupCB.  *
    *                                                                           *
    *  All it does is add a "Review" button onto the Netlisting Options form.   *
    *                                                                           *
    ****************************************************************************/
    
    (defun vuiUserDefinedSetupCB (_theForm) 
      (let (assuraForm)
        (setq assuraForm
              (inSkill (and (boundp 'vuiLVSschNLoptionForm)
                            vuiLVSschNLoptionForm)))
        (when (and
                assuraForm
                (null (getq assuraForm abNetlistReview)))
          (let (review)
            (destructuringBind 
              (xy size) (hiGetFieldInfo assuraForm 'netlistFileMod)
              (setq review
                    (hiCreateButton
                      ?name 'abNetlistReview
                      ?buttonText "Review"
                      ?callback "(abReviewAssuraNetlistFiles)"
                      ))
              (hiAddField
                assuraForm
                (list review 
                      (list
                        (plus (xCoord xy) (xCoord size) 10)
                        (yCoord xy))
                      size)
                )
              )
            )
          )
        t
        )
      )
    

    If this code is loaded, then upon invocation of Assura->Run LVS a button will be added onto the Netlisting Options form:

    When you click on this, you get:

    The blue text are hypertext links - you can click on them to see the contents of each file in a view window. The form is resizable - and has a vertical scrollbar, so you should be able to get to all the files easily enough.

    Does that do what you want?

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Laur
    Laur over 7 years ago in reply to Andrew Beckett

    Thank you very much Andrew ! :-)

    Your solution is marvelous !!!

    It is exactly what I was looking for and is working perfect.

    Best Regards

    Laurent

    • 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