Skip to content

Commit b54f056

Browse files
maxcapodi78PipKat
andauthored
Create circuit schematics (#4458)
Co-authored-by: maxcapodi78 <Shark78> Co-authored-by: Kathy Pippert <[email protected]>
1 parent 6125897 commit b54f056

File tree

11 files changed

+5972
-223
lines changed

11 files changed

+5972
-223
lines changed

_unittest/example_models/T21/SSN_custom.s6p

+5,084
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
|******************************************************************************
2+
| Spec. AMI model generated by SPISim's BPro, Generated on 20170831143940
3+
|
4+
| IP of this model belongs to SPISim or its licensed BPro user.
5+
|*****************************************************************************
6+
(ANSYS_PCIeG5_32GT_RX
7+
(Description "Example PCIeG5 Rx 32GT model")
8+
(Reserved_Parameters
9+
(AMI_Version (Usage Info) (Type String) (Value "6.1") (Description "Supported AMI version"))
10+
(Ignore_Bits (Usage Info) (Type Integer) (Default 500) (Description "Ignore four bits to fill up tapped delay line."))
11+
(Max_Init_Aggressors (Usage Info) (Type Integer) (Default 25) (Description "Number of aggressors is actually unlimited."))
12+
(Init_Returns_Impulse (Usage Info) (Type Boolean) (Default True) (Description "Both impulse and parameters_out returned."))
13+
(Supporting_Files (Usage Info) (Type String) (Table ("PCIeG5_32GT.ens")) (Description "CTLE Performance table"))
14+
(GetWave_Exists (Usage Info) (Type Boolean) (Default True) (Description "GetWave is well and truly provided in the module."))
15+
) | End Reserved_Parameters
16+
17+
|****************************************************************************
18+
| Remove or tamper LICENSE_INFO values will cause simulation being aborted!
19+
|****************************************************************************
20+
(Model_Specific
21+
(LICENSE_INFO (Usage In) (Type String) (Default "LICENSED_ANSYS_AEDT_E168EFCC0268A84087F7B23B510CB41F") (Description "Licensing info."))
22+
| ------------------ MAIN Settings ------------------
23+
(MDL_SUB_MODS (Usage In) (Type String) (Default "CTLE,DFE") (Description "Cascaded stages"))
24+
| ------------------ CTLE Settings ------------------
25+
(MDL_IDX_FILE (Usage In) (Type String) (Default "PCIeG5_32GT.ens") (Description "Params index table"))
26+
(MDL_IDX_VALU (Usage In) (Type String) (Default "-1") (Description "Params table rowID"))
27+
(ADC (Usage In) (Type Integer) (Range -5 -15 -5) (Default -5) (Description "DC Gain in dB"))
28+
|(CTLE_OUPT_FILE (Usage In) (Type String) (Default "C:/Temp/WorkSpace/SPISim/CST/PCIe/32GT/PCIeG5_32GT.csv") (Description "Output generated FD array for checking purpose"))
29+
) | End Model_Specific
30+
) | End SPISim_SPEC_AMI
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
|***************************************************************************
2+
|
3+
[IBIS Ver] 5.1
4+
[File name] pcieg5_32gt.ibs
5+
[File rev] 1.00
6+
[Date] Jan 1, 2017
7+
[Source] BPro (http://www.spisim.com)
8+
[Copyright] Copyright 2017 ~, SPISim LLC. All right reserved.
9+
|
10+
|***************************************************************************
11+
|
12+
[Component] Spec_Model
13+
[Manufacturer] SPISim LLC
14+
[Package]
15+
| typ min max
16+
R_pkg 0.0 0.0 0.0
17+
L_pkg 0.0 0.0 0.0
18+
C_pkg 0.0 0.0 0.0
19+
|
20+
|***************************************************************************
21+
|
22+
[PIN] signal_name model_name R_pin L_pin C_pin
23+
1p TxP Tx NA NA NA
24+
1n TxN Tx NA NA NA
25+
2p RxP Rx NA NA NA
26+
2n RxN Rx NA NA NA
27+
|
28+
|***************************************************************************
29+
|
30+
[Diff Pin] inv_pin vdiff tdelay_typ tdelay_min tdelay_max
31+
1p 1n 0.1V NA NA NA
32+
2p 2n 0.1V NA NA NA
33+
|
34+
|****************************************************************
35+
|
36+
[Model] Rx
37+
Model_type Input
38+
|
39+
C_comp 0.00p 0.00p 0.00p
40+
Vinh = 0.55
41+
Vinl = 0.45
42+
|
43+
[Temperature_Range] 25 100 0
44+
[Voltage Range] 1.2 1.14 1.26
45+
|
46+
| The IV table below is equivalent to 50 ohms single-ended load
47+
[GND Clamp]
48+
-6.6 -0.132 -0.132 -0.132
49+
0.0 0.0 0.0 0.0
50+
6.6 0.132 0.132 0.132
51+
52+
[Power Clamp]
53+
-6.6 0.132e-9 0.132e-9 0.132e-9
54+
0.0 0.0 0.0 0.0
55+
6.6 -0.132e-9 -0.132e-9 -0.132e-9
56+
57+
[Algorithmic Model]
58+
Executable Windows_VisualStudio_32 pcieg5_32gt_WIN32.dll pcieg5_32gt.ami
59+
Executable Windows_VisualStudio_64 pcieg5_32gt_WIN64.dll pcieg5_32gt.ami
60+
Executable Linux_gcc_64 pcieg5_32gt_LX64.so pcieg5_32gt.ami
61+
[End Algorithmic Model]
62+
63+
|
64+
|***************************************************************************
65+
|
66+
[Model] Tx
67+
Model_type Output
68+
Polarity Non-Inverting
69+
Enable Active-High
70+
|
71+
Vmeas = 0.55
72+
| typ min max
73+
C_comp 0 0 0
74+
[Voltage Range] 1.1 1.0 1.2
75+
[Temperature Range] 60 100 0
76+
|
77+
|***************************************************************************
78+
|
79+
[Pulldown]
80+
-2.500 -5.00000E-02 -5.00000E-02 -5.00000E-02
81+
0.000 +0.00000E+00 +0.00000E+00 +0.00000E+00
82+
2.500 +5.00000E-02 +5.00000E-02 +5.00000E-02
83+
[Pullup]
84+
-2.500 +5.00000E-02 +5.00000E-02 +5.00000E-02
85+
0.000 +0.00000E+00 +0.00000E+00 +0.00000E+00
86+
2.500 -5.00000E-02 -5.00000E-02 -5.00000E-02
87+
|
88+
[Ramp]
89+
dV/dt_r 0.2796/15p 0.2610/23.5p 0.2976/13p
90+
dV/dt_f 0.2796/15p 0.2610/23.5p 0.2976/13p
91+
|
92+
|
93+
[Algorithmic Model]
94+
Executable Windows_VisualStudio_32 pcieg5_32gt_WIN32.dll pcieg5_32gt.ami
95+
Executable Windows_VisualStudio_64 pcieg5_32gt_WIN64.dll pcieg5_32gt.ami
96+
Executable Linux_gcc_64 pcieg5_32gt_LX64.so pcieg5_32gt.ami
97+
[End Algorithmic Model]
98+
99+
|***************************************************************************
100+
[End]

_unittest/test_21_Circuit.py

+54
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
netlist1 = "netlist_small.cir"
2020
netlist2 = "Schematic1.qcv"
2121
touchstone = "SSN_ssn.s6p"
22+
touchstone_custom = "SSN_custom.s6p"
2223
touchstone2 = "Galileo_V3P3S0.ts"
2324
ami_project = "AMI_Example"
2425

@@ -834,3 +835,56 @@ def test_46_create_vpwl(self):
834835
# time and voltage different length
835836
myres = self.aedtapp.modeler.schematic.create_voltage_pwl(compname="V3", time_list=[0], voltage_list=[0, 1])
836837
assert myres is False
838+
839+
def test_47_automatic_lna(self):
840+
touchstone_file = os.path.join(local_path, "example_models", test_subfolder, touchstone_custom)
841+
842+
status, diff_pairs, comm_pairs = self.aedtapp.create_lna_schematic_from_snp(
843+
touchstone=touchstone_file,
844+
start_frequency=0,
845+
stop_frequency=70,
846+
auto_assign_diff_pairs=True,
847+
separation=".",
848+
pattern=["component", "pin", "net"],
849+
analyze=False,
850+
)
851+
assert status
852+
853+
def test_48_automatic_tdr(self):
854+
touchstone_file = os.path.join(local_path, "example_models", test_subfolder, touchstone_custom)
855+
856+
result, tdr_probe_name = self.aedtapp.create_tdr_schematic_from_snp(
857+
touchstone=touchstone_file,
858+
probe_pins=["A-MII-RXD1_30.SQFP28X28_208.P"],
859+
probe_ref_pins=["A-MII-RXD1_65.SQFP20X20_144.N"],
860+
termination_pins=["A-MII-RXD2_32.SQFP28X28_208.P", "A-MII-RXD2_66.SQFP20X20_144.N"],
861+
differential=True,
862+
design_name="TDR",
863+
rise_time=35,
864+
use_convolution=True,
865+
analyze=False,
866+
)
867+
assert result
868+
869+
def test_49_automatic_ami(self):
870+
touchstone_file = os.path.join(local_path, "example_models", test_subfolder, touchstone_custom)
871+
ami_file = os.path.join(local_path, "example_models", test_subfolder, "pcieg5_32gt.ibs")
872+
result, eye_curve_tx, eye_curve_rx = self.aedtapp.create_ami_schematic_from_snp(
873+
touchstone=touchstone_file,
874+
ibis_ami=ami_file,
875+
component_name="Spec_Model",
876+
tx_buffer_name="1p",
877+
rx_buffer_name="2p",
878+
use_ibis_buffer=False,
879+
differential=True,
880+
tx_pins=["A-MII-RXD1_30.SQFP28X28_208.P"],
881+
tx_refs=["A-MII-RXD1_65.SQFP20X20_144.N"],
882+
rx_pins=["A-MII-RXD2_32.SQFP28X28_208.P"],
883+
rx_refs=["A-MII-RXD2_66.SQFP20X20_144.N"],
884+
bit_pattern="random_bit_count=2.5e3 random_seed=1",
885+
unit_interval="31.25ps",
886+
use_convolution=True,
887+
analyze=False,
888+
design_name="AMI",
889+
)
890+
assert result

_unittest_solvers/test_00_analyze.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ def test_04h_3dl_get_all_return_loss_list(self):
359359
assert self.hfss3dl_solve.get_all_return_loss_list() == ["S(Port1,Port1)", "S(Port2,Port2)"]
360360

361361
def test_04i_3dl_get_all_insertion_loss_list(self):
362-
assert self.hfss3dl_solve.get_all_insertion_loss_list() == ["S(Port1,Port1)", "S(Port2,Port2)"]
362+
assert self.hfss3dl_solve.get_all_insertion_loss_list(tx_prefix="Port1", rx_prefix="Port2") == ['S(Port1,Port2)']
363363

364364
def test_04j_3dl_get_next_xtalk_list(self):
365365
assert self.hfss3dl_solve.get_next_xtalk_list() == ["S(Port1,Port2)"]

0 commit comments

Comments
 (0)