Batch of SKILL trainee questions (basic stuff)

Discussion in 'Cadence' started by Reotaro Hashemoto, Apr 23, 2008.

  1. Hi all,

    I have a list of basic SKILL question, i hope that you can put some
    answers to them.

    Q1. I don't have Netscape, but only firefox, is it possible to display
    cdsdocs contents in firefox? How can i do it?

    Q2. When I type "openbook" anything in terminal, it gives me "command
    not found", what should i do to see it?

    Q3. Where to read about bindkeys setting, modification and
    particularly bindkeys "events"?

    Q4. Is there a meaning for every built-in Skill functions suffixes?
    Like hi..., ge... dmb... and so on?? Where can i find explanation or
    comments about them?

    Q5. I want to pass certain string to a function like hiSetWindowName,
    and that string needs to have a variable value to be substituted when
    calling the function, in Tcl we can put the string between double-
    quotation pairs and put the variable as $var, is there a way to do
    similar thing in Skill??

    Q6. I need to read dedicated example(s) about circuit building
    (instance placing, wiring the circuit, and biasing it) in Skill, this
    is dedicated to create an automated flow for some devices test. Where
    to find that?

    Q7. Why don't i see the menu when creating it using hiCreateSimpleMenu
    in the CIW? Should i use also any function to initialize CIW menus?

    Q8. When I create a menu in certain window banner, is there a way to
    place the menu to right of the window (like the help menu)?

    Q9. Finally,How to know information about cadence stuff like menu
    names (e.g. file, edit, ...) , window names, and so on?

    Thank you very much in advance,
    And best regards,
    Ahmad
     
    Reotaro Hashemoto, Apr 23, 2008
    #1
  2. For Q1. I found the answer, the solution was quite easy, just by
    making a symbolic link to firefox in /usr/bin and rename it to
    netscape.

    For Q2. I find in my $CDSHOME folder and subfolders for "openbook" and
    nothing was found except here: $CDSHOME/share/java/COM/cadence/
    openbook but i couldn't find anything useful there (I am using Linux
    RHEL 4 btw)

    For Q3. I could find information about it under: Cadence User
    Interface SKILL Functions Reference
     
    Reotaro Hashemoto, Apr 23, 2008
    #2
  3. Reotaro Hashemoto

    Guest Guest

    Try setting the environment variable CDS_DEFAULT_BROWSER to firefox. I
    think cdsdoc pays attention to that
    Try cdsdoc instead of openbook.
    Sample bindkeys files are in <CDShier>/tools/dfII/samples/local.
    Also, cdsdoc has a lot of stuff on that. And the documentation is also
    available through sourcelink, as far as I know.
    Yes. hi == Human Interface. ge == Graphics Editor. I forget what dmb is.
    le == Layout Editor. etc.
    Lets says the variable name is StringVar. You can do:

    MyWindowName = strcat( "prefix " StringVar " postfix" )

    or

    MyWindowName = sprintf( nil "prefix %s postfix" StringVar )

    for example.
    That I don't know (I'm a GUI person).
    CIW menus should be initialized with the ciw.menus file. hiCreateSimpleMenu()
    just creates the menu, you have to use hiAddBannerMenu() to add it to a
    window, but you really want to set up the ciw.menus files, since that tends
    to override what's place programmatically. The menus files are all in
    Partly experience, partly documentation, partly looking at the log file...

    -Pete Zakel
    ()

    "we will invent new lullabies, new songs, new acts of love,
    we will cry over things we used to laugh &
    our new wisdom will bring tears to eyes of gentile
    creatures from other planets who were afraid of us till then &
    in the end a summer with wild winds &
    new friends will be."
     
    Guest, Apr 23, 2008
    #3
  4. Reotaro Hashemoto

    Riad KACED Guest

    Hi Guys,

    Q1 :
    .. linking netscape to mozilla in /usr/bin is a possible solution but
    requires writing privileges.
    .. As far as I know, CDS_DEFAULT_BROWSER is available for CDSDOC 2.2
    version which comes with ICOA5.2.51. It does not work for CDSDOC 2.1
    and back. i.e it is not supported for IC5141. Check your CDSDOC
    version to ensure this is applicable in your case : cdsdoc -version.
    There are other possible solutions but there is no point in arguing
    since you've made it working ;-)

    Q2:
    To be honest, the only times I used openbook/cdsdoc are when the
    people I used to support complain it's not working.
    I have copied/linked the cds pdfs into my laptop's hard disc myslef.
    I've made it with a unix command like this :
    unix> find $CDSHOME/doc -iname '*.pdf' -exec cp {} /home/kaced/doc/
    cadence \;
    It's not perfect I know ...

    Q3:
    The following skill functions may help : hiGetBindKeys,
    hiGetBindKeys ... Or CIW -> Options -> Bindkey...

    Q4:
    add Plotting
    addpa Floorplanning
    adf Floorplanning
    adfp Floorplanning
    adp Floorplanning
    aed Analog Editing
    ael Analog Expression Language
    alm Analog Library Management
    app Application
    asi Analog Simulation
    awv Analog Waveform
    ccp Copy Engine
    cdf Component Descrption Format
    ciw Component Interpreter Window
    cor Corner
    dag Display Acyclic Graphing
    data Data
    db Database
    dd Design Data
    dds Design Data Services
    de Design Editing
    df Design Flow
    dl Display Listing
    dm Design Managing
    dmb Design Management Browsing
    dr Display resourcing
    eco Engineering Change Ordering
    enter Enterfunction
    env Environment
    fm Documenting
    gdm Generic Design Management
    ge Graphics Editing
    gr Floorplanning
    hi Human Intefacing
    ic Floorplanning
    icc routing
    ipc Inter Process Communication
    ise Interactive Simulation Environment
    iv Interactive Verification
    las Layout Synthesizing
    lc Library Converting
    le Layout Editing
    list Listing
    lx Layout Editing (XL)
    mc Place & Route
    menu Menu
    mif Documenting
    ocn Ocean
    pc Parametrized Cells
    post Plotting
    pr Floorplanning
    pra Floorplanning
    prn Floorplanning
    probe Probing
    pwr Floorplanning
    rod Relative Object Designing
    sc Structure Compiling
    sch Schematic
    sim Simulation
    sk Skill Linting
    sy Symbolic compacting
    tc Technology
    tech Technology
    user User
    window Window
    ...... Oooouuuuuuffff

    Q5 :
    I use sprintf() more often since it offers the formating features.
    strcat does concatenates strings only.
    Please note that unlike strcat, sprintf assigns the resultant string
    to the variable given as the first argument. So instead writing :
    MyWindowName = sprintf( nil "prefix %s postfix" StringVar ), which
    works very fine actually, you can make it :
    sprintf(MyWindowName "prefix %s postfix" StringVar ). This syntax form
    is very handy for lazy people like me :)

    Q6:
    I don't know if there is something about it in the CDS samples but I
    used to have some examples in my personnal box but I'm not finding
    them just now.Let me some time to chase it up ...

    Q7/Q8: Nothing to add.

    Q9: There is no magic answer for this I'm afraid.I'm might be wrong.
    I know some of them by experience as well :
    The LibraryManager "file" menu is for example known as "fileCascade"
    in the skill world. Type in listFunctions("fileCascade") into your
    CIW, this will come with the file menu items ... It's very long to
    talk about all the menus but don't hesitate to ask if you're looking
    for a specific one.

    Q10 : This is a Joker one.
    Try using listFunctions()/printFunctions() and startFinder(). These
    are really useful ...

    At the end, The Skill training is excellent, it's worth asking your
    boss for it ...

    Enjoy !

    Riad.
     
    Riad KACED, Apr 24, 2008
    #4
  5. Wow! Perfect guys!! That's much more better that i can see in my
    dreams :)

    Thanks a lot!

    We've already got the orange training book from Cadence, but for the
    time being i don't have enough time before starting my first SKILL
    project in PDKs that will last for 4 months :-(

    They plan to push me to an advanced SKILL course after that, unless
    you guys made me expert :)

    Riad, how're you, i would like to say thanks particularly to you ;-)

    I would appreciate if you can come up with the circuit building and
    simulation examples asap.

    Best regards,
    Ahmad
     
    Reotaro Hashemoto, Apr 24, 2008
    #5
  6. Wow! Perfect guys!! That's much more better that i can see in my
    dreams :)

    Thanks a lot!

    We've already got the orange training book from Cadence, but for the
    time being i don't have enough time before starting my first SKILL
    project in PDKs that will last for 4 months :-(

    They plan to push me to an advanced SKILL course after that, unless
    you guys made me expert :)

    Riad, how're you, i would like to say thanks particularly to you ;-)

    I would appreciate if you can come up with the circuit building and
    simulation examples asap.

    Best regards,
    Ahmad
     
    Reotaro Hashemoto, Apr 24, 2008
    #6
  7. Reotaro Hashemoto

    Riad KACED Guest

    Little mistake in my last post :
    listFunctions("fileCascade") is rubbish, fileCascade is not a
    function.
    It's actually lmgrQueryNamedObjects("fileCascade"), your libManager
    should be open of course.

    Sorry for that !
     
    Riad KACED, Apr 24, 2008
    #7
  8. Reotaro Hashemoto

    S. Badel Guest

    Q3. Where to read about bindkeys setting, modification and
    There a nice but short tutorial in this wiki : http://cadence.wikispaces.com/Bindkeys
    The wiki was initiated by users of this newsgroup, but unfortunately didn't evolve too much.
    Yes. I have a list of prefixes in my SQR (according to which, dmb stands for design management
    browsing), but I don't know if there's a list somewhere in the regular documentation.
    Example:

    ciwMenuInit() ;; call this to make sure the ciw menus have been initialized, or they might be reset
    later on

    hiInsertBannerMenu(
    hiGetCIWindow()
    hiCreatePulldownMenu(
    'ciwCustomMenu
    "Custom Menu"
    list(
    hiCreateMenuItem(
    ?name 'ciwCustomMenuItem
    ?itemText "Custom Menu Item"
    ?callback " myCallback()"
    )
    )
    ""
    )
    (hiGetNumMenus(hiGetCIWindow())-1)
    )
    I don't think so.
    Use hiGetCurrentWindow(), hiGetWindowMenu(), hiGetMenuItems() type of functions, for example.



    Stéphane
     
    S. Badel, Apr 24, 2008
    #8
  9. Reotaro Hashemoto

    Riad KACED Guest

    Riad KACED, Apr 26, 2008
    #9
  10. Thanks,

    I have tried hiGetWindowMenu(window(1)) for example, and it always
    returns nil, did i make a mistake?

    Guys, please advice regarding circuit building with SKILL or OCEAN.

    Thanks and regards,
    Ahmad
     
    Reotaro Hashemoto, Apr 28, 2008
    #10
  11. Reotaro Hashemoto

    Guest Guest

    "Window Menu" is the RMB popup (or MMB on older releases) on a graphics
    window (and some other windows), and the CIW doesn't have one of those.
    The banner menus are gotten with hiGetBannerMenus().

    -Pete Zakel
    ()

    "Probably the best operating system in the world is the [operating system]
    made for the PDP-11 by Bell Laboratories." - Ted Nelson, October 1977
     
    Guest, Apr 29, 2008
    #11
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.