The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Design Languages >> Verilog-AMS >> Annotate DC operating point for verilogA model
https://designers-guide.org/forum/YaBB.pl?num=1388451318

Message started by Mikay on Dec 30th, 2013, 4:55pm

Title: Annotate DC operating point for verilogA model
Post by Mikay on Dec 30th, 2013, 4:55pm

Hi everyone,

I have a question for annotation with verilogA model.
Currently I model both P and N transistors with verilogA. When the DC simulation is finished the DC operation point is found correctly by the simulator.

I'm wonfering if some basic DC OP information(gm rds etc.) of the transistors can be annotated to the symbol just like the way with normal device. It will be very good if this is possible. Anyone have any idea about this?

Thanks,
-Mikay

Title: Re: Annotate DC operating point for verilogA model
Post by Andrew Beckett on Dec 31st, 2013, 2:18am

Actually, spectre should save the value of any real variable in the module as an operating point parameter. If you don't want it to save all of them, you can define the variable as (say):

(* desc="Vds" *) real vds;

If you have variables with the desc attribute, then only those will be saved. In the absence of any variables with the desc attribute, they'll all get saved. This is a feature which is coming from the support of the compact_module attribute (search in cdnshelp for more information), although it doesn't require you to declare your module as a compact_module for the desc attribute to have an effect.

Then to annotate them, you'll need to update the CDF of the block to specify which operating point parameters to annotate by default. If using IC61, you'd edit the CDF (via Tools->CDF->Edit), pick the lib and cell and "Base" for CDF Layer, and then go to the Interpreted Labels tab. Change the "Use cdsParam to display" to "Operating Point Results" and then in the Parameter table on the right side, add the names of your operating point parameters (the real variables; it's the variable names themselves rather than what you called them in any desc attribute). You can set it back to display Instance/CDF Parameters afterwards - this is just to record which parameters you want displayed by default.

Of course, your symbol will need as many cdsParam(N) ILLabel labels (with N being a number corresponding to the position in the list of parameters) as you have opPoints to display.

Hope that helps!

Kind Regards,

Andrew.

Title: Re: Annotate DC operating point for verilogA model
Post by Mikay on Dec 31st, 2013, 2:09pm

Thanks Andrew, the method is great! Now the DC OP point can be annotated back to the symbol very conevinently.

-Mikay


Andrew Beckett wrote on Dec 31st, 2013, 2:18am:
Actually, spectre should save the value of any real variable in the module as an operating point parameter. If you don't want it to save all of them, you can define the variable as (say):

(* desc="Vds" *) real vds;

If you have variables with the desc attribute, then only those will be saved. In the absence of any variables with the desc attribute, they'll all get saved. This is a feature which is coming from the support of the compact_module attribute (search in cdnshelp for more information), although it doesn't require you to declare your module as a compact_module for the desc attribute to have an effect.

Then to annotate them, you'll need to update the CDF of the block to specify which operating point parameters to annotate by default. If using IC61, you'd edit the CDF (via Tools->CDF->Edit), pick the lib and cell and "Base" for CDF Layer, and then go to the Interpreted Labels tab. Change the "Use cdsParam to display" to "Operating Point Results" and then in the Parameter table on the right side, add the names of your operating point parameters (the real variables; it's the variable names themselves rather than what you called them in any desc attribute). You can set it back to display Instance/CDF Parameters afterwards - this is just to record which parameters you want displayed by default.

Of course, your symbol will need as many cdsParam(N) ILLabel labels (with N being a number corresponding to the position in the list of parameters) as you have opPoints to display.

Hope that helps!

Kind Regards,

Andrew.


The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.