Hello,
I am getting fatal errors at the time of the simulation.
Using Verilog-A view only.
Please help to debug these issues.
====Errors:====
Notice from spectre during initial setup.
Ignorevaref=yes is ignored since all nodes are connected to Verilog-A modules.
Fatal error found by spectre during topology check.
FATAL: The following branches form a loop of rigid branches (shorts) when added to the circuit:
I1:prefout2_flow (from prefout to 0)
I1:pdetout2_flow (from pdetout to 0)
========
test bench
Verilog-A code
=====================================================
// VerilogA for test_bias, veriloga
`include "constants.vams"
`include "disciplines.vams"
`define L(pin) (V(pin,vss)>V(vdd,vss)/2)
module test_bias(en_bias,iout,en_pdet_out_bias,en_pref_out_bias,vdd,vss,pdetout,prefout);
input en_bias;
electrical en_bias;
inout iout;
electrical iout;
inout en_pdet_out_bias;
electrical en_pdet_out_bias;
inout en_pref_out_bias;
electrical en_pref_out_bias;
inout vdd;
electrical vdd;
inout vss;
electrical vss;
inout pdetout;
electrical pdetout;
inout prefout;
electrical prefout;
analog begin
if(`L(en_bias)==1) begin
I(vdd,iout) <+ 10e-6;
end
else begin
I(vdd,iout) <+ 0;
end
if(`L(en_pdet_out_bias)==1) begin
V(pdetout) <+ 0.5;
end
else begin
I(pdetout,vss) <+ V(pdetout,vss)*1e-12;
end
if(`L(en_pref_out_bias)==1) begin
V(prefout) <+ 0.5;
end
else begin
I(prefout,vss) <+ V(prefout,vss)*1e-12;
end
end
endmodule
==================================================
===================================================
// VerilogA for test_bias2, veriloga
`include "constants.vams"
`include "disciplines.vams"
`define L(pin) (V(pin,vss)>V(vdd,vss)/2)
module test_bias2(en_bias2,iout2,iout_in,en_pdet_out_bias2,en_pref_out_bias2,vdd,vss,pdetout2,prefout2,in_sig,out_sig);
input en_bias2;
electrical en_bias2;
inout iout_in;
electrical iout_in;
inout iout2;
electrical iout2;
inout en_pdet_out_bias2;
electrical en_pdet_out_bias2;
inout en_pref_out_bias2;
electrical en_pref_out_bias2;
inout vdd;
electrical vdd;
inout vss;
electrical vss;
inout pdetout2;
electrical pdetout2;
inout prefout2;
electrical prefout2;
input in_sig;
electrical in_sig;
inout out_sig;
electrical out_sig;
analog begin
if(`L(en_bias2)==1) begin
I(iout2) <+ I(iout_in);
V(out_sig) <+ V(in_sig);
end
else begin
I(iout2) <+ 0;
V(out_sig) <+ 0;
end
if(`L(en_pdet_out_bias2)==1) begin
V(pdetout2) <+ 0.5;
end
else begin
I(pdetout2,vss) <+ V(pdetout2,vss)*1e-12;
end
if(`L(en_pref_out_bias2)==1) begin
V(prefout2) <+ 0.5;
end
else begin
I(prefout2,vss) <+ V(prefout2,vss)*1e-12;
end
end
endmodule
===================================================