Hi... This is Alvin Park. SKILL Beginner ^_^
I programmed a SKILL code for auto editing.
first DB open by "dbOpenCellViewByType"
TDB = dbOpenCellViewByType( LibName CellName "layout" "masklayout" "a")
in case normal... this return correct DB code to TDB parameter. So far so good.
but in case of editing by somebody else (locked) , CIW shows warning that this cell is locked. (shows warning only!)
This code return correct DB code in spit of not editing the cell.
So before DB open by editing mode,
How can I determine some cell is editing by sombody else?
Once the cellview is edited by someone, cadence will locked it down to avoid other user from editing it. If you want to play safe for your code, you can perform checking before proceed. Example:
if( cv = dbOpenCellViewByType( libName cellName viewName "maskLayout" "a") then
; Start your code here, coz you managed to edit it
error("Failed to open cellview in edit mode. Mission aborted\n")
In reply to kb how:
Thank you for your reply and example code....
Sorry to say your code does not work correctly.....
cv = dbOpenCellViewByType( "V1_55P0_FHD_C502_R06_DEC2012_Panel_AELA" "pixel_unit" "layout" "maskLayout" "a" ) ;open DB*WARNING* (DB-270000): dbOpenCellViewByType: Unable to lock database file for V1_55P0_FHD_C502_R06_DEC2012_Panel_AELA/pixel_unit/layoutdb:0x1c1b3d9a
"pixel_unit" is editing by somebody else but cv does not return NILL but DB code (db:0x1c1b3d9a)....
Just warning "Unable to lock database" that is all....;
C/F : In case of without writing permission, cv returns nill. your code works correct. Thank you.
In reply to Alvin Park:
Maybe 'geGetLockInfo' is what you are looking for.
What version of the tools are you using? I have a vague recollection of this problem - but even going back a few releases I can't see it - it always returns nil for me for a locked cellView.
One way to check would be to see if cv~>mode=="a" after the open - it will be "r" if it opened it readonly.
You could also use the ddLock functions - but I would first try to get to the bottom of what version you are using and why this is happening, rather than trying to code around it. getVersion(t) will give the version details that I need to see.
In reply to Andrew Beckett:
Cadence version is IC6.1.4-64b.500.11
after dbOpenCellViewByType function, check it's mode "r" or "a" again. It works good. thank you.
I discovered what the problem is - if the cellView has already been opened in readonly, and then you try to open it for "a" (append) mode, it now (even in IC615) returns the dbObject of the cellView.
I have filed a CCR to get this corrected, as it's a difference in behaviour from IC5141.
In reply to berndfi:
geGetLockInfo funcition helps me!