📄 tb_pll_top1.cpp
字号:
#include "systemc-ams.h"#include "../phc/phc.h"#include "../lp1/lp1.h"#include "../vco/vco.h"SCA_SDF_MODULE(src_sin) { sca_sdf_out<double> out; double ampl, freq; void sig_proc() { out.write(ampl*sin(2*M_PI*freq*sc_time_stamp().to_seconds())); } SCA_CTOR(src_sin) {} };SCA_SDF_MODULE(trace){ sca_sdf_in<double> in; ofstream output; void sig_proc() { output << sc_time_stamp().to_seconds() << "\t " << in.read() << endl; } SCA_CTOR(trace) { output.open(name(), ios::out); }};int sc_main(int argc, char* argv[]){ sca_sdf_signal<double> ref, pco, lpo, vcoo; sc_set_time_resolution(0.001, SC_US); phc i_phc("phc"); i_phc.in1(ref); i_phc.in2(vcoo); i_phc.out(pco); i_phc.kpc = 3.72; lp1 i_lp1("lp1"); i_lp1.in(pco); i_lp1.out(lpo); i_lp1.fp = 112e3; i_lp1.h0 = 1.0; vco i_vco("vco"); i_vco.in(lpo); i_vco.out(vcoo); i_vco.out.set_delay(1); // feedback loop! i_vco.gain = 1.0; i_vco.kvco = 3e4; i_vco.fc = 7e6; i_vco.vfc = 0.0; src_sin src_ref("src_ref"); src_ref.out(ref); src_ref.out.set_T(sc_time(0.001, SC_US)); src_ref.ampl = 1.0; src_ref.freq = 7e6; trace tr_ref("tr_ref1"); tr_ref.in(ref); trace tr_pco("tr_pco1"); tr_pco.in(pco); trace tr_lpo("tr_lpo1"); tr_lpo.in(lpo); trace tr_vcoo("tr_vcoo1"); tr_vcoo.in(vcoo); sc_start(120, SC_US); system("PAUSE"); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -