如何可以使得veriloga编写的模块算出DC点并再原理图中打印出来?
//####################################
module res (va,vb);
inoutva, vb;
electricalva, vb;
parameter real resss = 1K from [0:inf) ;
analog begin
V(va,vb)<+resss * I(va,vb) ;
end
endmodule
//####################################
veriloga文件和CDF的opPointLabelSet 需要如何处理,才能把 电流i、电压v 和 功率pwr 这些信息在print opPoint的时候在原理图上显示出来呢?
求教
问题已解决,如下:
1. 代码更改如下
//####################################
module res (va,vb);
inoutva, vb;
electricalva, vb;
parameter real resss = 1K from [0:inf) ;
reali, v, pwr;
analog begin
V(va,vb)<+resss * I(va,vb);
i=I(va,vb);
v=V(va,vb);
pwr=I(va,vb) * V(va,vb);
end
endmodule
//####################################
2. symbol中添加cdsParam(1)cdsParam(2)cdsParam(3)
3. 在cdf中设置opPointLabelSet为‘v i pwr’,不包含引号。
通过veriloga中计算的i v pwr传递数据,可打印dc opPoint和Transient opPoint
请教小编一个问题,比如我想要限定电路中电流的大小,如I不能超过3A, 应该怎么把这个条件加进去呀
不知道如下方法是否可行:
1. 如果要限制支路L的电流,则在支路L上串一个R0的电阻,电阻两端命名为a、b。
2. 如果I(a,b)<=3A,则R0接近于0;如果I(a,b)>3A,则R0远大于0。
为了使电流或者阻抗不出现跳变,R0可以设置成连续的,如下:
module current_limiter(a,b);
inouta, b;
electricala, b;
parameterI_lim=3.0;
parametersensitivity=1u;
realR0;
analogbegin
R0=exp((I(a,b)-I_lim)/sensitivity;
V(a,b)<+I(a,b) * R0;
end
endmodule
sensitivity是电流敏感度,越小限流的阈值就越准,但是太小的话阻抗变化太大,可能会引起不收敛。