Four SKILL questions ???

  • Thread starter Reotaro Hashemoto
  • Start date
R

Reotaro Hashemoto

Guest
Hi all,

I have four questions (i guess FAQs)

Q1. I have a schematic sheet that contains only one instance. How can
I get list of all properties that user can modify for this instance
and print them formatted in an output file? Something like the
following:

libName, cellName, instName, param1Name=Val, param2Name=val, ....

For example, if the sheet contains "nmos" from library "umc45" and
instance name is: "mn1", I need to print:
umc45, nmos, mn0, w=0.6u, l=0.5u, m=1

I tried to play with dbOpenCellViewByType("test" "a1" "schematic")
~>instances~>"M0"~>prop

but it seems to be wrong :-(

*~*~*~*~*~*~*~*~*~*~*~*~*

Q2. I have a library, contains many cells, I need to print out names
of cells that only have both symbol and layout views, I wrote the
following proc, but it is not working as I want! Could anybody see
where the error is?

procedure( GetListOfLibCellsWithSymAndLayoutViews(lib)
let(()

foreach(cell ddGetObj(lib)~>cells
; Get names of all cells in the lib
cellName=dbOpenCellViewByType(lib cell~>name "symbol")~>cellName
; if the current cell has symbol and layout views then print it
if( member(cell~>views~>name '("symbol")) && member
(cell~>views~>name '("layout") )
printf("%s\n" cell~>name)
); if

;

); foreach
); let
); procedure

*~*~*~*~*~*~*~*~*~*~*~*~*

Q3. What is the simplest way to set/modify parameter value for this
single instance in the sheet? Given parameter name and new value?

*~*~*~*~*~*~*~*~*~*~*~*~*

Q4. How to create netlist for this sheet with SKILL? I couldn't use
createNetlist()

Thanks a lot for your help,
Regards,
 
Hi Reotaro,

Q1:
To get a cell view info, and instances parameter value. You need do
this.
cvId = dbOpenCellViewByType("libName" "cellName" "viewName" )
cvId~>libName
cvId~>cellName
cvId~>viewName
cvId~>instanceMasters~>cellName

To get the instances parameters,
inst = geGetSelSet()
cdfParam = cdfGetCellCDF(inst)



Q2:
You should do a ddGetObj to check for the view before opening. If the
cell view doesn't exist but your code insist to open it, it will
prompts u error. You can do this:

procedure( GetListOfLibCellsWithSymAndLayoutViews(lib)
let((libID (symView "schematic") (layView "layout"))

libID = car(setof(x ddGetLibList() x~>name == lib ))

foreach(cell libID~>cells
when( ddGetObj(lib cell~>name symView) && ddGetObj(lib
cell~>name layView)
printf("%L %L\n" lib cell~>name)
);when
);foreach
);let
);proc


Q3:
I doesn't get what really you want?


Q4:
Yes, u can use createNetList() function to get the netlist.

Regards,
How
 
Hi How,

Thanks a lot for your quick answer.

Concerning Q1:
For some reasons cdfGetCellCDF() returned nil ! I am running on
IC514, do u have any idea why?
Moreover, I am looking for something fully automated, I don't need to
manually select inst inside the sheet then get its params list,
instead I'd like to script to look for it and list its available
parameters.

Concerning Q2:
Perfect, this is exactly what i was looking for :)

Concerning Q3:
What I mean is: how to set certain parameter of an instance to
certain value (e.g. set 'w' of 'mimrf' to 3u) using SKILL

Concerning Q4:
I couldn't use createNetlist() but I managed to use si and pipo to
do so. Thanks for the hint anyway.

Best regards,
Ahmad

On Jun 5, 3:43 am, "KB.How" <kianboon....@gmail.com> wrote:
Hi Reotaro,

Q1:
To get a cell view info, and instances parameter value. You need do
this.
        cvId = dbOpenCellViewByType("libName" "cellName" "viewName" )
        cvId~>libName
        cvId~>cellName
        cvId~>viewName
        cvId~>instanceMasters~>cellName

To get the instances parameters,
        inst = geGetSelSet()
        cdfParam = cdfGetCellCDF(inst)

Q2:
You should do a ddGetObj to check for the view before opening. If the
cell view doesn't exist but your code insist to open it, it will
prompts u error. You can do this:

procedure( GetListOfLibCellsWithSymAndLayoutViews(lib)
    let((libID (symView "schematic") (layView "layout"))

        libID = car(setof(x ddGetLibList() x~>name == lib ))

        foreach(cell libID~>cells
            when( ddGetObj(lib cell~>name symView) && ddGetObj(lib
cell~>name layView)
                printf("%L %L\n" lib cell~>name)
            );when
         );foreach
   );let
);proc

Q3:
 I doesn't get what really you want?

Q4:
Yes, u can use createNetList() function to get the netlist.

Regards,
How
 
Ahmad wrote, on 06/05/09 13:32:
Hi How,

Thanks a lot for your quick answer.

Concerning Q1:
For some reasons cdfGetCellCDF() returned nil ! I am running on
IC514, do u have any idea why?
Moreover, I am looking for something fully automated, I don't need to
manually select inst inside the sheet then get its params list,
instead I'd like to script to look for it and list its available
parameters.
That's because it should be cdfGetInstCDF() not cdfGetCellCDF()...

Concerning Q2:
Perfect, this is exactly what i was looking for :)

Concerning Q3:
What I mean is: how to set certain parameter of an instance to
certain value (e.g. set 'w' of 'mimrf' to 3u) using SKILL
inst=dbFindAnyInstByName(cvId "mimrf")
when(inst
inst~>w="3u"
)


Concerning Q4:
I couldn't use createNetlist() but I managed to use si and pipo to
do so. Thanks for the hint anyway.
You didn't say what kind of netlist. If it's a CDL netlist or Verilog netlist,
then si would have been the way to do it. If it's a spectre netlist (or similar
ADE netlist), then createNetlist() would be the way.

And pipo is nothing to do with netlisting - that would be to create the stream
(GDS) file.

Regards,

Andrew.
 

Welcome to EDABoard.com

Sponsor

Back
Top