• 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. Schematic entry parameter as a function of instance nam...

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 126
  • Views 15404
  • 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

Schematic entry parameter as a function of instance name

yoyega
yoyega over 15 years ago

 Hi, I have a question concerning a schematic entry. Let's assume that I have defined a subcircuit that has pwl souce inside. This pwl source reads the point/time values from a file, and I want that the name of the file in the definition of the pwl source to be automatically set as a funcion of the name of the instance of the subcircuit. Does anyone knows how to do this?

Example:

subckt myckt
    I0 ( node1 node2 ) isource type=pwl file="a_function_of_the_name_of_the_instance_of_myckt"
    ...
end myckt

This way, if I have to instantiate several instances of myckt, each instance would automatically read point/time values from different files.

Thanks,
Pedro

  • Cancel
Parents
  • dmay
    dmay over 15 years ago

    It seems to me that the best approach would be to write Skill to generate your schematic. Making the parameter dynamically depend on the instance name wouldn't help you very much. Since you'll probably need to explicitly define the instance names, you might as well explicitly define the parameter (pwl file name) at the same time. You could also enhance the code below to wire up your array.

    procedure(buildPixelArray(@optional (cv geGetEditCellView()))
      let((myLib myCell myView origin instName fileName)
        myLib = "myLib"
        myCell = "pixelCkt"
        myView = "symbol"
        for(col 0 31
            for(row 0 31
                origin = list(row col)
                sprintf(instName "Pixel_%02d_%02d" row col)
                sprintf(fileName "/path/to/pwl/%s.pwl" instName)
                inst = dbCreateParamInstByMasterName(cv myLib myCell myView
                    instName
                    origin
                    "R0"
                    1
                    list(
                        list("myPwlParam" "string" fileName)
                    )
                )
            )
        )
      ) ;let
    ) ;proc

    Run this code with an empty schematic open for edit.

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • dmay
    dmay over 15 years ago

    It seems to me that the best approach would be to write Skill to generate your schematic. Making the parameter dynamically depend on the instance name wouldn't help you very much. Since you'll probably need to explicitly define the instance names, you might as well explicitly define the parameter (pwl file name) at the same time. You could also enhance the code below to wire up your array.

    procedure(buildPixelArray(@optional (cv geGetEditCellView()))
      let((myLib myCell myView origin instName fileName)
        myLib = "myLib"
        myCell = "pixelCkt"
        myView = "symbol"
        for(col 0 31
            for(row 0 31
                origin = list(row col)
                sprintf(instName "Pixel_%02d_%02d" row col)
                sprintf(fileName "/path/to/pwl/%s.pwl" instName)
                inst = dbCreateParamInstByMasterName(cv myLib myCell myView
                    instName
                    origin
                    "R0"
                    1
                    list(
                        list("myPwlParam" "string" fileName)
                    )
                )
            )
        )
      ) ;let
    ) ;proc

    Run this code with an empty schematic open for edit.

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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