• 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 Design
  3. Is there a way to use the vpwlf file from the Cell

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 125
  • Views 14878
  • 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

Is there a way to use the vpwlf file from the Cell

milind123
milind123 over 5 years ago

I am trying to avoid hard coding the path in the vpwlf parameter. It would be nice to be able to specify the filename from the cell and store the file in the cell itself.

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

    The path doesn't have to be a full path - you can just give the file name component (everything except the directory) and then specify via Setup->Simulation Files the Include Path to specify directories to search for files from.

    There is no built-in support for referencing a PWL file from a cellView. However, it's very easy to do without needing any SKILL customisation, with a bit of lateral thinking.

    1. Create a cellView, say called mylib/pwlblock/pwl of type "text". In the text editor, paste your PWL file contents
    2. Create another cellView, called mylib/pwlblock/spectre of type "Spectre". In the text editor, put this content - note the relative file inclusion of the PWL file from your pwl view
      // "spectre" description for "mylib", "pwlblock", "spectre" 
      
      simulator lang=spectre
      
      subckt pwlblock (plus minus)
      V1 (plus minus) vsource type=pwl file="../pwl/text.txt"
      
      ends pwlblock
    3. When you hit the save with a "check" mark on (or File->Extract) it will prompt you to create a symbol - arrange the pins how you want (I moved plus to the left and minus to the right), for example.
    4. Instantiate mylib/pwlblock/symbol in your schematic and then simulation. Voila! You're done.

    As promised, no SKILL was harmed in this solution. With this, you can put the PWL contents into a standard cellView, and have everything in the library with no need to specify any full paths anywhere.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • milind123
    milind123 over 5 years ago in reply to Andrew Beckett

    Thanks for the information. It is very strange however that it would recognize the relative path in spectre type and not in the vpwlf form?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to milind123
    milind123 said:
    It is very strange however that it would recognize the relative path in spectre type and not in the vpwlf form?

    It's not strange at all. The handling of the relative path is handled by spectre. It is relative to the file where the relative path is used, or the working directory (which is the netlist directory when using ADE), and the include path also has a play.

    With an instance of a vsource/vpwlf on the schematic, ADE produces a spectre netlist where that ends up as a spectre vsource line in the input.scs; for the spectre text view (the "pwl" view in my example) that is included into the input.scs via an include statement. So that means that the vsource in the schematic ends up looking for a file relative to the netlist directory, whereas the spectre.scs file included from the spectre view resolves the path relative to the location of that file - which is in the original library.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • milind123
    milind123 over 5 years ago in reply to Andrew Beckett

    Actually thats what I am talking about. When you keep all the design stuff at one place why would anyone want to specify the design spec or test bench spec relative to the netlist directory which most of the time would be transparent during the simulation. I think when specifying design components relative paths should be always interpreted relative to the design repository. That is how I would organize my design material. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • milind123
    milind123 over 5 years ago in reply to Andrew Beckett

    Actually thats what I am talking about. When you keep all the design stuff at one place why would anyone want to specify the design spec or test bench spec relative to the netlist directory which most of the time would be transparent during the simulation. I think when specifying design components relative paths should be always interpreted relative to the design repository. That is how I would organize my design material. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to milind123

    If the libraries are in your working directory, then  you can simply put "." in your include path in ADE, and then  you can specify the path as libName/cellName/viewName/fileName (so it could be mylib/mycell/pwl/text.txt on the vpwlf source for example).

    It's just not done by default, because we'd have to know you actually wanted spectre to do this. What one person wants is not necessarily what another person wants...

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • milind123
    milind123 over 5 years ago in reply to Andrew Beckett

    Thanks for the work around and the thought process for the design. For me I have worked in 4 bid semi companies and all of them maintain design repositories self contained. VPWLF has always been not preferred because everytime people thought you need absolute paths and then design repositories become non portable when archived. Just some feedback.

    • 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