The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
May 19th, 2024, 11:35pm
Pages: 1
Send Topic Print
AHDL block using noise models (Read 2721 times)
ganesh
New Member
*
Offline



Posts: 7

AHDL block using noise models
May 25th, 2005, 6:37pm
 
I have been trying to simulate  phase noise due to a noisy varactor in a VCO. The VCO uses AHDL blocks to model the varactor.  I am using two ways to simulate the noise from this varactor.

(i) Using a voltage noise source-(By including a noise file in the voltage source)

(ii) By using a equivalent circuit model

In both the cases I make sure that I have the same noise PSD. But I get a different phase noise behavior for each of the above two cases.

Is this a simulator related issue? Can anyone help me?

Thanks,
Ganesh.
Back to top
 
 
View Profile   IP Logged
Mighty Mouse
Community Member
***
Offline

Here I come to save
the day!

Posts: 75
Fantasyland
Re: AHDL block using noise models
Reply #1 - May 25th, 2005, 8:48pm
 
You would have to post your models for us to know.

- MM -
Back to top
 
 
View Profile   IP Logged
ganesh
New Member
*
Offline



Posts: 7

Re: AHDL block using noise models
Reply #2 - May 26th, 2005, 11:16am
 
Hello MM,
              Do you want me to post the AHDL models or AHDL models with the equivalent circuit model?

If yes, Here is my AHDL block written in SpectreHDL.

Let me give you a brief explanation. The varactor model consists of two blocks. The first block gives a voltage output (x(t)) depending on an input voltage V(t)

The second block gives a current output based on the value of x(t) and V(t).  We are interested in the current output.

Block 1:
---------


// Spectre AHDL for ahdlmemsmodel, block1, ahdl

module block1 ( xn, xp, vn, vp) (epi,A,d1,m,r,k)
   node [V,I] xn;
   node [V,I] xp;
   node [V,I] vn;
   node [V,I] vp;

parameter real epi = 0.0000000000088589312;
parameter real A = 0.000000040000;
parameter real d1 = 0.00000150;
parameter real m = 0.0000000001;
parameter real r=0.00002/1;
//parameter real r = 0.00050;
parameter real k = 3.8;
{

node [V,I] tem;

analog
{

V(tem) <- dot(V(xp,xn));

V(xp, xn) <- -0.5*epi*A*V(vp,vn)*V(vp,vn)/(k*(d1 + V(xp,xn))*(d1 + V(xp,xn))) - m*dot(V(tem))/k - r*V(tem)/k;

}

}


V(xp,xn) corresponds to x(t). V(vp,vn) corresponds to V(t).



Block 2:
---------

// Spectre AHDL for ahdlmemsmodel, block2, ahdl

module block2 ( outn, outp, vinn, vinp, xinn, xinp) (epi,A,d1,m,r,k)
   node [V,I] outn;
   node [V,I] outp;
   node [V,I] vinn;
   node [V,I] vinp;
   node [V,I] xinn;
   node [V,I] xinp;
parameter real epi = 0.0000000000088589312;
parameter real A = 0.000000040000;
parameter real d1 = 0.00000150;
parameter real m = 0.0000000001;
parameter real r = 0.00002/1;
parameter real k = 3.8;
{

node [V,I] temv;  
node [V,I] temx;
analog
{

V(temv) <- dot(V(vinp,vinn))*0.000000001;
V(temx) <- dot(V(xinp,xinn));

I(outp,outn) <- 4*epi*A*V(temv)*1e9/(V(xinp,xinn)+d1) + -4*epi*A*V(vinp,vinn)*V(temx)/((V(xinp,xinn)+d1)*(V(xinp,xinn)+d1));


}

}

V(xinp,xinn) corresponds to the output of the first block(x(t)) and V(vinp,vinn) corresponds to V(t).

I know the noise PSD of x(t). so I attach the noise model at the input of the second block, in such a way that the output of the noise model adds to x(t) before it is input to the second block.

The equivalent circuit model consists of a series RLC circuit with the voltage across the capacitor as ouput. The equivalent circuit model acts as a noise shaping low pass filter.

Please let me know if you need any more information.

Thanks,
Ganesh.

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.