The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Jul 17th, 2024, 8:29am
Pages: 1
Send Topic Print
noise_table function (Read 7865 times)
ORNITORINCO
New Member
*
Offline



Posts: 5

noise_table function
Feb 07th, 2008, 4:50pm
 
Hello everyone,

I am trying to simulate PLL phase-noise in phase-domain using verilog-AMS description of each block under SpectreRF (I perform AC and NOISE analysis with analog_environment). To include the output phase noise spectrum I am following Kundert's guide "Predicting the Phase Noise of PLL-Based Frequency Synthesizers" and I am using the noise_table function to give the values of phase-noise for discrete points in frequency.

My problem is that I would like to have a piecewise-linear interpolation of the points in the log-log plot as it is usual in phase-noise spectrum description (dBc/Hz vs log(freq)). Is there anyone knowing how to do that?

Thanks!
Back to top
 
 
View Profile   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1999
Massachusetts, USA
Re: noise_table function
Reply #1 - Feb 12th, 2008, 6:40am
 
Your request has already been brought up for the next version of the V-AMS standard.
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
Christoph
New Member
*
Offline



Posts: 3
Germany
Re: noise_table function
Reply #2 - Feb 29th, 2008, 6:50am
 
Hi!
I was trying to do a similar thing in a Verilog-AMS model for spectre. Unfortunately spectre did not seem to support arrays. Did someone managed to create an array of (constant) real values?

Kind regards,

Christoph
Back to top
 
 
View Profile   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1999
Massachusetts, USA
Re: noise_table function
Reply #3 - Feb 29th, 2008, 12:57pm
 
Are you using a current version of Spectre?  I'm pretty sure it does support arrays.  

I have this in one of my modules ...

I(a,b) <+ noise_table({10.0,5.0,100.0,6.0,1000.0,10.0,1.0G,6.0},"tabnoi");
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
Marq Kole
Senior Member
****
Offline

Hmmm. That's
weird...

Posts: 122
Eindhoven, The Netherlands
Re: noise_table function
Reply #4 - Mar 19th, 2008, 2:29pm
 
Currently Spectre still does not support array parameters and it will give an error when trying to initialize such a parameter with an array literal.
You will have to create a real array variable and assign it a value in an initial_step event if you want to use it that way.

Cheers,
Marq
Back to top
 
 
View Profile   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1999
Massachusetts, USA
Re: noise_table function
Reply #5 - Mar 20th, 2008, 6:14am
 
Marq -
I recall some problem with using array variables for noise_table; are you sure spectre supports this?
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
neoflash
Community Fellow
*****
Offline

Mixed-Signal
Designer

Posts: 397

Re: noise_table function
Reply #6 - Oct 29th, 2009, 10:10am
 
Geoffrey_Coram wrote on Feb 29th, 2008, 12:57pm:
Are you using a current version of Spectre?  I'm pretty sure it does support arrays.  

I have this in one of my modules ...

I(a,b) <+ noise_table({10.0,5.0,100.0,6.0,1000.0,10.0,1.0G,6.0},"tabnoi");


Hi, Geoffery:

Is there any way that we put the table data in a file, then call it in the noise_table(function)?

I'm using verilogA in hspice.

Regards,
Neo
Back to top
 
 
View Profile   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1999
Massachusetts, USA
Re: noise_table function
Reply #7 - Nov 2nd, 2009, 5:33am
 
Verilog-AMS LRM 2.3 added support for using a filename input for noise_table.  I don't know how many simulators have implemented this as yet.

Quote:
When the input is a file name, the indicated file will contain the frequency / power pairs. The file name argument shall be constant and will be either a string literal or a string parameter. Each frequency / power pair shall be separated by a newline and the numbers in the pair shall be separated by one or more spaces or tabs. To increase the readability of the data file, comments may be inserted before or after any frequency / power pair. Comments begin with ‘#’ and end with a newline. The input file shall be in text format only and the numbers shall be real or integer.
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
neoflash
Community Fellow
*****
Offline

Mixed-Signal
Designer

Posts: 397

Re: noise_table function
Reply #8 - Nov 2nd, 2009, 6:02am
 
Geoffrey_Coram wrote on Nov 2nd, 2009, 5:33am:
Verilog-AMS LRM 2.3 added support for using a filename input for noise_table.  I don't know how many simulators have implemented this as yet.

Quote:
When the input is a file name, the indicated file will contain the frequency / power pairs. The file name argument shall be constant and will be either a string literal or a string parameter. Each frequency / power pair shall be separated by a newline and the numbers in the pair shall be separated by one or more spaces or tabs. To increase the readability of the data file, comments may be inserted before or after any frequency / power pair. Comments begin with ‘#’ and end with a newline. The input file shall be in text format only and the numbers shall be real or integer.

I think that's why I failed to do so in hspice. HSPICE doesn't support AMS extension yet.
Back to top
 
 
View Profile   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.