Ocean and X-Windows

Discussion in 'Cadence' started by Stefan Joeres, Nov 29, 2003.

  1. Hi alltogether,

    at the moment I'm trying to run some complex simulations in ocean and I
    wonder why ocean wants to open a connection to an existing X-Server when
    starting up.
    Is there an option to suppress this ?
    My scripts do run ocean several times from a remoteshell and it's not
    possible to keep that X-Server open for this purpose ...

    Thanks for any help,

    Stefan
     
    Stefan Joeres, Nov 29, 2003
    #1
  2. Stefan Joeres

    Partha Guest

    Was wondering if the -nograph option would help?

    ocean -nograph < input.ocn > oceanrun.log
     
    Partha, Nov 29, 2003
    #2
  3. Stefan Joeres

    snmishra Guest

    Stefan> Hi alltogether, at the moment I'm trying to run some complex
    Stefan> simulations in ocean and I wonder why ocean wants to open a
    Stefan> connection to an existing X-Server when starting up. Is
    Stefan> there an option to suppress this ? My scripts do run ocean
    Stefan> several times from a remoteshell and it's not possible to
    Stefan> keep that X-Server open for this purpose ...

    Stefan> Thanks for any help,

    Stefan> Stefan

    Hi Stefan

    Partha's suggestion should work. In case you are using the graphics
    functions too, cadence includes a null X server. It is call Xndx and is
    in <cdsroot>/tools/dfII/bin. This should allow you to use the regular
    graphics and create postscript hardcopies.

    I must say that I have never used the method above for Cadence software
    but only for MATLAB. YMMV.

    Satya
     
    snmishra, Nov 30, 2003
    #3
  4. Hi Satya,

    thanks for your help. Can you tell me how to use that null X Server ?
    It seems it doesn't include any help from the command line.

    Stefan
     
    Stefan Joeres, Nov 30, 2003
    #4
  5. Stefan Joeres

    snmishra Guest

    Stefan> Hi Satya, thanks for your help. Can you tell me how to use
    Stefan> that null X Server ? It seems it doesn't include any help
    Stefan> from the command line.

    Stefan> Stefan
    Stefan

    I would use it as Xndx -pn -ac :1 . Then use display localhost:1 .
    I did not have success with the Xndx program ( I just tried it, haven't
    looked into it too much). However, Xvfb (another null X server, this
    time from the XFree86 project) did work. You can look for Xvfb on
    google. If you are not successful with that, let me know and I will try
    to find it out for you (I downloaded the Xvfb binaries from somewhere
    and I don't remember where).

    Satya
     
    snmishra, Nov 30, 2003
    #5
  6. Xndx is not intended for standalone use by the way. It is there _only_ for the
    tools to use for the -nograph option. It can be made to work standalone (I have
    done this in the past), but if you're using ocean or a DFII executable (icms,
    icfb etc), then just using -nograph will take care of starting Xndx and
    channelling the display to that for you.

    To answer the original question as to why it needs an Xserver connection, it's
    because the plot() command will bring up a window, even when using the "ocean"
    command (which has a textual front end).

    Regards,

    Andrew.
     
    Andrew Beckett, Dec 1, 2003
    #6
  7. I'm sorry, but the suggested solutions don't solve my problem.

    I'm using a simple shell-script to start my simulations like

    #!/bin/tcsh
    ocean -nograph <sim1.ocn
    ocean -nograph <sim2.ocn
    ocean -nograph <sim3.ocn

    Whenever I use the -nograph option, ocean doesn't completely load the
    simulation-script. It stop's with an output of some variables and a "t" at
    the end. It's the same when I try to open the scripts with "load sim1.ocn"
    from the ocean-command line.

    When using ocean without the "-nograph" option everything works fine, and
    I'm not using a plot-command throughout the script.

    Any suggestions ?

    Stefan
     
    Stefan Joeres, Dec 2, 2003
    #7
  8. Stefan Joeres

    snmishra Guest

    Stefan> I'm sorry, but the suggested solutions don't solve my
    Stefan> problem. I'm using a simple shell-script to start my
    Stefan> simulations like

    Stefan> #!/bin/tcsh
    Stefan> ocean -nograph <sim1.ocn ocean -nograph <sim2.ocn ocean
    Stefan> -nograph <sim3.ocn

    Stefan> Whenever I use the -nograph option, ocean doesn't completely
    Stefan> load the simulation-script. It stop's with an output of some
    Stefan> variables and a "t" at the end. It's the same when I try to
    Stefan> open the scripts with "load sim1.ocn" from the ocean-command
    Stefan> line.

    Stefan> When using ocean without the "-nograph" option everything
    Stefan> works fine, and I'm not using a plot-command throughout the
    Stefan> script.

    Stefan> Any suggestions ?

    Stefan> Stefan

    Could you please post a minimal script that reproduces the problem?

    Satya
     
    snmishra, Dec 2, 2003
    #8
  9. I'd have to see the script to be able to give any more suggestions...

    Andrew.
     
    Andrew Beckett, Dec 2, 2003
    #9
  10. Hi,

    I actually use 2 scripts (because it didn't work by just putting them
    together into one) :

    script number one (which is executed from the shell) :
    ---------
    ocean -nograph <oceanScript1.ocn
    ocean -nograph <oceanScript2.ocn
    ----------

    the oceanScripts themself look like this :
    ----------
    ; INIT
    simulator( 'spectre )
    design( "/AMS_CDS_3.51/Sim/Test5/spectre/schematic/netlist/netlist")
    resultsDir( "/AMS_CDS_3.51/Sim/Test5/spectre/schematic/" )
    modelFile( '("/software/init.scs" "") '("/software/definitions.scs" "")
    '("/software/include.scs" "slow") )
    temp( 27 )
    desVar( "vctrl" 1.044)
    desVar( "W_TG" 1 )
    desVar( "W_INV" 1 )
    p = outfile( "./outfile_slow_5")
    save( 'v "/osc_out" )
    converge( 'ic "/osc_out" "0" )
    desVar( "lambda_TG" 1)
    desVar( "lambda_INV" 1)

    ; MAIN

    lambdaTGList=list(1 1.5 2 4 )
    lambdaINVList=list(1 1.5 2 4 )
    WeiteTGList=list(0.16u 0.32u 0.48u 0.96u 1.92u )
    WeiteINVList=list(0.16u 0.32u 0.48u 0.96u 1.92u )

    foreach(lambdaTG lambdaTGList
    desVar("lambda_TG" lambdaTG)
    foreach(lambdaINV lambdaINVList
    desVar("lambda_INV" lambdaINV)
    foreach(Winv WeiteINVList
    desVar("W_INV" Winv )
    foreach(Weite WeiteTGList
    desVar("W_TG" Weite )
    delete( 'analysis )
    analysis('tran ?stop "10n" )
    paramAnalysis( "vctrl" ?values '(0 0.1666666666666667 0.3333333333333333
    0.5 0.6666666666666666 0.8333333333333333 0.999999
    paramRun()
    pvctrl=cross( frequency( VT("/osc_out"
    "/AMS_CDS_3.51/Sim/Test5/spectre/schematic")), 1.565G)
    if(
    numberp(cross(frequency(VT("/osc_out"
    "/AMS_CDS_3.51/Sim/Test5/spectre/schematic")),1.565G))
    ; IF TRUE
    (pvctrl=cross(frequency(VT("/osc_out"
    "/home/joeres/AMS_CDS_3.51/Sim/Test5/spectre/schematic")),1.565G))
    ; ELSE
    (pvctrl=1.5)
    ) ; ENDIF

    delete('analysis)
    desVar( "vctrl" pvctrl)
    analysis('tran ?stop "10n" )
    analysis('pss ?fund "1.565G" ?harms "5" ?errpreset "conservative" ?p
    "/osc_out" ?n "/gnd!" )
    analysis('pnoise ?relharmnum "" ?start "10k" ?stop "100G" ?maxsideband
    "3" ?p "/osc_out" ?n "/gnd!" ?oprobe "" ?ipro
    run()
    PhaseNoise = value(phaseNoise(1 "pss_fd" ?result "pnoise") 1000000)
    ocnPrint( ?output p pvctrl )
    ocnPrint( ?output p Weite )
    ocnPrint( ?output p lambdaTG)
    ocnPrint( ?output p Winv )
    ocnPrint( ?output p "-------------------------")
    drain(p)
    ) ; END FOREACH
    ) ; END FOREACH
    ) ; END FOREACH
    ) ; END FOREACH
    close(p)

    ; END MAIN
    --------- END OCEAN SCRIPT

    Another thing I was wondering about : When I try to put an 'ocnPrint(
    ?output p "TEXT)' as first statement - ocean complains about something like
    "not a function" or similar (can't compile this at the moment ...)

    Thanks in advance,

    Stefan
     
    Stefan Joeres, Dec 2, 2003
    #10
  11. Stefan Joeres

    Erik Wanta Guest

    Maybe you need to use the wait command:

    #!/bin/tcsh
    ocean -nograph -log /dev/null < sim1.ocn
    wait
    ocean -nograph -log /dev/null < sim2.ocn
    wait
     
    Erik Wanta, Dec 7, 2003
    #11
  12. Apologies for the delay in responding. Not sure what causes it to fail, but one
    thing I would point out is that you are using Artist calculator functions VT()
    in an OCEAN script - this is not a good idea, since they don't always behave
    properly. You're better off using:

    selectResults('tran)

    and then using the v() function. Or using the ?result 'tran argument to
    the v() function. There's a PCR to get the VT, IT etc functions to behave
    properly with OCEAN - but they aren't actually documented OCEAN functions,
    so the documentation doesn't suggest that they should work...

    Since you didn't give what the error was, I can't advise much more...

    Andrew.
     
    Andrew Beckett, Jan 3, 2004
    #12
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.