Home
  • Products
  • Solutions
  • Support
  • Company
  • Products
  • Solutions
  • Support
  • Company
Community Custom IC SKILL How to add pins in Symbol without knowing the origin from...

Stats

  • Replies 6
  • Subscribers 142
  • Views 747
  • Members are here 0

How to add pins in Symbol without knowing the origin from Skill code?

Sandeep Kailasa
Sandeep Kailasa 2 months ago

Hello,

I need to add inputOutput pins in Symbol and then make net connections to it.

 

pinMaster=dbOpenCellViewByType("basic" "actHiInp" "symbol")

schCreateSymbolPin( cv pinMaster "gnd" "inputOutput" 1.5:-.475 "MXR90" "" nil nil "ground" )

schCreateSymbolPin( cv pinMaster "vdd" "inputOutput" 1.5:0.375 "MYR90" "" nil nil "power" )

  • 1.)  I have used above functions to add iopins from CIW . I tried various axis positions to place the pins on symbol. If there are many pins to be added on a single symbol, in that instance we face a problem to find the vacant locations .Is their any function that finds the vacant positions on the symbol to add the pins.
  • 2.) After adding pins ,how to connect them with nets.

Please help me here as I am new to Skill.

Thanks in Advance!

  • Reply
  • Cancel
  • Cancel
  • AurelBuche
    AurelBuche 2 months ago

    Hi Sandeep,

    Why would you add pins on an existing symbol? Isn't simpler to regenerate the symbol directly from another cellview?

    Otherwise, you might need to provide more context...
    Do you have a screenshot of the symbols you are working on ? And an example of where you would expect the pins to be placed on those symbols ?

    Anyway what you ask for should be feasible but the code might be complicated.

    I guess you will have to provide a side where you want to place the pins (left, right, bottom, top)

    On the selected side you will have to check the positions of the existing pins and keep the uppest, lowest, rightest or leftest ones

    Then you could add a new pin next to the existing one using a given pitch. But you would have to guarantee the symbol is big enough to fit the new pin and modify it otherwise

    If you have specific questions on the steps or to regenerate the symbol, I can provide you hints toward useful functions you could use

    Hope this helps,

    Aurélien

    • Cancel
    • Up +1 Down
    • Reply
    • Cancel
  • Sandeep Kailasa
    Sandeep Kailasa 2 months ago in reply to AurelBuche

    Hii Aurelien,

    Thanks for the reply

    The things is that, I can generate a symbol view  from schematic, but I want to do it from Skill code.

    Nand2:

    For example the above nand2 is the symbol i am working on. I have added top pin  and bottom pin manually by trying different locations on the symbol. So How can I find the vacant positions in the above symbol (top and down but not sides). So I am unable to get the origin of the vacant positions on the symbol. In this case we have small symbol but I have to work on very big symbols, so in that case its very tough for me to find the vacant positions. So could you please help in this regards,

    Thanks,

    Sandeep

    • Cancel
    • Up +1 Down
    • Reply
    • Cancel
  • AaronSymko
    AaronSymko 2 months ago in reply to Sandeep Kailasa

    If you already have the schematic, and wish to generate a symbol programmatically, then you could look into either the schViewToView or schPinListToView SKILL functions.  These will take care of all the low-level details of creating shapes, pins, connectivity, etc.

    • Cancel
    • Up +1 Down
    • Reply
    • Cancel
  • Sandeep Kailasa
    Sandeep Kailasa 2 months ago in reply to AaronSymko

    Hii Aaron,

    Thanks for your reply!

    The thing is that, I have to make changes to the existing symbol either by adding pins up and down. I cannot use schPinListToView function since its creates the symbol from pinlist right. I just want to modify it. So, plz help me in this regards.

    Thanks,

    Sandeep

    • Cancel
    • Up +1 Down
    • Reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 2 months ago in reply to Sandeep Kailasa

    Sandeep,

    There's no concept of a "vacant position" built into the tools. You'd have to write some code to analyse what's there and try to find something you consider to be a "vacant position". Maybe look the ends of the lines and determine which edge of the box they are on, and then by dividing the length of that line by your chosen pin grid spacing, you could compute which grid locations are already occupied and which might be free.

    I've not got time to write this for you, but hopefully that gives you an idea as to how you could go about it.

    Regards,

    Andrew

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Sandeep Kailasa
    Sandeep Kailasa 2 months ago in reply to Andrew Beckett

    Hello Andrew,

    Thanks for the information. 

    In the above "vacant position" on symbol ,I mean that , Axis where the pins are not present on Top and Bottom of the symbol. So I need to get the place on the symbol to place the pins and then connect them through nets. 

    I am new to Skill ,So facing issues how to proceed with.

    Thanks,

    Sandeep.

    • Cancel
    • Up 0 Down
    • Reply
    • 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.

© 2023 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information