微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > RFIC设计学习交流 > verilog—A疑问,请高手指教!

verilog—A疑问,请高手指教!

时间:10-02 整理:3721RD 点击:

最近在学习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呢,还有点问题要请教!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top