Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How to create shielded path?

201 views
Skip to first unread message

Juve

unread,
Mar 16, 2009, 1:56:19 AM3/16/09
to
Hi,

I have written the following code for creating a shielded path. The
below mentioned code is having a fix set of coordinates: i.e. "pts".
How to add the functionality that a user can draw shield where ever he
feels like:

;; Create a shielded path
procedure( shield()
errset(
(let (cv layer purpose list_draw_layer tech width1 tfId)
cv= geGetEditCellView()
layer = car(leGetEntryLayer()) ;displays layer on LSW is taken
purpose = cadr(leGetEntryLayer()); displays drawing or pin on the
selected lsw
list_draw_layer =list(layer purpose)
tech = techGetTechFile(geGetWindowCellView()); rule deck file id is
stored in tech
width1 = techGetSpacingRule(tech "minWidth" layer) ; the minimum width
is stored in width1
rodCreatePath(
?name "shield"
?layer list( layer purpose )
?pts list(2:-15 2:-5 15:-5 15:-15) If this is not fixed, the user
can draw shield anywhere. What changes are needed?
?width .8
?justification "center"
?cvId cv
?offsetSubPath
list(
list(
?layer list( layer purpose )
?justification "left"
?sep 1
?width .4
) ;end of offset sublist1
list(
?layer list( layer purpose )
?justification "right"
?sep 1
?width .4
) ;end of offset sublist2
) ;end of offset list of lists
) ;end of rodCreatePath
) ; end of let
t
) ; end of errset
) ; end of procedure

Marc Heise

unread,
Mar 16, 2009, 4:28:48 AM3/16/09
to
Juve wrote:
> Hi,
>
> I have written the following code for creating a shielded path. The
> below mentioned code is having a fix set of coordinates: i.e. "pts".
> How to add the functionality that a user can draw shield where ever he
> feels like:
>
> ;; Create a shielded path
> procedure( shield()
.
> ) ; end of procedure

Thats neat but there are several already build in ways to create a shielded
path. You could:

a) define a Multi Part Path with two offset paths as shields
b) use the Wire Editor and script a "do-File" (VCAR Syntax) to
define a shielding ( 5.1.41 )
c) create a shielding constraint for the net ( IC6.1)

Kind regards,
Marc

I-F AB

unread,
Mar 16, 2009, 4:59:22 AM3/16/09
to
How about this?
(I started off with the simplest I could think of: enterPoints() and
then realised how ridiculously counter-productive that was.)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

/*
enterPoints(
?prompts list("Enter 1st point:" "Enter next point:")
?doneProc "Shield"
)
*/

enterPath(
?prompts list("Enter 1st point:" "Enter next point:")
?doneProc "Shield"
)


;; Create a shielded path
procedure( Shield(win done pts)


errset(
(let (cv layer purpose list_draw_layer tech width1 tfId)

unless( done printf("Finished!") )

cv = geGetEditCellView()


layer = car(leGetEntryLayer()) ;displays layer on LSW is taken
purpose = cadr(leGetEntryLayer()); displays drawing or pin on
the selected lsw
list_draw_layer =list(layer purpose)
tech = techGetTechFile(geGetWindowCellView())
; rule deck file id is stored in tech
width1 = techGetSpacingRule(tech "minWidth" layer)
; the minimum width is stored in width1
rodCreatePath(

;;;;;; ?name "shield" ;;;;;;CHANGE HERE ?


?layer list( layer purpose )

?pts foreach( mapcar point pts
geWindowToEditPoint(hiGetCurrentWindow() point) )

;;;;;; ?pts list(2:-15 2:-5 15:-5 15:-15) ;;;;;;CHANGE HERE
;if this is not fixed, the user can draw shield anywhere.
;What changes are needed?

?width .8
?justification "center"
?cvId cv
?offsetSubPath
list(
list(
?layer list( layer purpose )
?justification "left"
?sep 1
?width .4
) ;end of offset sublist1
list(
?layer list( layer purpose )
?justification "right"
?sep 1
?width .4
) ;end of offset sublist2
) ;end of offset list of lists
) ;end of rodCreatePath
) ; end of let
t
) ; end of errset
) ; end of procedure

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Best Regards,
I-FAB

Juve

unread,
Mar 16, 2009, 7:28:33 AM3/16/09
to
Thanks. It works awesomely. What I need to do if I want the user
specified "spacing" and the "width"

Andrew Beckett

unread,
Mar 16, 2009, 9:37:20 AM3/16/09
to
Juve wrote, on 03/16/09 11:28:

> Thanks. It works awesomely. What I need to do if I want the user
> specified "spacing" and the "width"
>

You can specify an options form to be associated with the enterPath() function,
so that the width/spacing info can be entered on the associated form
(toggle-able with F3).

See the ?form argument for enterPath in the documentation.

Regards,

Andrew.

Message has been deleted

kevin...@gmail.com

unread,
Apr 21, 2009, 10:38:16 AM4/21/09
to
On Mar 16, 9:37 pm, Andrew Beckett <andr...@DcEaLdEeTnEcTe.HcIoSm>
wrote:

Hi Andrew,

I am newbie in SKILL coding. I have tried to draw a multipart with
SKILL, and I have basically come out with an OptionsForm as you've
suggested, the thing is I couldn't find a way to retrieve and
manipulate the user entry data (the width and spacing) to my
rodCreatePath. It would be nice if you could give some idea to me.
Thanks.

-Kevin.

Andrew Beckett

unread,
Apr 24, 2009, 8:24:52 AM4/24/09
to
kevin...@gmail.com wrote, on 04/21/09 15:38:

Is this some question in a university course? There have been questions galore
on this in both this forum and on the Community Forums on www.cadence.com

I'm trying to work out why so many people seem to be posting related questions
(often using very similar SKILL code) on creating shielded paths and busses and
so on.

I recently answered a question on passing the width and spacing information on
the Cadence web site forum: http://www.cadence.com/community/forums/T/12168.aspx

Regards,

Andrew.

0 new messages