Každá cesta k pozemku frekvence vs oscilace čas v Cadence?

C

curious_engineer

Guest
Mám oscilátor, jehož chování ve vztahu k času chci pozorovat.Například, chci mít možnost vidět, jak dlouho to trvá, než začne oscilátor oscilující na požadovanou frekvenci, pokud existuje překročení, pokud frekvence nějak mění v průběhu doby, atd.

Nemůžu přijít na to, jak to udělat na Cadence.Mohu přidat "frekvence (VT (" / oscillator_output "))" jako výstup, ale to pouze pozemky frekvence na-ose y kdybych parametricky zamést design proměnné.Jinak, v přechodové analýzy, je to prostě zobrazuje frekvenci hodnotu na ADE okno.

Děkuju.

 
Udělal jsem veriloga widgety, které se Edge-to-Edge
krát, a přeměnit je na inverzní napětí, které představuje
frekvence.Není dokonalá, ale dost blízko, pokud máte "dobře
choval "(tj. kříže nula, a ne horší než náměstí
vln harmonických složek).

 
O měsíc později, oživení tohoto tématu, protože jsem se vrátil k tomuto projektu.

"Frekv" příkaz funguje, ale to se nezdá být velmi přesné z nějakého důvodu.Nemůžu sledovat překročení, a to nezačíná v 0.Chtěl bych zkusit metodu, která by snad bylo přesnější.

Můžete mi prosím vysvětlit veriloga algoritmus, nebo nějaké jiné, systematická metoda pro přesné zachycení frekvence vs Čas pro oscilátor?

 
Možná změna práh z AUTO na uživatele a poskytnout odpovídající dc úroveň vašeho oscilátoru výstupu

 
Viz níže příklad jednoduchého Verilog-modul,
které musí být instantiated v obvodu s frekvencí
že byste chtěli měřit

------------
Modul freq_hdl (pro, IN);
výstup pro;
vstup;
elektrické kterým se v;

Parametr reálného VDD = 1,8;
parametr skutečný rozsah = 1,0;

integer cross_in;
skutečné per_in;
skutečné prev_in;
skutečné lat_in;
skutečné frekv;

analog začít

@ (Initial_step) začíná
cross_in = 0;
per_in = 0;
lat_in = 0;
freq = 0;
konec

@ (Cross (V (IN)-VDD * 0,5, 1, 1e-3, IN.potential.abstol)) začíná
cross_in = cross_in 1;
prev_in = lat_in;
lat_in = $ abstime;
konec

if (cross_in <2) začíná
per_in = 0;
freq = 0;
konec jinak začít
per_in = (lat_in - prev_in);
freq = (1 / (per_in * stupnice));
konec

V (FO) < přechodu (frekvence, 100p, 100p);

konec

endmodule

 

Welcome to EDABoard.com

Sponsor

Back
Top