PCELL rodAssignHandleToParameter

A

Arnold

Guest
Hi,

I would like to make my PCell stretchable, but I don´t know exact how
to do this. In the PCell code I want to create a bus, and I would like
to make it stretchable like a normal path. How can I do this ?
THX for your help.

CU

Arnold


pcDefinePCell(list(ddGetObj("work_ae") "bus" "layout")
(
(w float 1.6)
(layer string "metal1")
(coords ILList '((0.0 0.0) (0.0 1.0)) "path" "diagonal")
(busnr int 2)
(layerSpace float 0.7)

)

let((bus busPath)

bus=cdr(list(() list(
?layer layer
?justification "right"
?sep layerSpace
?width w
)))
layerSpace=w+2*layerSpace
for(i 3 busnr
bus=append1(bus list(
?layer layer
?justification "right"
?sep layerSpace
?width w
)
)
layerSpace=layerSpace+w+0.7
)
busPath=rodCreatePath(
?name "bus"
?layer layer
?pts coords
?width w
?justification "center"
?offsetSubPath bus

);end rodPath

rodAssignHandleToParameter(
?parameter "coords"
?rodObj busPath

??? ??? ??? ??? ??? ???


);end rodAssing
);end let
);end pcDefinePCell
 
Arnold,
please refer to page 322 in "Virtuoso Relative Object Design User
Guide" for a detailed example of bus creation using rodCreatePath
function.

Partha


arnold_erni@yahoo.de (Arnold) wrote in message news:<7fd44e32.0404012250.7958b35d@posting.google.com>...
Hi,

I would like to make my PCell stretchable, but I don´t know exact how
to do this. In the PCell code I want to create a bus, and I would like
to make it stretchable like a normal path. How can I do this ?
THX for your help.

CU

Arnold


pcDefinePCell(list(ddGetObj("work_ae") "bus" "layout")
(
(w float 1.6)
(layer string "metal1")
(coords ILList '((0.0 0.0) (0.0 1.0)) "path" "diagonal")
(busnr int 2)
(layerSpace float 0.7)

)

let((bus busPath)

bus=cdr(list(() list(
?layer layer
?justification "right"
?sep layerSpace
?width w
)))
layerSpace=w+2*layerSpace
for(i 3 busnr
bus=append1(bus list(
?layer layer
?justification "right"
?sep layerSpace
?width w
)
)
layerSpace=layerSpace+w+0.7
)
busPath=rodCreatePath(
?name "bus"
?layer layer
?pts coords
?width w
?justification "center"
?offsetSubPath bus

);end rodPath

rodAssignHandleToParameter(
?parameter "coords"
?rodObj busPath

??? ??? ??? ??? ??? ???


);end rodAssing
);end let
);end pcDefinePCell
 
Hi Partha,

yes there is an example, but not how to make such a PCELL strechable.
There exist only an example for a strechable nmos pcell, which use a
path but the variable you change is the w and l and not the coords
which has severel points.

CU

Arnold

cadeguy@yahoo.com (Partha) wrote in message news:<7f58031f.0404051539.35bbcbe3@posting.google.com>...
Arnold,
please refer to page 322 in "Virtuoso Relative Object Design User
Guide" for a detailed example of bus creation using rodCreatePath
function.

Partha


arnold_erni@yahoo.de (Arnold) wrote in message news:<7fd44e32.0404012250.7958b35d@posting.google.com>...
Hi,

I would like to make my PCell stretchable, but I don´t know exact how
to do this. In the PCell code I want to create a bus, and I would like
to make it stretchable like a normal path. How can I do this ?
THX for your help.

CU

Arnold


pcDefinePCell(list(ddGetObj("work_ae") "bus" "layout")
(
(w float 1.6)
(layer string "metal1")
(coords ILList '((0.0 0.0) (0.0 1.0)) "path" "diagonal")
(busnr int 2)
(layerSpace float 0.7)

)

let((bus busPath)

bus=cdr(list(() list(
?layer layer
?justification "right"
?sep layerSpace
?width w
)))
layerSpace=w+2*layerSpace
for(i 3 busnr
bus=append1(bus list(
?layer layer
?justification "right"
?sep layerSpace
?width w
)
)
layerSpace=layerSpace+w+0.7
)
busPath=rodCreatePath(
?name "bus"
?layer layer
?pts coords
?width w
?justification "center"
?offsetSubPath bus

);end rodPath

rodAssignHandleToParameter(
?parameter "coords"
?rodObj busPath

??? ??? ??? ??? ??? ???


);end rodAssing
);end let
);end pcDefinePCell
 
You'd need to add a parameter for each point's x and y coordinates, and then add handle
for each of those.

You'd probably be better to use a level-0 multipart path instead of a pcell.

Andrew.

On 6 Apr 2004 04:26:44 -0700, arnold_erni@yahoo.de (Arnold) wrote:

Hi Partha,

yes there is an example, but not how to make such a PCELL strechable.
There exist only an example for a strechable nmos pcell, which use a
path but the variable you change is the w and l and not the coords
which has severel points.

CU

Arnold

cadeguy@yahoo.com (Partha) wrote in message news:<7f58031f.0404051539.35bbcbe3@posting.google.com>...
Arnold,
please refer to page 322 in "Virtuoso Relative Object Design User
Guide" for a detailed example of bus creation using rodCreatePath
function.

Partha


arnold_erni@yahoo.de (Arnold) wrote in message news:<7fd44e32.0404012250.7958b35d@posting.google.com>...
Hi,

I would like to make my PCell stretchable, but I don´t know exact how
to do this. In the PCell code I want to create a bus, and I would like
to make it stretchable like a normal path. How can I do this ?
THX for your help.

CU

Arnold


pcDefinePCell(list(ddGetObj("work_ae") "bus" "layout")
(
(w float 1.6)
(layer string "metal1")
(coords ILList '((0.0 0.0) (0.0 1.0)) "path" "diagonal")
(busnr int 2)
(layerSpace float 0.7)

)

let((bus busPath)

bus=cdr(list(() list(
?layer layer
?justification "right"
?sep layerSpace
?width w
)))
layerSpace=w+2*layerSpace
for(i 3 busnr
bus=append1(bus list(
?layer layer
?justification "right"
?sep layerSpace
?width w
)
)
layerSpace=layerSpace+w+0.7
)
busPath=rodCreatePath(
?name "bus"
?layer layer
?pts coords
?width w
?justification "center"
?offsetSubPath bus

);end rodPath

rodAssignHandleToParameter(
?parameter "coords"
?rodObj busPath

??? ??? ??? ??? ??? ???


);end rodAssing
);end let
);end pcDefinePCell
--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
Thanks Andrew. This code for the bus is only an example. What I want
to create is a strechable pcell to draw a path with vaiable width for
contacting the substrate and nwell ...



CU

Arnold
 
What I'd probably do is write some SKILL code to create this in the current cellView - and
give the user a form to choose the width. You wouldn't be able to go back in and change
the width later (although potentially you could write some code to recreate the multipart
path with a different width when you select it), but it would be choppable and stretchable
that way.

It's certainly going to be easier than having loads of stretch handles on a pcell.

In other words, you might want to lose a little flexibility (having the width as a parameter),
but gain an awful lot of usability and ease of coding...

Andrew.

On 7 Apr 2004 02:03:19 -0700, arnold_erni@yahoo.de (Arnold) wrote:

Thanks Andrew. This code for the bus is only an example. What I want
to create is a strechable pcell to draw a path with vaiable width for
contacting the substrate and nwell ...



CU

Arnold
--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 

Welcome to EDABoard.com

Sponsor

Back
Top