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