首页 > 微波/射频 > RFIC设计学习交流 > VCO的理想VerilogA模型

VCO的理想VerilogA模型

录入:edatop.com    阅读:

  1. module vco1 (out, in);

  2. input in; voltage in;                                // input terminal
  3. output out; voltage out;                        // output terminal
  4. parameter real vmin=0;                                // input voltage that corresponds to minimum output frequency
  5. parameter real vmax=vmin+1 from (vmin:inf);        // input voltage that corresponds to maximum output frequency
  6. parameter real fmin=1 from (0:inf);                // minimum output frequency
  7. parameter real fmax=2*fmin from (fmin:inf);        // maximum output frequency
  8. parameter real vl=-1;                                // high output voltage
  9. parameter real vh=1;                                // low output voltage
  10. parameter real tt=0.01/fmax from (0:inf);        // output transition time
  11. parameter real ttol=1u/fmax from (0:1/fmax);        // time tolerance
  12. real freq, phase;
  13. integer n;

  14. analog begin
  15.     // compute the freq from the input voltage
  16.     freq = (V(in) - vmin)*(fmax - fmin) / (vmax - vmin) + fmin;

  17.     // bound the frequency (this is optional)
  18.     if (freq > fmax) freq = fmax;
  19.     if (freq < fmin) freq = fmin;

  20.     // bound the time step to assure no cycles are skipped
  21.     $bound_step(0.6/freq);

  22.     // phase is the integral of the freq modulo 2p
  23.     phase = 2*`M_PI*idtmod(freq, 0.0, 1.0, -0.5);

  24.     // identify the point where switching occurs
  25.     @(cross(phase + `M_PI/2, +1, ttol) or cross(phase - `M_PI/2, +1, ttol))
  26.         n = (phase >= -`M_PI/2) && (phase < `M_PI/2);

  27.     // generate the output
  28.     V(out) <+ transition(n ? vh : vl, 0, tt);
  29. end
  30. endmodule

复制代码


为什么输入信号为vpwl,t:0到10us,v:0到1V,输出一直保持为0呢?

申明:网友回复良莠不齐,仅供参考。如需专业解答,请学习本站推出的微波射频专业培训课程

上一篇:仿真Could not find netlist procedure
下一篇:求达人指点LDO

射频和天线工程师培训课程详情>>

  网站地图