Layout Generator

N

New User ^_^

Guest
Hi All,

(1) At the moment, I am scripting a layout generator in SKILL.
Actually, I am porting it from GDT GENIE code to Cadance SKILL code so
I am some kind of translator. Of course, there is no free lunch! What
I am goint to do now is to make a floorplan first and then copy and
paste different components to different positions by SKILL code. Does
anyone try this before? Could anyone point me to a right direction in
this regard??

(2) For creating instance, we could use function dbOpenCellViewByType
and dbCreateInst but it is only for one instance. How about if I would
like to create an array of instances? e.g. inst1(0,2), inst2(1,2),
inst3(2,2), inst4(0,1), inst5(1,1), inst6(2,1), inst7(0,0),
inst8(1,0), inst9(2,0).

I would appreciate very much if anyone of you could answer me these
two questions ^^ .

New User
 
(1) At the moment, I am scripting a layout generator in SKILL.
Actually, I am porting it from GDT GENIE code to Cadance SKILL code so
I am some kind of translator. Of course, there is no free lunch! What
I am goint to do now is to make a floorplan first and then copy and
paste different components to different positions by SKILL code. Does
anyone try this before? Could anyone point me to a right direction in
this regard??
You can use dbCreateInst or dbCreateInstByMasterNameto create
instances for your layout. Then calculating the origin for the instance
location in the layout. You must have some kind of placement algorithm
from your old program how to do that?!

(2) For creating instance, we could use function dbOpenCellViewByType
and dbCreateInst but it is only for one instance. How about if I would
like to create an array of instances? e.g. inst1(0,2), inst2(1,2),
inst3(2,2), inst4(0,1), inst5(1,1), inst6(2,1), inst7(0,0),
inst8(1,0), inst9(2,0).

I would appreciate very much if anyone of you could answer me these
two questions ^^ .

New User
In Cadence there are something which is called iterated instance
e.g I<0:n>, which is I<0>, I<1> to I<n> I did some similar for
that whith a simple for loop.

;; detect if desired view name of the instance for layout creation exists
;; else use lxUseCell property, than create the layout instance
cond(
;; the schematic instance has a corresponding layout view
( ddGetObj( d_instance~>libName d_instance~>cellName t_viewName )

for( i x_from x_to

;; if the instance is a iterate instance in the schematic
;; build a new instance name for the layout
if( rexMatchp( ">$" d_instance~>name ) then
t_instanceName = car( parseString( car(
parseString( d_instance~>name ":" )
) "<" ) )
t_instanceName =
strcat( t_instanceName "<" sprintf( nil "%n" i ) ">" )
else
t_instanceName = d_instance~>name
) ;; close if

d_layInstance =
dbCreateInstByMasterName(
d_layCellViewId
d_instance~>libName
d_instance~>cellName
t_viewName
t_instanceName
l_origin
"R0"
)
etc.

Also the are the functions dbCreateSimpleMosaic dbCreateSimpleMosaicByMasterName.

The 'SKILL Functions Reference' is a good documentation
to start with.

Hope this helps Bernd
 
for (2), what you're looking for is so-called mosaic.
so try dbCreateSimpleMosaicByMasterName, this
should answer your question.


"New User ^_^" <chickenwing2010@yahoo.com.hk> wrote in message
news:ee4f941.0404190753.4eef94f0@posting.google.com...
Hi All,

(1) At the moment, I am scripting a layout generator in SKILL.
Actually, I am porting it from GDT GENIE code to Cadance SKILL code so
I am some kind of translator. Of course, there is no free lunch! What
I am goint to do now is to make a floorplan first and then copy and
paste different components to different positions by SKILL code. Does
anyone try this before? Could anyone point me to a right direction in
this regard??

(2) For creating instance, we could use function dbOpenCellViewByType
and dbCreateInst but it is only for one instance. How about if I would
like to create an array of instances? e.g. inst1(0,2), inst2(1,2),
inst3(2,2), inst4(0,1), inst5(1,1), inst6(2,1), inst7(0,0),
inst8(1,0), inst9(2,0).

I would appreciate very much if anyone of you could answer me these
two questions ^^ .

New User
 

Welcome to EDABoard.com

Sponsor

Back
Top