more control of display.drf

Discussion in 'Cadence' started by Erik Wanta, Oct 11, 2004.

  1. Erik Wanta

    Erik Wanta Guest

    We want to be able to support the use of multiple PDKs at one time. I
    want to be able to load the appropriate display.drf for the layout
    that I am currently opening up. I created a user trigger to do a
    drLoadDrf() on the display.drf for the technology that the library is
    attached to.

    Problems:
    1. I get a pop up message when I open that layout asking if I want to
    see a list of all the undefined layers. So, it seems that drLoadDrf
    is taking place after it checks to see if packets are defined for all
    the layers. Any ideas how I can disable this warning or load the
    display.drf sooner?

    2. How do I clear all the packets ... from virtual memory? I want to
    start from a clean slate before loading the display.drf from a
    different technology.

    3. If I use drLoadDrf it asks If I want to save the display.drf when
    I exit icfb. Maybe if I find a way to purge packets in step 2 it
    won't ask.

    4. Can't have 2 layouts for 2 different technologies open in the same
    session.

    procedure(dt(argList)
    prog((techName libPath)

    when(techName=techGetTechLibName(argList->libId)

    /*
    foreach(packet drGetPacketList(drGetDisplay("display"))
    drDeletePacket(drGetDisplay("display") packet)

    ) ; foreach
    */


    libPath=ddGetObjWritePath(ddGetObj(techName))

    when((isFile(strcat(libPath "/display.drf")) &&
    !isFile("display.drf"))

    drLoadDrf(strcat(libPath "/display.drf"))

    ) ; when

    ) ; when

    return(t)

    ) ; prog
    ) ; procedure

    when(member('dt deGetAppInfo("maskLayout")->userAppTrigList)
    ;if registered, unregister
    _deUnRegUserTrigger("maskLayout" 'dt nil nil)
    ) ; when

    ;register the display.drf load user trigger
    deRegUserTriggers("maskLayout" 'dt nil nil)
     
    Erik Wanta, Oct 11, 2004
    #1
  2. Erik Wanta

    S. Badel Guest

    1. What if you do it in the libInit.il of the tech. library ?
    If you don't mind adding or modifying a PDK file...
    It would be loaded only once, of course, not sure this matches your needs.

    I saw also there is tcRegPreLoadTrigger() which allows a trigger to
    be called each time a technology file is loaded.

    2. you can do (didn't try it)
    foreach( packet drGetPacketList("display")
    drDeletePacket("display" packet)
    ) ; foreach
    or even enclose it in foreach( display drGetDisplayNameList() ... )
    to process all displays.

    I think however that all PDKs should use different packet names in order
    to be able to load several at the same time without conflicts.

    3. try drLoadDrf( file nil )

    stéphane
     
    S. Badel, Oct 12, 2004
    #2
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.