• 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. what about your opinion?

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 143
  • Views 14059
  • 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

what about your opinion?

imagesensor123
imagesensor123 over 14 years ago

Hi everyone,

  i must say sorry at firstI, because of posting this question twice.

i am glad to accept any advice you recommand!

my question is that:

I want to simulate a parameter(in our model) with many many different values, maybe millions of values. To be specificlly, i need to generate the output value into a specific file format, such as in an image format. so the problem is that if i use the normal interface(analog artist),it's really a hard work even if we can use the paramAnalysis function, because i need to pick up one point in the output curve,such as( ?signal Vout ?time 0.35u). i don't know any way we can take in the interface to do this, so i write a skill function with a loop to load the ocean. Talking in details, i use a function to change the parameter value each time,and then use the savOcean command to update the ocean, so we can get the new ocean with the new parameter value, i also use the load("new.ocn") to re-simulate and get the Vout .But in that way, there are some drawbacks:

1, in the previous state, i select some signal as the output, and plot them. but i found that some signal or curve are not  expected,so i'd like to delete the others,but i don't like to change the state,is there any function can "block" or "cancle" the plot command,there are too many curves in the output graphic window, i want to remain the window to be the newest curve,and delete the last time output curve, i know the analog artist itselt do like this, but i failed to find out the function

2,owing to my function load the ocean in CIW , so the software(cadence) is blocked, you can't do anything  but waiting for the end of the whole simulation, it maybe one day or more. so i think myown way(do the paramAnalysis) is not good enough, can you imagine that?what's your opinion? do you have a better idea?

3, some time was lost, about this we can talk about later!

main idea and process:

adopt the "for" loop in zfparamAnalysis(my function)

read in the input data(parameter database in a file)--->save the data in a matrix in memory-->assign a new value to the parameter("lin")-->save the ocean-->load the new ocean(new.ocn) in CIW-->process the Vout-->save the Vout in specific format-->go back to the "assign a new value to the parameter("lin")

welcome to advise in any way

regards,

zfeng

  • Cancel
  • imagesensor123
    imagesensor123 over 14 years ago

    Hi,

      I also met this problem couple days ago, but a little different. i found there are many posts about the paramAnalysis, so i post my question here.

    I hope to get some help!

    my question is that:

    I want to simulate a parameter(in our model) with many many different values, maybe millions of values. To be specificlly, i need to generate the output value into a specific file format, such as in an image format. so the problem is that if i use the normal interface(analog artist),it's really a hard work even if we can use the paramAnalysis function, because i need to pick up one point in the output curve,such as( ?signal Vout ?time 0.35u). i don't know any way we can take in the interface to do this, so i write a skill function with a loop to load the ocean. Talking in details, i use a function to change the parameter value each time,and then use the savOcean command to update the ocean, so we can get the new ocean with the new parameter value, i also use the load("new.ocn") to re-simulate and get the Vout .But in that way, there are some drawbacks:

    1, in the previous state, i select some signal as the output, and plot them. but i found that some signal or curve are not  expected,so i'd like to delete the others,but i don't like to change the state,is there any function can "block" or "cancle" the plot command,there are too many curves in the output graphic window, i want to remain the window to be the newest curve,and delete the last time output curve, i know the analog artist itselt do like this, but i failed to find out the function

    2,owing to my function load the ocean in CIW , so the software(cadence) is blocked, you can't do anything  but waiting for the end of the whole simulation, it maybe one day or more. so i think myown way(do the paramAnalysis) is not good enough, can you imagine that?what's your opinion? do you have a better idea?

    3, some time was lost, about this we can talk about later!

    main idea and process:

    adopt the "for" loop in zfparamAnalysis(my function)

    read in the input data(parameter database in a file)--->save the data in a matrix in memory-->assign a new value to the parameter("lin")-->save the ocean-->load the new ocean(new.ocn) in CIW-->process the Vout-->save the Vout in specific format-->go back to the "assign a new value to the parameter("lin")

    welcome to advise in any way

    regards,

    zfeng

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    I split off your duplicate post (from the topic it was attached to, because it was a rather different issue), and merged it with this one. Please do not file duplicate posts, it makes it hard to know where to respond.

    Unfortunately whilst there are a lot of words in your question, there's actually not enough detail to really know precisely what you're doing. So my responses are somewhat vague.

    1. You can use the clearAll() or awvClearPlotWindow() or awvClearWindowHistory() functions for this. 
    2. If you were running with the run function, you can always do run(?noBlock t) to make it non-blocking. Hard to know from what you've said where the constraints are - maybe you can do some things in parallel (perhaps use distributed processing to run sims in parallel) - but obviously running simulations in parallel will use more licenses.
    3. No question, so no answer

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • imagesensor123
    imagesensor123 over 14 years ago

    Hi,

        thanks for reminding and replying, it's difficult to explain my work in details,but i can if you are interested in it.

    about the question 1, is it possible to get the Vout value if i don't select Vout as the output or don't plot the Vout curve? in another words, is it any net or signal available to the user, we don't need to save, but we can use it?

    about the question 2, is there another way to run the simulation without load the ocean, i remember the built-in function paramAnalysis will create a stand alone window to run the simulation, rather than repeat loading the ocean.

    Regards,

    zfeng

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    I'm afraid I don't really understand either of your questions. You have to ensure that the simulator has saved Vout to be able to get the value of it (fairly obviously). You can do that either by telling it to save all voltages or saving the specific signal you need. No need to plot it though.

    The paramAnalysis function does not create a stand alone window - it's an OCEAN function to do parametric analysis. You should never need to repeat loading ocean files - simply put loops (such as foreach loops) or paramAnalysis in the OCEAN script.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • imagesensor123
    imagesensor123 over 14 years ago

    Hi,

    sorry about that, but you have answer my question well.

    i don't use the "paramAnalysis" in my procedure,because i want to retrive certain time point Vout value such as (?time 3.5us), we have discussed this before. i found user can not get this value during the paramAnalysis circle, so i used a "for" loop and added a user function to get a value each time, like this

    procedure(zfRun()

     for(i 1 10000

    assignNewValue("lin" dataMatrix[i])  ;;change the parameter "lin" value

    saveOcn("new.ocn") ;;save the ocean with the new parameter value

    load("new.ocn")  ;;re-simulate, in the ocean i used the run() function

    signalProcess("Vout")  ;;pick up one point in the Vout curve, eg value(v(Vout) 3.5u)

    )

    );;don't care the syntax, there may be some errors

     

    i think it looks like the paramAnalysis, but a little different. i think it can help you to understand my question.

    Regards,

    zfeng

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    As I said previously, altering a variable in ADE, then writing an OCEAN script, then loading the OCEAN script - this is a pretty good way of making it slow.

    Wouldn't it be better to do:

    load("theOceanScript.ocn") ; maybe doesn't contain the run() call
    for(i 1 10000
      desVar("lin" dataMatrix[i])
      run()
      signalProcess("Vout")
    )

    that way you're not reinitializing everything every time.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • imagesensor123
    imagesensor123 over 14 years ago

     Hi,

       your method is really good, it works very well! Thanks

    Regards,

    zfeng

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • imagesensor123
    imagesensor123 over 14 years ago

     Hi,

     I also tried paramAnalysis with the paramSet like this:

    paramAnalysis( "lin" ?values valueList ?sweepType 'paramset )

    paramRun()

    v=signalProcess("Vout")

    and then i found v is a wave object after the simulation, we can know the value by selecting it and dispaly it in the table (in the waveform window by pushing the button "table") , is there an easy way to obtain these values and select them one by one, or save them in a file because i need to process these data later.

    Regards,

    zfeng

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • longwest
    longwest over 10 years ago

    Does paramAnalysis works good with the paramSet now ?             word create datamatrix bar code generation in word

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    Unknown said:
    Does paramAnalysis works good with the paramSet now ? 

    It always did (for as long as paramSet has been supported in parametric analysis in ADE at least). Why do you think it doesn't?

    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