The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Design Languages >> Verilog-AMS >> Verilog-A model Monte Carlo simulation with spectre https://designers-guide.org/forum/YaBB.pl?num=1357726478 Message started by yueguoguo on Jan 9th, 2013, 2:14am |
Title: Verilog-A model Monte Carlo simulation with spectre Post by yueguoguo on Jan 9th, 2013, 2:14am Hi all, I am simulating my verilog-a model using Cadence spectre. To study the process variations of the device, I need to vary the model parameters during each of my simulation analysis to get the statistics. Can any of you provide me with help on how to do this? Thanks in advance. |
Title: Re: Verilog-A model Monte Carlo simulation with spectre Post by Geoffrey_Coram on Jan 9th, 2013, 6:49am You should read the documentation on Monte-Carlo (spectre -help montecarlo), set up a netlist, and post that netlist. Then someone might help you debug the netlist and Monte-Carlo setup. |
Title: Re: Verilog-A model Monte Carlo simulation with spectre Post by yueguoguo on Jan 9th, 2013, 6:51pm Hi, Thanks for your suggestion. I am new to behavioral modelling using verilog-a, therefore my problem is not how to debug it but how to do it. :) I have read the help doc provided by spectre but found no clues about how to access parameters in a verilog-a model and vary them in the simulations. For example, I have a verilog-a module A in which there are parameter P. I instantiate it in my netlist as a component and simulated with the circuit. Can I directly change the parameter P in my simulations? I mean, not change the verilog-a code, but change it as a variable in spectre. Thanks. |
Title: Re: Verilog-A model Monte Carlo simulation with spectre Post by Geoffrey_Coram on Jan 11th, 2013, 7:54am What I meant by "debug your Monte-Carlo setup" was that you would create a netlist, using your best understanding of the documentation, and we would help you figure out if you misunderstood. From the documentation, you should be able to set up a netlist with some statistics blocks, use the parameters in those stat blocks to set the parameter P of your Verilog-A model, and run the simulation. The only trick I can see you might have trouble with is making sure the netlist contains a parameter assignment for the Verilog-A module: X1 (a b) my_va_module isn't good enough, you need X1 (a b) my_va_module P=value so that you can pass the statistically-determined value into the module. |
Title: Re: Verilog-A model Monte Carlo simulation with spectre Post by yueguoguo on Jan 12th, 2013, 3:40am Hi Geoffrey, Thanks for your suggestions. I have already successfully set up the netlist with the monte-carlo analysis. Exactly as you said, I need to assign the parameters of the verilog-a model I defined and then give them randomly distributed values in the statistical blocks. Now I encountered with another problem. As you may know, in the monte carlo analysis session, we need to set some child analysis, and in order to record down the output values into a ASCII file we need to use the oceanEval statement to export the scalar values. I used the expression as m1 montecarlo xxxx xxxx { tran tran start=0 stop=50n export v1=oceanEval("v(\"net013\") 50n") } which means I want to record down the voltage of node "net013" at the time point of 50ns in each of the transient analysis. The monte carlo simulation can be successfully run with no errors, however the output values seemed not to be as that I expected. I would like to know whether there are any problems with my oceanEval expressions? I have been looking for any references but without any satisfactory results. This expression is not introduced in the ocean reference manual. Or there may be other problems? Thanks. -yueguoguo |
Title: Re: Verilog-A model Monte Carlo simulation with spectre Post by Geoffrey_Coram on Jan 14th, 2013, 6:05am What if you just do export v1=oceanEval("v(\"net013\")") since your tran analysis stops at 50n? |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |