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" )
Please help me here as I am new to Skill.
Thanks in Advance!
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,
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.
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,
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.
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.
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.
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.