I can't figure out the correct mechanism to access "global" nodes in a Spectre netlist from Verilog-AMS. The following is what I have. It does not work.
top.vams
Code:`include "constants.vams"
`include "disciplines.vams"
module top ( );
electrical (* integer inh_conn_prop_name="vdd"; integer
inh_conn_def_value="cds_globals.vdd"; *) vdd;
electrical (* integer inh_conn_prop_name="vss"; integer
inh_conn_def_value="cds_globals.vss"; *) vss;
ground vss;
electrical out;
sub sub1 (.out (out));
analog V(vdd) <+ 2.5;
endmodule
cds_globals.vams
Code:`include "constants.vams"
`include "disciplines.vams"
module cds_globals;
electrical vdd, vss;
endmodule
subcircuit.scs
Code://
simulator lang=spectre
global vdd vss
subckt sub (out)
r1 (vdd out) resistor r=1k
r2 (out vss) resistor r=1k
ends sub
top.scs
Code:tran tran stop=100u save=all
run.tcl
Code:database -open output -into out -default
probe -create top -depth all -database output -waveform
probe -create -emptyok -database output -all cds_globals
run 1us
exit
Makefile
Code:all:
rm -rf INCA_libs out
ncvlog -ams top.vams
ncvlog -ams cds_globals.vams
ncelab top -modelpath subcircuit.scs -messages -access +rwc
ncsim -ams top -analogcontrol top.scs -messages -input run.tcl
When I type "make", I get:
inh_conn_def_value="cds_globals.vdd"; *) vdd;
|
ncelab: *E,CUVHNF (./top.vams,5|39): Hierarchical name component lookup failed at 'cds_globals'.
inh_conn_def_value="cds_globals.vss"; *) vss;
|
ncelab: *E,CUVHNF (./top.vams,7|39): Hierarchical name component lookup failed at 'cds_globals'.
In trying to make this work, I also tried commenting this out, I also found that my probe statement in run.tcl doesn't work.
ncsim> probe -create -emptyok -database output -all cds_globals
ncsim: *E,PNOOBJ: Path element could not be found: cds_globals.
Can anyone tell me what I'm doing wrong?