• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. fail to define new view type on libmgr

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 143
  • Views 12226
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

fail to define new view type on libmgr

mlea11
mlea11 over 4 years ago

Hello,

I was trying to define a new view type on libMgr, that should be use for gds file. the file should be open with a graphical tool wrraper called run_ic_workB

quick search on the forum gave me everything I need, i made the required customization... but somehow it fail.

i doubled checked myself few times -  but it seems that this "gdsLay" type would not go in to the view drop box.

I was wonder if any of the gentlemen here can see the issue .

DataFormat run_ic_workB {
Pattern = block.gds;
Default_Editor = run_ic_workB;
dfII_ViewType = gdsLay;
Co_Managed = block.gds master.tag prop.xx;
}

ViewAlias {
gdsLay=run_ic_workB;

}


Tool run_ic_workB {}

I also define the required trigger  , and trigger reg:

procedure( CCSOOoAppDataTrig(argList)
let( (mode(getq(argList accessMode)) libName(getq(argList libName))
cellName(getq(argList cellName)) viewName(getq(argList viewName))
fileId fileName)

if(fileId=ddGetObj(libName cellName viewName "*") then
when(fileId
fileName=ddGetObjWritePath(fileId)
system(sprintf(nil "run_icw %s" fileName))
);when
else
fileId = ddGetObj( libName cellName viewName "block.gds" nil "r" )
fileName=strcat(ddGetObjWritePath(fileId) )
system(sprintf(nil "run_icw %s" fileName))
) ;if

t
) ;let
) ;procedure CCSOOoAppDataTrig


;
; Dummy triggers
;
procedure( CCSOOoAppTrig(argL) t )
procedure( CCSOOoEnableTrig(@optional argL) t )
;
procedure( CCSOOoRegister()
deRegApp(
?appName "run_ic_workB"
?appTrigger 'CCSOOoAppTrig ; Dummy function
?dataTrigger 'CCSOOoAppDataTrig
?enableTrigger 'CCSOOoEnableTrig ; Dummy function
?viewType "gdsLay"
?widgetType "none"
)
);procedure CCSOOoRegister
;
; Register the triggers
;
CCSOOoRegister()

envSetVal("graphic" "viewNameToTypeList" 'string "document pdf, gdsLay gds" )

  • Cancel
  • mlea11
    mlea11 over 4 years ago

    Update: I was able to solve 50% of the issue - now once a gds lib  exist, and inside it there is a view in the right pattern : block.gds - virtuoso uses the app "run_ic_workB"  - and the layout open successfully.

                 I guess this mean that all 3 triggers were registered correctly. now i still left with the issue that , on library manager , i still dont see under  View type ( when creating a new cell view) the required "block" type

    here is the new code:

    DataFormat GDSII {
    Pattern=block.gds;
    Preferred_Editor=run_ic_workB;
    dfII_ViewType=block;
    Co_Managed = block.gds master.tag prop.xx;
    }

    ViewAlias {

    block=GDSII;

    }


    Tool GDSII {}

    i know that the data.reg is being red because I deliberate syntax error it  and make sure virtuoso complain.

    thx

    meny

               

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • henker
    henker over 4 years ago in reply to mlea11

    Actually the lines from the first post showed 'gdsLay' in the 'Type' selection field in LibraryManager when I tried it, so there might be some other reasons that it did not work on your side.

    However, on the second post: the data.reg has dfII_ViewType=block; while the deRegApp on the first has ?viewType "gdsLay"; Although it is unclear if you also modified the deRegApp, these two entries should be same.

    Also on the elements of the string for viewNameToTypeList: first is the viewname and second is the corresponding viewtype, so "gdsLay gds" would put "gdsLay" to the viewname field when viewtype "gds" is selected; but your actual naming suggests the opposit.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • mlea11
    mlea11 over 4 years ago in reply to henker

    thx for the response . here is the final code , that is still 50% operational:

    // Data Register file for adding netscape and pdf views
    // Date: 08/21/2013

    DataFormat Netscape {
    Pattern = netscape_url.htm;
    Default_Editor = Netscape;
    dfII_ViewType = netscape_url;
    Co_Managed = netscape_url.htm master.tag prop.xx;
    }

    DataFormat Gdsii {
    Pattern=block.gds;
    Preferred_Editor=run_ic_workB;
    dfII_ViewType=block;
    Co_Managed= block.gds master.tag;
    }


    DataFormat Acroread {
    Pattern=document.pdf;
    Preferred_Editor=Acroread L;
    dfII_ViewType=document;
    Co_Managed=document.pdf master.tag ;
    }

    ViewAlias {
    netscape_url=Netscape;
    document=Acroread;
    block=Gdsii;

    }

    Tool Netscape {}
    Tool Acroread {}
    Tool Gdsii {}

    envSetVal("graphic" "viewNameToTypeList" 'string "pdf pdf, pdf document, OOo document.od, document document.od*, block block.gds")

    the string "block" dont appear at the  cell view type field, while all the others do. 

    i dont publish the triggers because these are seems to load fine , and the required action of launching the wrapper "run_ic_workB"  works. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • henker
    henker over 4 years ago in reply to mlea11

    try this:

    DataFormat Netscape {
    Pattern = netscape_url.htm;
    Default_Editor = Netscape;
    dfII_ViewType = netscape_url;
    Co_Managed = netscape_url.htm master.tag prop.xx;
    }

    DataFormat run_ic_workB {
    Pattern=block.gds;
    Preferred_Editor=run_ic_workB;
    dfII_ViewType=block;
    Co_Managed= block.gds master.tag;
    }


    DataFormat Acroread {
    Pattern=document.pdf;
    Preferred_Editor=Acroread L;
    dfII_ViewType=document;
    Co_Managed=document.pdf master.tag ;
    }

    ViewAlias {
    netscape_url=Netscape;
    document=Acroread;
    block=run_ic_workB;

    }

    Tool Netscape {}
    Tool Acroread {}
    Tool run_ic_workB {}

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to henker

    If you use the original SKILL code from the first post (which had ?viewType "gdsLay"), and this in the data.reg, it should work:


    DataFormat Run_ic_workB {
    Pattern = block.gds;
    Default_Editor = Run_ic_workB;
    dfII_ViewType = gdsLay;
    Co_Managed = block.gds master.tag prop.xx;
    }

    ViewAlias {
    gdsLay=Run_ic_workB;

    }

    Tool Run_ic_workB {}

    The Default_Editor needs to have a corresponding Tool name in the data.reg. The dfII_ViewType needs to match the ?viewType in the deRegApp. That's about it...

    I agree though - this is not very obvious and easy to get wrong, with little feedback when it's wrong (it simply doesn't work).

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information