| Author |
Message |
fogh
Guest
|
Posted:
Mon Oct 25, 2004 4:07 pm Post subject:
get all wires connected to a pin |
|
|
Hi All,
One of you has probably ready-made so code for this:
Assuming that cds.lib reaches every schematic that can possibly instance the symbol dbsymcv, dbsymcv has a pin figure F (only one)
- get wires points P1 that overlap F , across all schematics instancing dbsymcv.
- check that centerBox(F->bBox) is also connecting (overlapping pin any purpose).
After that, I am going to snap the pin to a new grid, move PO1 to the center of the pin, and modify the whole wire accordingly.
Feel free to give me hints about
- coordinate transformations (how do you do the inverse tranformation ? Is there a quick way to get them in toplevel view ? ... )
- stretching/reshaping wires.
Regards,
--
Frederic
|
|
| Back to top |
|
 |
fogh
Guest
|
Posted:
Tue Oct 26, 2004 7:04 pm Post subject:
Re: get all wires connected to a pin |
|
|
Hi All,
Would anyone have a reverse tranform ReversedbTransformPoint() such that
point==ReverseDbTransformPoint(dbTransformPoint(point transform) transform)
?
Or maybe you already wrote a SKILL snipped to move pins of a symbol and wires of
schematics that instance this symbol at the same time ? That's what I am after.
Todays' update: it is easy get the wires. Now I wonder how to manipulate them so
that they will stay manhattan and not connect to another net.
It also occured to me that snapping inside a symbol, and then snapping the
origin of the instance, you can end up with a pin more than half a grid away. In
order to avoid this runaway, the sequence seems to be
1 snap wire to center of pin
2 snap pin
3 snap again wire to center of pin
4 snap instance origins to grid
5 snap wires to grid
Can you think of something simpler ?
cvinst=car(geGetSelectedSet())
cvinst->master->terminals~>pins~>fig~>lpp
schcv=geGetEditCellView()
caar(cvinst->master->terminals~>pins~>fig)->pin->name
pinfig=caar(cvinst->master->terminals~>pins~>fig)
TbBox=dbTransformBBox(pinfig->bBox cons(cvinst->xy list(cvinst->orient)))
dbGetOverlaps(schcv TbBox )~>lpp
dbGetOverlaps(schcv TbBox "wire")~>??
fogh wrote:
| Quote: | Hi All,
One of you has probably ready-made so code for this:
Assuming that cds.lib reaches every schematic that can possibly instance
the symbol dbsymcv, dbsymcv has a pin figure F (only one)
- get wires points P1 that overlap F , across all schematics instancing
dbsymcv.
- check that centerBox(F->bBox) is also connecting (overlapping pin any
purpose).
After that, I am going to snap the pin to a new grid, move PO1 to the
center of the pin, and modify the whole wire accordingly.
Feel free to give me hints about
- coordinate transformations (how do you do the inverse tranformation ?
Is there a quick way to get them in toplevel view ? ... )
- stretching/reshaping wires.
Regards, |
|
|
| Back to top |
|
 |
Erik Wanta
Guest
|
Posted:
Fri Oct 29, 2004 5:35 am Post subject:
Re: get all wires connected to a pin |
|
|
See post entitled:
move figures AND wires in schematic with SKILL
Please open a SR to get schStretch() implemented.
---
Erik
fogh <cad_support@skipthisandunderscores.catena.nl> wrote in message news:<417cedaf$0$418$e4fe514c@dreader5.news.xs4all.nl>...
| Quote: | Hi All,
One of you has probably ready-made so code for this:
Assuming that cds.lib reaches every schematic that can possibly instance the symbol dbsymcv, dbsymcv has a pin figure F (only one)
- get wires points P1 that overlap F , across all schematics instancing dbsymcv.
- check that centerBox(F->bBox) is also connecting (overlapping pin any purpose).
After that, I am going to snap the pin to a new grid, move PO1 to the center of the pin, and modify the whole wire accordingly.
Feel free to give me hints about
- coordinate transformations (how do you do the inverse tranformation ? Is there a quick way to get them in toplevel view ? ... )
- stretching/reshaping wires.
Regards, |
|
|
| Back to top |
|
 |
fogh
Guest
|
Posted:
Fri Oct 29, 2004 9:55 pm Post subject:
Re: get all wires connected to a pin |
|
|
So you are saying that I can stretch my wires only if I actually open all the
schematics in windows and use an schHiStretch ?
And that will not yet garanty that I create no shorts.
Erik Wanta wrote:
| Quote: | See post entitled:
move figures AND wires in schematic with SKILL
Please open a SR to get schStretch() implemented.
---
Erik
fogh <cad_support@skipthisandunderscores.catena.nl> wrote in message news:<417cedaf$0$418$e4fe514c@dreader5.news.xs4all.nl>...
Hi All,
One of you has probably ready-made so code for this:
Assuming that cds.lib reaches every schematic that can possibly instance the symbol dbsymcv, dbsymcv has a pin figure F (only one)
- get wires points P1 that overlap F , across all schematics instancing dbsymcv.
- check that centerBox(F->bBox) is also connecting (overlapping pin any purpose).
After that, I am going to snap the pin to a new grid, move PO1 to the center of the pin, and modify the whole wire accordingly.
Feel free to give me hints about
- coordinate transformations (how do you do the inverse tranformation ? Is there a quick way to get them in toplevel view ? ... )
- stretching/reshaping wires.
Regards, |
|
|
| Back to top |
|
 |
Erik Wanta
Guest
|
Posted:
Sat Oct 30, 2004 4:13 am Post subject:
Re: get all wires connected to a pin |
|
|
There was supposed to be a new function called schStretch() that would
move the instance and the wire connected to it. I wanted to use it in
the case where I go from a larger symbol to a smaller symbol. So, one
end of the resistor was still connected and I wanted to stretch the
resistor to connect to the net that the larger symbol used to be
connected to.
---
Erik
fogh <cad_support@skipthisandunderscores.catena.nl> wrote in message news:<41828403$0$93528$e4fe514c@dreader7.news.xs4all.nl>...
| Quote: | So you are saying that I can stretch my wires only if I actually open all the
schematics in windows and use an schHiStretch ?
And that will not yet garanty that I create no shorts.
Erik Wanta wrote:
See post entitled:
move figures AND wires in schematic with SKILL
Please open a SR to get schStretch() implemented.
---
Erik
fogh <cad_support@skipthisandunderscores.catena.nl> wrote in message news:<417cedaf$0$418$e4fe514c@dreader5.news.xs4all.nl>...
Hi All,
One of you has probably ready-made so code for this:
Assuming that cds.lib reaches every schematic that can possibly instance the symbol dbsymcv, dbsymcv has a pin figure F (only one)
- get wires points P1 that overlap F , across all schematics instancing dbsymcv.
- check that centerBox(F->bBox) is also connecting (overlapping pin any purpose).
After that, I am going to snap the pin to a new grid, move PO1 to the center of the pin, and modify the whole wire accordingly.
Feel free to give me hints about
- coordinate transformations (how do you do the inverse tranformation ? Is there a quick way to get them in toplevel view ? ... )
- stretching/reshaping wires.
Regards, |
|
|
| Back to top |
|
 |
Andrew Beckett
Guest
|
Posted:
Mon Nov 01, 2004 3:02 pm Post subject:
Re: get all wires connected to a pin |
|
|
schStretch() has been implemented, and is due to come in IC5251.
I filed an enhancement PCR for this a while ago - 601942
Filing another SR won't help, since it is already implemented in the
next release.
Also, there appears to be a public function icDbInvertTransform to
invert a transform, to answer your original question.
Andrew.
On 29 Oct 2004 17:13:09 -0700, erikwanta@starband.net (Erik Wanta)
wrote:
| Quote: | There was supposed to be a new function called schStretch() that would
move the instance and the wire connected to it. I wanted to use it in
the case where I go from a larger symbol to a smaller symbol. So, one
end of the resistor was still connected and I wanted to stretch the
resistor to connect to the net that the larger symbol used to be
connected to.
---
Erik
fogh <cad_support@skipthisandunderscores.catena.nl> wrote in message news:<41828403$0$93528$e4fe514c@dreader7.news.xs4all.nl>...
So you are saying that I can stretch my wires only if I actually open all the
schematics in windows and use an schHiStretch ?
And that will not yet garanty that I create no shorts.
Erik Wanta wrote:
See post entitled:
move figures AND wires in schematic with SKILL
Please open a SR to get schStretch() implemented.
---
Erik
fogh <cad_support@skipthisandunderscores.catena.nl> wrote in message news:<417cedaf$0$418$e4fe514c@dreader5.news.xs4all.nl>...
Hi All,
One of you has probably ready-made so code for this:
Assuming that cds.lib reaches every schematic that can possibly instance the symbol dbsymcv, dbsymcv has a pin figure F (only one)
- get wires points P1 that overlap F , across all schematics instancing dbsymcv.
- check that centerBox(F->bBox) is also connecting (overlapping pin any purpose).
After that, I am going to snap the pin to a new grid, move PO1 to the center of the pin, and modify the whole wire accordingly.
Feel free to give me hints about
- coordinate transformations (how do you do the inverse tranformation ? Is there a quick way to get them in toplevel view ? ... )
- stretching/reshaping wires.
Regards, |
|
|
| Back to top |
|
 |
fogh
Guest
|
Posted:
Tue Nov 02, 2004 9:17 am Post subject:
Re: get all wires connected to a pin |
|
|
Thanks for the inverse transform. Would there be any possible clash
with a dbInvertTransform(Point|Box) alias ?
Andrew Beckett wrote:
| Quote: | schStretch() has been implemented, and is due to come in IC5251.
I filed an enhancement PCR for this a while ago - 601942
Filing another SR won't help, since it is already implemented in the
next release.
Also, there appears to be a public function icDbInvertTransform to
invert a transform, to answer your original question.
Andrew.
On 29 Oct 2004 17:13:09 -0700, erikwanta@starband.net (Erik Wanta)
wrote:
There was supposed to be a new function called schStretch() that would
move the instance and the wire connected to it. I wanted to use it in
the case where I go from a larger symbol to a smaller symbol. So, one
end of the resistor was still connected and I wanted to stretch the
resistor to connect to the net that the larger symbol used to be
connected to.
---
Erik
fogh <cad_support@skipthisandunderscores.catena.nl> wrote in message news:<41828403$0$93528$e4fe514c@dreader7.news.xs4all.nl>...
So you are saying that I can stretch my wires only if I actually open all the
schematics in windows and use an schHiStretch ?
And that will not yet garanty that I create no shorts.
Erik Wanta wrote:
See post entitled:
move figures AND wires in schematic with SKILL
Please open a SR to get schStretch() implemented.
---
Erik
fogh <cad_support@skipthisandunderscores.catena.nl> wrote in message news:<417cedaf$0$418$e4fe514c@dreader5.news.xs4all.nl>...
Hi All,
One of you has probably ready-made so code for this:
Assuming that cds.lib reaches every schematic that can possibly instance the symbol dbsymcv, dbsymcv has a pin figure F (only one)
- get wires points P1 that overlap F , across all schematics instancing dbsymcv.
- check that centerBox(F->bBox) is also connecting (overlapping pin any purpose).
After that, I am going to snap the pin to a new grid, move PO1 to the center of the pin, and modify the whole wire accordingly.
Feel free to give me hints about
- coordinate transformations (how do you do the inverse tranformation ? Is there a quick way to get them in toplevel view ? ... )
- stretching/reshaping wires.
Regards,
|
|
|
| Back to top |
|
 |
Andrew Beckett
Guest
|
Posted:
Fri Nov 05, 2004 11:12 am Post subject:
Re: get all wires connected to a pin |
|
|
You should NOT create functions or aliases using Cadence prefixes.
That is just asking for migration trouble if in the future we add a
new function, dbInvertTransform.
That's why we recommend all customer code uses a prefix which begins
with an uppercase letter, as we don't use uppercase prefixes.
So don't create an alias dbInvertTransform. Plus the fact it's going
to confuse anyone else reading the code when they can't find the
documentation for something that looks like a Cadence public function.
Regards,
Andrew.
On Mon, 01 Nov 2004 23:17:39 -0500, fogh <oghdayan_AT@xs4all_dot.nl>
wrote:
| Quote: | Thanks for the inverse transform. Would there be any possible clash
with a dbInvertTransform(Point|Box) alias ?
Andrew Beckett wrote:
schStretch() has been implemented, and is due to come in IC5251.
I filed an enhancement PCR for this a while ago - 601942
Filing another SR won't help, since it is already implemented in the
next release.
Also, there appears to be a public function icDbInvertTransform to
invert a transform, to answer your original question.
Andrew.
On 29 Oct 2004 17:13:09 -0700, erikwanta@starband.net (Erik Wanta)
wrote:
There was supposed to be a new function called schStretch() that would
move the instance and the wire connected to it. I wanted to use it in
the case where I go from a larger symbol to a smaller symbol. So, one
end of the resistor was still connected and I wanted to stretch the
resistor to connect to the net that the larger symbol used to be
connected to.
---
Erik
fogh <cad_support@skipthisandunderscores.catena.nl> wrote in message news:<41828403$0$93528$e4fe514c@dreader7.news.xs4all.nl>...
So you are saying that I can stretch my wires only if I actually open all the
schematics in windows and use an schHiStretch ?
And that will not yet garanty that I create no shorts.
Erik Wanta wrote:
See post entitled:
move figures AND wires in schematic with SKILL
Please open a SR to get schStretch() implemented.
---
Erik
fogh <cad_support@skipthisandunderscores.catena.nl> wrote in message news:<417cedaf$0$418$e4fe514c@dreader5.news.xs4all.nl>...
Hi All,
One of you has probably ready-made so code for this:
Assuming that cds.lib reaches every schematic that can possibly instance the symbol dbsymcv, dbsymcv has a pin figure F (only one)
- get wires points P1 that overlap F , across all schematics instancing dbsymcv.
- check that centerBox(F->bBox) is also connecting (overlapping pin any purpose).
After that, I am going to snap the pin to a new grid, move PO1 to the center of the pin, and modify the whole wire accordingly.
Feel free to give me hints about
- coordinate transformations (how do you do the inverse tranformation ? Is there a quick way to get them in toplevel view ? ... )
- stretching/reshaping wires.
Regards,
|
|
|
| Back to top |
|
 |
fogh
Guest
|
Posted:
Fri Nov 05, 2004 10:36 pm Post subject:
Re: get all wires connected to a pin |
|
|
Andrew,
It was not my intention. I was just wondering why the author of
icDbInvertTransform at cadence did not use a db prefix to start with.
Talking about overwrites... I have a setup where we use mount point an
symlinks to hide the platform and filer issues from the end user. I find it
quite annoying that what was entered as a clean&short path, or selected in a
browser, ends up as a /sys or /export prefixed 200 bytes long pathname that
contains also tools.platform and such.
So I am thinking of overwriting simplifyFilename(). How bad would that be ?
Andrew Beckett wrote:
| Quote: | You should NOT create functions or aliases using Cadence prefixes.
That is just asking for migration trouble if in the future we add a
new function, dbInvertTransform.
That's why we recommend all customer code uses a prefix which begins
with an uppercase letter, as we don't use uppercase prefixes.
So don't create an alias dbInvertTransform. Plus the fact it's going
to confuse anyone else reading the code when they can't find the
documentation for something that looks like a Cadence public function.
Regards,
Andrew.
On Mon, 01 Nov 2004 23:17:39 -0500, fogh <oghdayan_AT@xs4all_dot.nl
wrote:
Thanks for the inverse transform. Would there be any possible clash
with a dbInvertTransform(Point|Box) alias ?
Andrew Beckett wrote:
schStretch() has been implemented, and is due to come in IC5251.
I filed an enhancement PCR for this a while ago - 601942
Filing another SR won't help, since it is already implemented in the
next release.
Also, there appears to be a public function icDbInvertTransform to
invert a transform, to answer your original question.
Andrew.
On 29 Oct 2004 17:13:09 -0700, erikwanta@starband.net (Erik Wanta)
wrote:
There was supposed to be a new function called schStretch() that would
move the instance and the wire connected to it. I wanted to use it in
the case where I go from a larger symbol to a smaller symbol. So, one
end of the resistor was still connected and I wanted to stretch the
resistor to connect to the net that the larger symbol used to be
connected to.
---
Erik
fogh <cad_support@skipthisandunderscores.catena.nl> wrote in message news:<41828403$0$93528$e4fe514c@dreader7.news.xs4all.nl>...
So you are saying that I can stretch my wires only if I actually open all the
schematics in windows and use an schHiStretch ?
And that will not yet garanty that I create no shorts.
Erik Wanta wrote:
See post entitled:
move figures AND wires in schematic with SKILL
Please open a SR to get schStretch() implemented.
---
Erik
fogh <cad_support@skipthisandunderscores.catena.nl> wrote in message news:<417cedaf$0$418$e4fe514c@dreader5.news.xs4all.nl>...
Hi All,
One of you has probably ready-made so code for this:
Assuming that cds.lib reaches every schematic that can possibly instance the symbol dbsymcv, dbsymcv has a pin figure F (only one)
- get wires points P1 that overlap F , across all schematics instancing dbsymcv.
- check that centerBox(F->bBox) is also connecting (overlapping pin any purpose).
After that, I am going to snap the pin to a new grid, move PO1 to the center of the pin, and modify the whole wire accordingly.
Feel free to give me hints about
- coordinate transformations (how do you do the inverse tranformation ? Is there a quick way to get them in toplevel view ? ... )
- stretching/reshaping wires.
Regards, |
|
|
| Back to top |
|
 |
Andrew Beckett
Guest
|
Posted:
Mon Nov 08, 2004 11:31 am Post subject:
Re: get all wires connected to a pin |
|
|
On Fri, 05 Nov 2004 18:36:11 +0100, fogh
<cad_support@skipthisandunderscores.catena.nl> wrote:
| Quote: | Andrew,
It was not my intention. I was just wondering why the author of
icDbInvertTransform at cadence did not use a db prefix to start with.
|
Because it was written as part of the Preview code, not by one of the
core database team. So it's all a matter of ownership. Probably when
it was written, they should have requested that db create such a
function, but the pragmatic thing was done, and that group wrote their
own.
| Quote: | Talking about overwrites... I have a setup where we use mount point an
symlinks to hide the platform and filer issues from the end user. I find it
quite annoying that what was entered as a clean&short path, or selected in a
browser, ends up as a /sys or /export prefixed 200 bytes long pathname that
contains also tools.platform and such.
So I am thinking of overwriting simplifyFilename(). How bad would that be ?
|
Well, you can't do it (it's a C level function, and you can't redefine
those), so this is a moot point.
In general simplifyFilename has evolved over many years, and generally
has had to cope with various automounters, and different file systems.
Getting something that always works has not always been easy.
Note, there is an optional second argument to simplifyFilename which
tells it not to resolve links - perhaps that is what you need? Mind
you, that doesn't help you if the usage is in some part of the code
that isn't yours.
(Note, I said that you can't redefine this, but you can temporarily
overload it in a SKILL++ lexical scope, but that wouldn't help
either).
Regards,
Andrew. |
|
| Back to top |
|
 |
fogh
Guest
|
Posted:
Wed Nov 10, 2004 8:15 pm Post subject:
Re: get all wires connected to a pin |
|
|
Andrew Beckett wrote:
| Quote: | On Fri, 05 Nov 2004 18:36:11 +0100, fogh
cad_support@skipthisandunderscores.catena.nl> wrote:
Andrew,
It was not my intention. I was just wondering why the author of
icDbInvertTransform at cadence did not use a db prefix to start with.
Because it was written as part of the Preview code, not by one of the
core database team. So it's all a matter of ownership. Probably when
it was written, they should have requested that db create such a
function, but the pragmatic thing was done, and that group wrote their
own.
OK. Just a matter of the software development organisation. |
| Quote: |
Talking about overwrites... I have a setup where we use mount point an
symlinks to hide the platform and filer issues from the end user. I find it
quite annoying that what was entered as a clean&short path, or selected in a
browser, ends up as a /sys or /export prefixed 200 bytes long pathname that
contains also tools.platform and such.
So I am thinking of overwriting simplifyFilename(). How bad would that be ?
Well, you can't do it (it's a C level function, and you can't redefine
those), so this is a moot point.
In general simplifyFilename has evolved over many years, and generally
has had to cope with various automounters, and different file systems.
Getting something that always works has not always been easy.
Note, there is an optional second argument to simplifyFilename which
tells it not to resolve links - perhaps that is what you need? Mind
you, that doesn't help you if the usage is in some part of the code
that isn't yours.
|
Yes. I would like ascii files containing file paths, files generated by code
that is not mine, to be more platform/machine independent.
| Quote: | (Note, I said that you can't redefine this, but you can temporarily
overload it in a SKILL++ lexical scope, but that wouldn't help
either).
for the love of rethorics, let s pretend for a second that I could overwrite it. |
And that I would plan to overwrite it with a function that returns the same
string for arguments that correspond to the same actual file. So that for
instance the famous cdsinit test:
strcmp(simplifyFilename("~") simplifyFilename(pwd()))
would not break.
What do you think would be the risks ? |
|
| Back to top |
|
 |
Andrew Beckett
Guest
|
Posted:
Fri Nov 12, 2004 11:06 am Post subject:
Re: get all wires connected to a pin |
|
|
On Wed, 10 Nov 2004 16:15:28 +0100, fogh
<cad_support@skipthisandunderscores.catena.nl> wrote:
| Quote: | or the love of rethorics, let s pretend for a second that I could overwrite it.
And that I would plan to overwrite it with a function that returns the same
string for arguments that correspond to the same actual file. So that for
instance the famous cdsinit test:
strcmp(simplifyFilename("~") simplifyFilename(pwd()))
would not break.
What do you think would be the risks ?
|
So are you saying that this doesn't work right now? I'm surprised... it should
do. Since simplifyFilename expands tildes and symbolic links, it ought to work
(assuming you're testing to see if you're in your home directory).
Can you give an example of this not working?
Andrew. |
|
| Back to top |
|
 |
fogh
Guest
|
Posted:
Sun Nov 14, 2004 9:50 am Post subject:
Re: get all wires connected to a pin |
|
|
Andrew Beckett wrote:
| Quote: | On Wed, 10 Nov 2004 16:15:28 +0100, fogh
cad_support@skipthisandunderscores.catena.nl> wrote:
or the love of rethorics, let s pretend for a second that I could overwrite it.
And that I would plan to overwrite it with a function that returns the same
string for arguments that correspond to the same actual file. So that for
instance the famous cdsinit test:
strcmp(simplifyFilename("~") simplifyFilename(pwd()))
would not break.
What do you think would be the risks ?
So are you saying that this doesn't work right now? I'm surprised... it should
do. Since simplifyFilename expands tildes and symbolic links, it ought to work
(assuming you're testing to see if you're in your home directory).
No no, it works with the original, and it still works with the |
overwritten. |
|
| Back to top |
|
 |
Andrew Beckett
Guest
|
Posted:
Sun Nov 14, 2004 12:35 pm Post subject:
Re: get all wires connected to a pin |
|
|
On Sat, 13 Nov 2004 23:50:47 -0500, fogh <oghdayan_AT@xs4all_dot.nl> wrote:
| Quote: | No no, it works with the original, and it still works with the
overwritten.
|
In that case, I don't know why you're asking... (it's academic, since you
can't do it anyway).
Andrew. |
|
| Back to top |
|
 |
fogh
Guest
|
Posted:
Wed Nov 17, 2004 7:25 am Post subject:
Re: get all wires connected to a pin |
|
|
Andrew Beckett wrote:
| Quote: | On Sat, 13 Nov 2004 23:50:47 -0500, fogh <oghdayan_AT@xs4all_dot.nl> wrote:
No no, it works with the original, and it still works with the
overwritten.
In that case, I don't know why you're asking... (it's academic, since you
can't do it anyway).
Andrew, |
Outside this newsgroup, it is not that academic, and it is not that
impossible either.
I got a solution, and I don t know wether to deploy it since I don t
know the risk because I don t know exactly what this function is used for.
I know that the value returned by the modified func is unique for a
given "actual" file. But if for there is some code that relies on every
element in the path to be a directory (and not a symlink) there would
still be trouble.
Can t you tell me more about how this function is used in the CDS and
vendor code you know about ? |
|
| Back to top |
|
 |
|
|
|
|