verilog—A疑问,请高手指教!
最近在学习verilog-A语言,0基础,打算写一个惠斯通电阻桥的模型,但是编译如下,系统总提示有错误,不知原因,请大侠指点一二,切勿笑我,对语言真的是一窍不通。
// VerilogA for TEST, res, veriloga
`include "constants.vams"
`include "disciplines.vams"
//--------------------------
// -res
//
// plus,minus:terminals (V,A)
//
// INSTANCE parameters
//r = resistance (Ohms)
//
// MODEL parameters
//{none}
//
module res(plus,minus);
inout plus,minus;
electrical plus,minus;
parameter real q=0.1;
parameter real un=300;
parameter real Ndnw=2.3;
parameter real teff=0.8;
parameter real a=1;
real r,rsh;
analog begin
rsh=1/(q*un*Ndnw*teff);
V(plus,minus) <+ r*I(plus,minus);
end
endmodule
//module resh
module HP(t,m,r,n);
inout t,m,r,n;
electrical t,m,r,n;
res res1(t,m);
res res2(m,r);
res res3(r,n);
res res4(n,t);
real rh,rsh;
analog
rh=(2*rsh/('M_PI))*((2*l/w+2/3)*'M_PI-2*ln2);
r<+rh;
endmodule
anaog begin
AND
no definition of w and l
您好:我的程序里面用到了PI,所以按手册语法定义了一下:
// VerilogA for TEST, resistor1, veriloga
`include "constants.vams"
`include "disciplines.vams"
//--------------------------
// -resistor1
//
// plus,minus:terminals (V,A)
//
// INSTANCE parameters
//r = resistance (Ohms)
//
// MODEL parameters
//{none}
//
'define M_PI 3.1415926535897932384626433
module res(plus,minus);
inout plus,minus;
electrical plus,minus;
parameter real q=0.1;
parameter real un=300;
parameter real Ndnw=2.3;
parameter real teff=0.8;
parameter real a=1;
real r,rsh;
analog begin
rsh=1/(q*un*Ndnw*teff);
V(plus,minus) <+ r*I(plus,minus);
end
endmodule
//module resh
module HP(t,m,r,n);
inout t,m,r,n;
electrical t,m,r,n;
parameter real l=1.0u;
parameter real w=1.0u;
res res1(t,m);
res res2(m,r);
res res3(r,n);
res res4(n,t);
real rh,rsh;
analog begin
rh= (2*rsh/'M_PI)*((2*l/w+2/3)*'M_PI-2*ln2);
r<+ rh;
end
endmodule
现在报这个错是什么原因呢
`define ...not
'define ....
rsh is not defined!
你错误的使用了<+运算符,可以改成V(xx)<+rsh*I(xx)
谢谢,方便的话可以不以加一下QQ呢,还有点问题要请教!