niklas.zhu
New Member
Offline
Posts: 2
|
I am using irun (09.20-s016 version) for ams simulation. in the amsd definition, want to stub one subblock, but ncelab complain about couldn't find the subckt.
Here is the netlist structure.
1 ata_top.scs: (analog top def, will be included in the top vams model)
subckt ata_top refclk out11 in12 out13 agnd avdd
subckt buf_ata in out agnd avdd I1 (net3 out agnd avdd) ad_inv_hv1 I7 (net3 net2 avdd agnd avdd agnd) HV45_O25_IVX4 I8 (net1 in avdd agnd avdd agnd) HV45_O25_IVX4 I12 (net1 net2 agnd avdd) ad_inv_hv1 L=300n WN=1.0u NFN=1 WP=2.0u \ NFP=1 ends buf_ata
subckt HV45_O25_IVX4 Z A vdd2v5 gnd vdd2v5s gnds M0 (Z A gnd gnds) nch_25_mac l=2.7e-07 w=7e-07 multi=1 \ nf=1 sd=220.0n ad=0.1225p as=0.1365p pd=1.75u ps=1.79u nrd=0.25 \ nrs=0.278571 sa=1.95e-07 sb=1.75e-07 sca=8.00617 scb=0.00670683 \ scc=0.000255114 mismatchflag=1 globalflag=1 totalflag=0 M1 (Z A vdd2v5 vdd2v5s) pch_25_mac l=2.7e-07 w=9.8e-07 \ multi=1 nf=1 sd=220.0n ad=0.1764p as=0.1862p pd=2.32u ps=2.34u \ nrd=0.183673 nrs=0.193878 sa=1.9e-07 sb=1.8e-07 sca=4.10603 \ scb=0.00361727 scc=0.000169127 mismatchflag=1 globalflag=1 \ totalflag=0 ends HV45_O25_IVX4
I11 (refclk out11 agnd avdd) buf_ata I7 (out22 in12 avdd agnd avdd agnd) HV45_O25_IVX4 I34 (out13 out22 avdd agnd avdd agnd) HV45_O25_IVX4
ends ata_top
2 stimuli.vams: (package will module TB1)
// `include "constants.vams" `include "disciplines.vams"
`timescale 1ns/1ps
module TB1 (refclk_vcd, in_vec, avdd, agnd);
input refclk_vcd; input in_vec;
input avdd; input agnd;
reg refclk1; reg refclk2;
electrical avdd; electrical agnd;
parameter real Vavdd = 2.5 from [0:inf); // Analog supply
initial begin refclk1=0; #10 refclk1=1; end
always #10 refclk1=~refclk1;
initial begin refclk2=0; #10 refclk2=1; end
always #10 refclk2=~refclk2;
analog begin V(avdd) <+ transition(Vavdd,0,10n,10n); // 2.5V analog supply V(agnd) <+ 0; // analog ground end // analog
// The line below works fine ata_top I55 (.refclk(refclk1), .out11(out11), .in12(refclk2), .out13(out13), .agnd(agnd), .avdd(avdd) );
endmodule
3 now, if i define the amsd as:
amsd{ ie vsup=2.5 portmap subckt=ata_top autobus=yes config cell=ata_top use=spice }
the irun works, give me correct results but if i want to stub the subckt of buf_ata, which define the amsd as:
amsd{ ie vsup=2.5 portmap subckt=ata_top autobus=yes config cell=ata_top use=spice
portmap stub=ata_top match=spice config cell=buf_ata use=stub }
ncelab complain that couldn't match the cell "buf_ata", i also tried to put hierichey in, like ata_top.buf_ata, or change to instant name, didn't work
Is anyone help on how to define stub in amsd? Really appreciate!!!
|