[ibis-macro] Replacing BIRD 122 with "Reserved_Model" keyword in [External Model]

  • From: "Walter Katz" <wkatz@xxxxxxxxxx>
  • To: "IBIS-ATM" <ibis-macro@xxxxxxxxxxxxx>
  • Date: Tue, 17 Jan 2012 16:15:45 -0500 (EST)

All,

 

I would like to extend BIRD 116 to allow the following for AMI [Model]s

 

[External Model]

Language ISS

Reserved_Model
AMI_Tstonefile_Tx|AMI_Tstonefile_Rx|AMI_Thevenin_Tx|AMI_Thevenin_Rx

[End External Model]

 

AMI modeling assumes that a channel can be represented by an Impulse
Response. This implies that AMI modeling assumes a small signal interface
to the analog channel. This also implies that the differential impedance
of a Tx or Rx is constant over the operating range of the device. Note
that any legacy IBIS model (IV, Vt curves, Series Pin), that when used in
the real operating range of a SerDes channel (where AMI modeling is
applicable) can be accurately represented by the following Thevenin Tx and
Rx models. 

 

 

Reserved_Model AMI_Tstonefile_Tx

[External Model] 

Language ISS 

Reserved_Model AMI_Tstonefile_Tx

[End External Model]

 

Is equivalent to:

 

[External Model] 

Language ISS 

Corner Typ AMI_Tstonefile_Tx.cir AMI_Tstonefile_Tx

Parameters Tstonefile = AMIfile(Tstonefile) | Tstonefile must be an AMI
Model_Specific parameter

Converter_Parameters Vhi = AMIfile(Voh) | Voh must be an AMI
Model_Specific parameter

Converter_Parameters Vlo = AMIfile(Vol) | Vol is 0 if it is not an AMI
Model_Specific parameter 

Converter_Parameters Trf = 1.0ps 

Ports my_driveP my_driveN A_signal_pos A_signal_neg

D_to_A D_drive my_driveP 0 Vlo Vhi Trf Trf Typ Non-Inverting 

D_to_A D_drive my_driveN 0 Vlo Vhi Trf Trf Typ Inverting 

[End External Model]

 

AMI_Tstonefile_Tx.cir.

 

.SUBCKT AMI_Tstonefile_Tx my_driveP my_driveN A_signal_pos A_signal_neg 

+ Tstonefile="NA.s4p" 

Sdriver my_driveP my_driveN A_signal_pos A_signal_neg 0 MNAME=Smodel_name

.MODEL Smodel_name S N=4 TSTONEFILE=Tstonefile

.ends

 

 

Reserved_Model AMI_Tstonefile_Rx

 

 

[External Model] 

Language ISS 

Reserved_Model AMI_Tstonefile_Rx

[End External Model]

 

Is equivalent to:

 

[External Model] 

Language ISS 

Corner Typ AMI_Tstonefile_Rx.cir AMI_Tstonefile_Rx

Parameters Tstonefile = AMIfile(Tstonefile) 

Ports A_signal_pos A_signal_neg A_int_pos A_int_neg

A_to_D D_receive A_int_pos A_int_neg -.02 .02 Typ

[End External Model]

 

AMI_Tstonefile_Rx.cir.

 

.SUBCKT AMI_Tstonefile_Rx A_signal_pos A_signal_neg A_int_pos A_int_neg 

+ Tstonefile="NA.s4p" 

Sdriver A_signal_pos A_signal_neg A_int_pos A_int_neg 0 MNAME=Smodel_name 

.MODEL Smodel_name S N=4 TSTONEFILE=Tstonefile

.ends

 

 

Reserved_Model AMI_Thevenin_Tx

 

[External Model] 

Language ISS 

Reserved_Model AMI_Thevenin_Tx

[End External Model]

 

Is equivalent to:

 

[External Model] 

Language ISS 

Corner Typ AMI_Thevenin_Tx.cir AMI Thevenin_Tx

Parameters Rt = AMIfile(Rt) 

Parameters Rs = AMIfile(Rs) 

Parameters Cc = AMIfile(Cc) 

Parameters Vt = AMIfile(Vt) 

Parameters Cac = AMIfile(Cac) 

Parameters Rac = AMIfile(Rac) 

Parameters Rd = AMIfile(Rd) 

Parameters Cd = AMIfile(Cd)

Parameters Trf = AMIfile(Trf)

| Only  AMI Model_Specific parameters Rt Rs Cc Vt Cac Rac Rd Cd defined in
the 

| .ami file shall be passed as parameters to the subckt AMI Thevenin_Tx
instance

Converter_Parameters Vhi = AMIfile(Voh) | Voh must be an AMI
Model_Specific parameter

Converter_Parameters Vlo = AMIfile(Vol) | Vol is 0 if it is not an AMI
Model_Specific parameter 

Converter_Parameters Trf = AMIfile(Trf) | Trf is 1p if it is not an AMI
Model_Specific parameter 

Ports my_driveP my_driveN A_signal_pos A_signal_neg

D_to_A D_drive my_driveP 0 Vlo Vhi Trf Trf Typ Non-Inverting 

D_to_A D_drive my_driveN 0 Vlo Vhi Trf Trf Typ Inverting 

[End External Model]

 

AMI_Thevenin_Tx.cir

 

.SUBCKT AMI_Thevenin_Tx my_driveP my_driveN A_signal_pos A_signal_neg 

+ Rt=1Meg Rs=1Meg Cc=0. Vt=0. Cac=0. Rac=1Meg Rd=1Meg Cd=0.

E_H E_my_driveP 0 VCVS my_driveP 0 1.

E_L E_my_driveN 0 VCVS my_driveN 0 1.

R_Rs_H E_my_driveP A_signal_pos R='Rs'

R_Rs_L E_my_driveN A_signal_neg R='Rs'

R_Rd A_signal_pos A_signal_neg R='Rd'

C_Rd A_signal_pos A_signal_neg C='Cd'

R_Rt_H A_signal_pos Vt R='Rt'

R_Rt_H A_signal_neg Vt R='Rt'

V_Vt Vt 0 DC='Vt'

C_Cc_H A_signal_pos 0 C='Cc'

C_CC_L A_signal_neg 0 C='Cc'

R_ac A_signal_pos Nac R='Rac'

C_ac A_signal_neg Nac C='Cac'

.ends 

 

 

 

Reserved_Model AMI_Thevenin_Rx

 

 

[External Model] 

Language ISS 

Reserved_Model AMI_Thevenin_Rx

[End External Model]

 

Is equivalent to:

 

 

[External Model] 

Language ISS 

Corner Typ AMI_Thevenin_Rx.cir AMI_Thevenin_Rx

Parameters Rt = AMIfile(Rt) 

Parameters Cc = AMIfile(Cc) 

Parameters Vt = AMIfile(Vt) 

Parameters Cac = AMIfile(Cac) 

Parameters Rac = AMIfile(Rac) 

Parameters Rd = AMIfile(Rd) 

Parameters Cd = AMIfile(Cd)

|Only  AMI Model_Specific parameters Rt Cc Vt Cac Rac Rd Cd defined in the

|.ami file shall be passed as parameters to the subckt AMI Thevenin_Tx
instance

Ports A_signal_pos A_signal_neg A_int_pos A_int_neg

A_to_D D_receive A_int_pos A_int_neg -.02 .02 Typ

[End External Model]

[External Model] 

 

 

AMI_Thevenin_Rx.cir.

 

.subckt AMI_Thevenin_Rx A_signal_pos A_signal_neg A_int_pos A_int_neg 

+ Rt=1Meg Cc=0. Vt=0. Cac=0. Rac=1Meg Rd=1Meg Cd=0.

E_H A_int_pos 0 VCVS A_signal_pos 0 1.

E_L A_int_neg 0 VCVS A_signal_neg 0 1.

R_Rd A_signal_pos A_signal_neg R='Rd'

C_Rd A_signal_pos A_signal_neg C='Cd'

R_Rt_H A_signal_pos Vt R='Rt'

R_Rt_H A_signal_neg Vt R='Rt'

V_Vt Vt 0 DC='Vt'

C_Cc_H A_signal_pos 0 C='Cc'

C_CC_L A_signal_neg 0 C='Cc'

R_ac A_signal_pos Nac R='Rac'

C_ac A_signal_neg Nac C='Cac'

.ends 

 

Walter Katz

 <mailto:wkatz@xxxxxxxxxx> wkatz@xxxxxxxxxx

Phone 303.449-2308

Mobile 720.333-1107

 

Other related posts: