B
bu-bu
Guest
Hello ,
i have a problem with the following code.
This script traverses the schematic hierarchy. It creates a file that
contains schematic name for every instance (like |i1|I12)
For that, i have modified a script i have found on sourceLink.
This code works fine. The file is created correctly, but after
execution of the script on a "big" schematic (more than 1000
instances), my Cadence session is frozen during 5 minutes.
On a smaller schematic (100 instances) , the Cadence session is frozen
during few seconds only.
I would like to know how to improve this code to make it faster on big
schematics. Because waiting 5 minutes is very long!
And this function is a part of a script : I guess users could be
surprised if they run the whole script!
I use Cadence IC5.1.41 usr6 isr10.
Could you help me please?
Thanks and regards,
bubu
---------------------------
procedure(MyScript()
let((ResultFile cv cw)
cv = geGetWindowRep()
cw = hiGetCurrentWindow()
ResultFile= outfile("./Myfile.txt")
MyScriptSub(cv cw ResultFile)
close(ResultFile)
)) ;; let proc
procedure(MyScriptSub(cv cw ResultFile)
let(( viewList stopList ExcludeList switchedView Inst List)
viewList = "schematic cmos.sch symbol"
stopList = list("symbol")
List = list()
ExcludeList = list("basic" "analogLib")
foreach(Inst cv~>instances if(member(Inst~>libName ExcludeList) ==
nil then List=tconc(List Inst))) ;; foreach
foreach(Inst car(List)
switchedView = dbGetAnyInstSwitchMaster(Inst viewList)
geSwitch(cw "r" Inst 1 1 1 )
when(switchedView
unless(member(switchedView~>viewName stopList)
fprintf(ResultFile strcat(geGetInstHier(cw) "\n"))
MyScriptSub(switchedView cw ResultFile)
) ;; unless
) ;; when
geReturn()
) ;; foreach
)) ;; let proc
i have a problem with the following code.
This script traverses the schematic hierarchy. It creates a file that
contains schematic name for every instance (like |i1|I12)
For that, i have modified a script i have found on sourceLink.
This code works fine. The file is created correctly, but after
execution of the script on a "big" schematic (more than 1000
instances), my Cadence session is frozen during 5 minutes.
On a smaller schematic (100 instances) , the Cadence session is frozen
during few seconds only.
I would like to know how to improve this code to make it faster on big
schematics. Because waiting 5 minutes is very long!
And this function is a part of a script : I guess users could be
surprised if they run the whole script!
I use Cadence IC5.1.41 usr6 isr10.
Could you help me please?
Thanks and regards,
bubu
---------------------------
procedure(MyScript()
let((ResultFile cv cw)
cv = geGetWindowRep()
cw = hiGetCurrentWindow()
ResultFile= outfile("./Myfile.txt")
MyScriptSub(cv cw ResultFile)
close(ResultFile)
)) ;; let proc
procedure(MyScriptSub(cv cw ResultFile)
let(( viewList stopList ExcludeList switchedView Inst List)
viewList = "schematic cmos.sch symbol"
stopList = list("symbol")
List = list()
ExcludeList = list("basic" "analogLib")
foreach(Inst cv~>instances if(member(Inst~>libName ExcludeList) ==
nil then List=tconc(List Inst))) ;; foreach
foreach(Inst car(List)
switchedView = dbGetAnyInstSwitchMaster(Inst viewList)
geSwitch(cw "r" Inst 1 1 1 )
when(switchedView
unless(member(switchedView~>viewName stopList)
fprintf(ResultFile strcat(geGetInstHier(cw) "\n"))
MyScriptSub(switchedView cw ResultFile)
) ;; unless
) ;; when
geReturn()
) ;; foreach
)) ;; let proc