我也是新手,低通滤波器我也没有做过,可以探讨一下,我觉得有两种方式,第一种是以原理图的形式实现,最简单的二阶滤波器可以搭出来
第二种是以Verilog A语言描写,可以参考下官网的例程,官网的就是一个RC低通滤波器。
VerilogA语言就是基尔霍夫定律,用语言构建电路,然后把所有电路节点的电流电压描述出来。
// Phase Locked Loop
module pll(rf, out, ref, if_);
inout rf, out, ref, if_;
electrical rf, out, ref, if_;
electrical lo;
parameter real tau = 1m from (0:inf);
parameter real loopGain = 1 from (0:inf);
parameter real fc = 2.0k from (0:inf);
real cap, res;
phaseDetector #(.gain(2)) pd1(lo, rf, if_);
vco #(.gain(loopGain/2), .fc(fc) ) vco1(out, lo);
analog begin
cap = 150e-9;
res = tau/cap;
V(out, if_) <+ I(out, if_)*res;
I(out, ref) <+ ddt(cap*V(out,ref));
end
endmodule
|