The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Measurements >> Phase Noise and Jitter Measurements >> phase.vams
https://designers-guide.org/forum/YaBB.pl?num=1582572832

Message started by as_rf on Feb 24th, 2020, 11:33am

Title: phase.vams
Post by as_rf on Feb 24th, 2020, 11:33am

Hi all,

I have problem compiling the code which is written in Ken Kundert
Designer’s Guide Consulting, Inc.


Code:
`include "/home/asarrafi/phase.vams" // from Listing 2, includes disciplines.vams.


module osc_phase_va(out);

output out;

phase out;

parameter real n = 0 from [0:inf); // white output phase noise at 1 Hz (rad2/Hz)
parameter real fc = 0 from [0:inf); // flicker noise corner frequency (Hz)

analog begin


Theta(out) <+ flicker_noise(n, 2, "wpn")+flicker_noise(n*fc, 3, "fpn");

end

endmodule


I wrote the listing code and put it in phase.vmas
but cadence does not compile it for some reason and it does not show specific error. :(

Title: Re: phase.vams
Post by Ken Kundert on Feb 24th, 2020, 8:24pm


Code:
`include "phase.vams" // from Listing 2, includes disciplines.vams.

module osc_phase_va(out);
output out;
phase out;
parameter real n = 0 from [0:inf);   // white output phase noise at 1 Hz (rad2/Hz)
parameter real fc = 0 from [0:inf);  // flicker noise corner frequency (Hz)

analog begin
   Theta(out) <+ flicker_noise(n, 2, "wpn");
   Theta(out) <+ flicker_noise(n*fc, 3, "fpn");
end
endmodule

You might try splitting the contribution statement into two. Cadence has become quite persnickety about the small-signal stimulus functions.

-Ken

Title: Re: phase.vams
Post by Andrew Beckett on Feb 29th, 2020, 4:20am

The original code compiles OK for me, although I didn't know what was in the phase.vams code that was being included (it referred to Listing 2 - not sure which Listing 2 it's talking about; it's not Listing 2 from The Designer's Guide to Verilog AMS). So I simply changed "phase out" to "rotational out" and changed the `include to the more standard `include "disciplines.vams"

This was with SPECTRE 18.1.0.556.isr13 and 19.1.0.237.isr3 (the latest hot fixes of the current and previous release of spectre).

Which version of Spectre are you using? What is in the included file?

It should not be necessary to split up the contributions as Ken suggested; there have certainly been bugs when that was a workaround, but in this case it's either a resolved bug (if that was the problem) or something else. Knowing the version numbers used and the complete code would help with figuring that out...

Thanks,

Andrew.

Title: Re: phase.vams
Post by Andrew Beckett on Mar 1st, 2020, 2:31am

I just realised that Listing 2 is from https://designers-guide.org/analysis/PLLnoise+jitter.pdf - with the definition there, the code also compiles with Spectre 18.1 and 19.1 (unsurprisingly since the discipline is essentially similar to the standard rotational).

Andrew.

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