关于VerilogA代码 问题
时间:10-02
整理:3721RD
点击:
求高手指点下,帮忙捉捉虫~现在这个程序语法上应该木有问题,但是仿真结果不能正常实现功能,这是什么原因呢?
这是一个过压保护电路,程序如下:
`include "constants.vams"
`include "disciplines.vams"
module over_voltage_protect_6v(OUT, GND, VDD, VIN);
output OUT;
electrical OUT;
input GND;
electrical GND;
input VDD;
electrical VDD;
input VIN;
electrical VIN;
parameter real Vref_high=6.6;
parameter real Vref_low =6.27;
parameter real Out_high=5;
parameter real Out_low =0;
analog begin
if(V(VIN)<=Vref_low)
V(OUT)<+Out_low;
else if(Vref_low<V(VIN)<=Vref_high)
begin
if(V(OUT)==Out_low)
V(OUT)<+Out_low;
else if(V(OUT)==Out_high)
V(OUT)<+Out_high;
end
else V(OUT)<+Out_high;
end
endmodule
我想实现的是过压保护功能,就是输入电压查过6.6V时输出高电压保护,当电压下降到6.27V的时候解除保护状态,即输出为低电平。但是现在仿真的结果输出一直都是0,这是什么原因呢?
这是一个过压保护电路,程序如下:
`include "constants.vams"
`include "disciplines.vams"
module over_voltage_protect_6v(OUT, GND, VDD, VIN);
output OUT;
electrical OUT;
input GND;
electrical GND;
input VDD;
electrical VDD;
input VIN;
electrical VIN;
parameter real Vref_high=6.6;
parameter real Vref_low =6.27;
parameter real Out_high=5;
parameter real Out_low =0;
analog begin
if(V(VIN)<=Vref_low)
V(OUT)<+Out_low;
else if(Vref_low<V(VIN)<=Vref_high)
begin
if(V(OUT)==Out_low)
V(OUT)<+Out_low;
else if(V(OUT)==Out_high)
V(OUT)<+Out_high;
end
else V(OUT)<+Out_high;
end
endmodule
我想实现的是过压保护功能,就是输入电压查过6.6V时输出高电压保护,当电压下降到6.27V的时候解除保护状态,即输出为低电平。但是现在仿真的结果输出一直都是0,这是什么原因呢?
顶一下 求助求助~