54 changed files with 2412 additions and 0 deletions
-
67examples/xspice/original-examples/analog_models1_ac.deck
-
61examples/xspice/original-examples/analog_models1_dc.deck
-
61examples/xspice/original-examples/analog_models1_swept_dc.deck
-
62examples/xspice/original-examples/analog_models1_transient.deck
-
66examples/xspice/original-examples/analog_models2_ac.deck
-
63examples/xspice/original-examples/analog_models2_dc.deck
-
64examples/xspice/original-examples/analog_models2_swept_dc.deck
-
67examples/xspice/original-examples/analog_models2_transient.deck
-
81examples/xspice/original-examples/analog_models3_ac.deck
-
79examples/xspice/original-examples/analog_models3_dc.deck
-
79examples/xspice/original-examples/analog_models3_swept_dc.deck
-
80examples/xspice/original-examples/analog_models3_transient.deck
-
78examples/xspice/original-examples/analog_models4_ac.deck
-
74examples/xspice/original-examples/analog_models4_dc.deck
-
72examples/xspice/original-examples/analog_models4_swept_dc.deck
-
81examples/xspice/original-examples/analog_models4_transient.deck
-
17examples/xspice/original-examples/arbitrary_phase.deck
-
17examples/xspice/original-examples/bad_io.deck
-
25examples/xspice/original-examples/bad_io_type.deck
-
16examples/xspice/original-examples/bad_name.deck
-
16examples/xspice/original-examples/bad_param.deck
-
16examples/xspice/original-examples/bad_param_type.deck
-
28examples/xspice/original-examples/diffpair.in
-
23examples/xspice/original-examples/digital_invert.deck
-
20examples/xspice/original-examples/digital_models.deck
-
77examples/xspice/original-examples/digital_models1.deck
-
91examples/xspice/original-examples/digital_models2.deck
-
92examples/xspice/original-examples/digital_models3.deck
-
91examples/xspice/original-examples/digital_models4.deck
-
19examples/xspice/original-examples/dot_model_ref.deck
-
46examples/xspice/original-examples/hybrid_models1_dc.deck
-
48examples/xspice/original-examples/hybrid_models1_transient.deck
-
19examples/xspice/original-examples/initial_conditions.deck
-
17examples/xspice/original-examples/io_ordering.deck
-
34examples/xspice/original-examples/io_types.deck
-
19examples/xspice/original-examples/long_names.deck
-
15examples/xspice/original-examples/mixed_case.deck
-
33examples/xspice/original-examples/mixed_io_size.deck
-
98examples/xspice/original-examples/mixed_mode.deck
-
41examples/xspice/original-examples/mixed_ref.deck
-
42examples/xspice/original-examples/mosamp2.in
-
27examples/xspice/original-examples/mosmem.in
-
16examples/xspice/original-examples/param_defaults.deck
-
23examples/xspice/original-examples/param_types.deck
-
16examples/xspice/original-examples/parsing.deck
-
26examples/xspice/original-examples/polarity.deck
-
33examples/xspice/original-examples/rca3040.in
-
20examples/xspice/original-examples/rtlinv.in
-
24examples/xspice/original-examples/schmitt.in
-
25examples/xspice/original-examples/spice3.deck
-
25examples/xspice/original-examples/suffixes.deck
-
30examples/xspice/original-examples/supply_ramping.deck
-
30examples/xspice/original-examples/user_defined_nodes.deck
-
22examples/xspice/original-examples/xspice.deck
@ -0,0 +1,67 @@ |
|||||
|
Code Model Test - AC: gain, summer, mult, divide, pwl |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.ac dec 10 10 1000 |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
v1 1 0 1.0 AC 1.0 0.0 |
||||
|
* |
||||
|
v2 2 0 1.0 AC 1.0 0.0 |
||||
|
* |
||||
|
v3 3 0 DC 2.0 |
||||
|
* |
||||
|
v4 4 0 0.5 AC 0.5 0.0 |
||||
|
* |
||||
|
*** gain block *** |
||||
|
a1 1 10 gain1 |
||||
|
.model gain1 gain (in_offset=0.0 gain=2.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** summer block *** |
||||
|
a2 [1 2] 20 summer1 |
||||
|
.model summer1 summer (in_offset=[0.0 0.0] in_gain=[1.0 1.0] |
||||
|
+ out_gain=1.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** mult block *** |
||||
|
a3 [1 3] 30 mult1 |
||||
|
.model mult1 mult (in_offset=[0.0 0.0] in_gain=[1.0 1.0] |
||||
|
+ out_gain=1.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** divider block *** |
||||
|
a4 1 3 40 divide1 |
||||
|
.model divide1 divide (num_offset=0.0 num_gain=1.0 den_offset=0.0 den_gain=1.0 |
||||
|
+ den_lower_limit=1.0e-10 den_domain=1.0e-16 |
||||
|
+ fraction=false out_gain=1.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** pwl block *** |
||||
|
a5 4 50 pwl1 |
||||
|
.model pwl1 pwl (x_array=[-1.0 0.0 1.0 2.0 3.0 4.0 5.0] |
||||
|
+ y_array=[-1.0 0.0 1.0 4.0 4.5 5.0 5.0] |
||||
|
+ input_domain=0.01 fraction=TRUE) |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 1k |
||||
|
r2 2 0 1k |
||||
|
r3 3 0 1k |
||||
|
r4 4 0 1k |
||||
|
* |
||||
|
r10 10 0 1k |
||||
|
r20 20 0 1k |
||||
|
r30 30 0 1k |
||||
|
r40 40 0 1k |
||||
|
r50 50 0 1k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,61 @@ |
|||||
|
Code Model Test - DC: gain, summer, mult, divide, pwl |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.op |
||||
|
* |
||||
|
*** input sources *** |
||||
|
v1 1 0 DC 2 |
||||
|
* |
||||
|
v2 2 0 DC 2 |
||||
|
* |
||||
|
*** gain block *** |
||||
|
a1 1 10 gain1 |
||||
|
.model gain1 gain (in_offset=0.0 gain=2.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** summer block *** |
||||
|
a2 [1 2] 20 summer1 |
||||
|
.model summer1 summer (in_offset=[0.0 0.0] in_gain=[1.0 1.0] |
||||
|
+ out_gain=1.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** mult block *** |
||||
|
a3 [1 1] 30 mult1 |
||||
|
.model mult1 mult (in_offset=[0.0 0.0] in_gain=[1.0 1.0] |
||||
|
+ out_gain=0.1 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** divider block *** |
||||
|
a4 2 1 40 divide1 |
||||
|
.model divide1 divide (num_offset=0.0 num_gain=1.0 den_offset=0.0 den_gain=1.0 |
||||
|
+ den_lower_limit=1.0e-10 den_domain=1.0e-16 |
||||
|
+ fraction=false out_gain=1.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** pwl block *** |
||||
|
a5 1 50 pwl1 |
||||
|
.model pwl1 pwl (x_array=[-1.0 0.0 1.0 2.0 3.0 4.0 5.0] |
||||
|
+ y_array=[ 0.0 0.0 1.0 4.0 4.5 5.0 5.0] |
||||
|
+ input_domain=0.01 fraction=TRUE) |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 1k |
||||
|
r2 2 0 1k |
||||
|
r3 3 0 1k |
||||
|
* |
||||
|
r10 10 0 1k |
||||
|
r20 20 0 1k |
||||
|
r30 30 0 1k |
||||
|
r40 40 0 1k |
||||
|
r50 50 0 1k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,61 @@ |
|||||
|
Code Model Test - Swept DC: gain, summer, mult, divide, pwl |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.dc v1 .1 10 .1 |
||||
|
* |
||||
|
*** input sources *** |
||||
|
v1 1 0 DC 2 |
||||
|
* |
||||
|
v2 2 0 DC 2 |
||||
|
* |
||||
|
*** gain block *** |
||||
|
a1 1 10 gain1 |
||||
|
.model gain1 gain (in_offset=0.0 gain=2.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** summer block *** |
||||
|
a2 [1 2] 20 summer1 |
||||
|
.model summer1 summer (in_offset=[0.0 0.0] in_gain=[1.0 1.0] |
||||
|
+ out_gain=1.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** mult block *** |
||||
|
a3 [1 1] 30 mult1 |
||||
|
.model mult1 mult (in_offset=[0.0 0.0] in_gain=[1.0 1.0] |
||||
|
+ out_gain=0.1 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** divider block *** |
||||
|
a4 2 1 40 divide1 |
||||
|
.model divide1 divide (num_offset=0.0 num_gain=1.0 den_offset=0.0 den_gain=1.0 |
||||
|
+ den_lower_limit=1.0e-10 den_domain=1.0e-16 |
||||
|
+ fraction=false out_gain=1.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** pwl block *** |
||||
|
a5 1 50 pwl1 |
||||
|
.model pwl1 pwl (x_array=[-1.0 0.0 1.0 2.0 3.0 4.0 5.0] |
||||
|
+ y_array=[ 0.0 0.0 1.0 4.0 4.5 5.0 5.0] |
||||
|
+ input_domain=0.01 fraction=TRUE) |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 1k |
||||
|
r2 2 0 1k |
||||
|
r3 3 0 1k |
||||
|
* |
||||
|
r10 10 0 1k |
||||
|
r20 20 0 1k |
||||
|
r30 30 0 1k |
||||
|
r40 40 0 1k |
||||
|
r50 50 0 1k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,62 @@ |
|||||
|
Code Model Test - Transient: gain, summer, mult, divide, pwl |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.tran .1s 10s |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
v1 1 0 DC PWL(0 0 10 10) |
||||
|
* |
||||
|
v2 2 0 DC 2 |
||||
|
* |
||||
|
*** gain block *** |
||||
|
a1 1 10 gain1 |
||||
|
.model gain1 gain (in_offset=0.0 gain=2.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** summer block *** |
||||
|
a2 [1 2] 20 summer1 |
||||
|
.model summer1 summer (in_offset=[0.0 0.0] in_gain=[1.0 1.0] |
||||
|
+ out_gain=1.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** mult block *** |
||||
|
a3 [1 1] 30 mult1 |
||||
|
.model mult1 mult (in_offset=[0.0 0.0] in_gain=[1.0 1.0] |
||||
|
+ out_gain=0.1 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** divider block *** |
||||
|
a4 2 1 40 divide1 |
||||
|
.model divide1 divide (num_offset=0.0 num_gain=1.0 den_offset=0.0 den_gain=1.0 |
||||
|
+ den_lower_limit=0.1 den_domain=1.0e-16 |
||||
|
+ fraction=false out_gain=1.0 out_offset=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** pwl block *** |
||||
|
a5 1 50 pwl1 |
||||
|
.model pwl1 pwl (x_array=[-1.0 0.0 1.0 2.0 3.0 4.0 5.0] |
||||
|
+ y_array=[ 0.0 0.0 1.0 4.0 4.5 5.0 5.0] |
||||
|
+ input_domain=0.01 fraction=TRUE) |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 1k |
||||
|
r2 2 0 1k |
||||
|
r3 3 0 1k |
||||
|
* |
||||
|
r10 10 0 1k |
||||
|
r20 20 0 1k |
||||
|
r30 30 0 1k |
||||
|
r40 40 0 1k |
||||
|
r50 50 0 1k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,66 @@ |
|||||
|
Code Model Test - Swept DC: int, d_dt, s_xfer, core, lcouple |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.ac dec 10 10 1000 |
||||
|
* |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
v1 1 0 1.0 AC 1.0 0.0 |
||||
|
* |
||||
|
* |
||||
|
*** integrator block *** |
||||
|
a1 1 10 int1 |
||||
|
.model int1 int (in_offset=0.0 gain=2.0 out_lower_limit=-1.0e6 |
||||
|
+ out_upper_limit=1.0e6 limit_range=1.0e-6 out_ic=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** differentiator block *** |
||||
|
a2 1 20 d_dt1 |
||||
|
.model d_dt1 d_dt (out_offset=0.0 gain=1.0 out_lower_limit=-1.0e6 |
||||
|
+ out_upper_limit=1.0e6 limit_range=1.0e-6) |
||||
|
* |
||||
|
* |
||||
|
*** s_xfer block *** |
||||
|
a3 1 30 filter1 |
||||
|
.model filter1 s_xfer (in_offset=0.0 gain=1.0 num_coeff=[1.0] |
||||
|
+ den_coeff=[1.0 1.414214 1.0] int_ic=[0.0 0.0] |
||||
|
+ denormalized_freq=628.0) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** magnetic core & inductive coupling *** |
||||
|
v40 45 46 0.0 |
||||
|
a4 40 45 core1 |
||||
|
.model core1 core (H_array=[-2.0 -1.0 1.0 2.0] |
||||
|
+ B_array=[-2.0 -1.0 1.0 2.0] |
||||
|
+ area=1.0 length=1.0 input_domain=1.0e-6 |
||||
|
+ fraction=TRUE mode=1 |
||||
|
+ in_low=-1.0 in_high=1.0 hyst=0.5 |
||||
|
+ out_lower_limit=-1.0 out_upper_limit=1.0) |
||||
|
* |
||||
|
* |
||||
|
r5 1 50 100.0 |
||||
|
a5 (50 0) (40 46) inductor1 |
||||
|
.model inductor1 lcouple (num_turns=10) |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
r10 10 0 1e12 |
||||
|
r20 20 0 1e12 |
||||
|
r30 30 0 1e12 |
||||
|
r40 40 0 1e12 |
||||
|
r45 45 0 1e12 |
||||
|
r50 50 0 1e12 |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,63 @@ |
|||||
|
Code Model Test - DC: int, d_dt, s_xfer, core, lcouple |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.op |
||||
|
* |
||||
|
*** input sources *** |
||||
|
v1 1 0 DC 1.0 |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** integrator block *** |
||||
|
a1 1 10 int1 |
||||
|
.model int1 int (in_offset=0.0 gain=2.0 out_lower_limit=-1.0e6 |
||||
|
+ out_upper_limit=1.0e6 limit_range=1.0e-6 out_ic=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** differentiator block *** |
||||
|
a2 1 20 d_dt1 |
||||
|
.model d_dt1 d_dt (out_offset=0.0 gain=1.0 out_lower_limit=-1.0e6 |
||||
|
+ out_upper_limit=1.0e6 limit_range=1.0e-6) |
||||
|
* |
||||
|
* |
||||
|
*** s_xfer block *** |
||||
|
a3 1 30 filter1 |
||||
|
.model filter1 s_xfer (in_offset=0.0 gain=1.0 num_coeff=[1.0] |
||||
|
+ den_coeff=[1.0 1.425625 1.516203] int_ic=[0.0 0.0] |
||||
|
+ denormalized_freq=6283.2) |
||||
|
* |
||||
|
* |
||||
|
*** magnetic core & inductive coupling *** |
||||
|
a4 40 45 core1 |
||||
|
.model core1 core (H_array=[-2.0 -1.0 1.0 2.0] |
||||
|
+ B_array=[-2.0 -1.0 1.0 2.0] |
||||
|
+ area=1.0 length=1.0 input_domain=1.0e-6 |
||||
|
+ fraction=TRUE mode=1 |
||||
|
+ in_low=-1.0 in_high=1.0 hyst=0.5 |
||||
|
+ out_lower_limit=-1.0 out_upper_limit=1.0) |
||||
|
* |
||||
|
* |
||||
|
r5 1 50 100.0 |
||||
|
a5 (50 0) (40 45) inductor1 |
||||
|
.model inductor1 lcouple (num_turns=10) |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
r10 10 0 1k |
||||
|
r20 20 0 1k |
||||
|
r30 30 0 1k |
||||
|
r40 40 0 1k |
||||
|
r50 50 0 1k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,64 @@ |
|||||
|
Code Model Test - Swept DC: int, d_dt, s_xfer, core, lcouple |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.dc v1 .1 10 .5 |
||||
|
* |
||||
|
*** input sources *** |
||||
|
v1 1 0 DC 2 |
||||
|
* |
||||
|
* |
||||
|
*** integrator block *** |
||||
|
a1 1 10 int1 |
||||
|
.model int1 int (in_offset=0.0 gain=2.0 out_lower_limit=-1.0e6 |
||||
|
+ out_upper_limit=1.0e6 limit_range=1.0e-6 out_ic=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** differentiator block *** |
||||
|
a2 1 20 d_dt1 |
||||
|
.model d_dt1 d_dt (out_offset=0.0 gain=1.0 out_lower_limit=-1.0e6 |
||||
|
+ out_upper_limit=1.0e6 limit_range=1.0e-6) |
||||
|
* |
||||
|
* |
||||
|
*** s_xfer block *** |
||||
|
a3 1 30 filter1 |
||||
|
.model filter1 s_xfer (in_offset=0.0 gain=1.0 num_coeff=[1.0] |
||||
|
+ den_coeff=[1.0 1.414214 1.0] int_ic=[0.0 0.0] |
||||
|
+ denormalized_freq=1.0) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** magnetic core & inductive coupling *** |
||||
|
v40 45 46 0.0 |
||||
|
a4 40 45 core1 |
||||
|
.model core1 core (H_array=[-2.0 -1.0 1.0 2.0] |
||||
|
+ B_array=[-2.0 -1.0 1.0 2.0] |
||||
|
+ area=1.0 length=1.0 input_domain=1.0e-6 |
||||
|
+ fraction=TRUE mode=1 |
||||
|
+ in_low=-1.0 in_high=1.0 hyst=0.5 |
||||
|
+ out_lower_limit=-1.0 out_upper_limit=1.0) |
||||
|
* |
||||
|
* |
||||
|
r5 1 50 100.0 |
||||
|
a5 (50 0) (40 46) inductor1 |
||||
|
.model inductor1 lcouple (num_turns=10) |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
r10 10 0 1e12 |
||||
|
r20 20 0 1e12 |
||||
|
r30 30 0 1e12 |
||||
|
r40 40 0 1e12 |
||||
|
r45 45 0 1e12 |
||||
|
r50 50 0 1e12 |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,67 @@ |
|||||
|
Code Model Test - Transient: int, d_dt, s_xfer, core, lcouple |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.tran .1s 10s |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
v1 1 0 DC PWL(0 0 10 10) |
||||
|
* |
||||
|
v2 2 0 DC PWL(0 0 0.1 0.1 0.2 0.9 0.3 1.0 10 1.0) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** integrator block *** |
||||
|
a1 1 10 int1 |
||||
|
.model int1 int (in_offset=0.0 gain=2.0 out_lower_limit=-1.0e6 |
||||
|
+ out_upper_limit=1.0e6 limit_range=1.0e-6 out_ic=0.0) |
||||
|
* |
||||
|
* |
||||
|
*** differentiator block *** |
||||
|
a2 1 20 d_dt1 |
||||
|
.model d_dt1 d_dt (out_offset=0.0 gain=1.0 out_lower_limit=-1.0e6 |
||||
|
+ out_upper_limit=1.0e6 limit_range=1.0e-6) |
||||
|
* |
||||
|
* |
||||
|
*** s_xfer block *** |
||||
|
a3 2 30 filter1 |
||||
|
.model filter1 s_xfer (in_offset=0.0 gain=1.0 num_coeff=[1.0] |
||||
|
+ den_coeff=[1.0 1.414214 1.0] int_ic=[0.0 0.0] |
||||
|
+ denormalized_freq=1.0) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** magnetic core & inductive coupling *** |
||||
|
a4 40 45 core1 |
||||
|
.model core1 core (H_array=[-2.0 -1.0 1.0 2.0] |
||||
|
+ B_array=[-2.0 -1.0 1.0 2.0] |
||||
|
+ area=1.0 length=1.0 input_domain=1.0e-6 |
||||
|
+ fraction=TRUE mode=1 |
||||
|
+ in_low=-1.0 in_high=1.0 hyst=0.5 |
||||
|
+ out_lower_limit=-1.0 out_upper_limit=1.0) |
||||
|
* |
||||
|
* |
||||
|
r5 1 50 100.0 |
||||
|
a5 (50 0) (40 45) inductor1 |
||||
|
.model inductor1 lcouple (num_turns=10) |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 1k |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
r10 10 0 1k |
||||
|
r20 20 0 1k |
||||
|
r30 30 0 1k |
||||
|
r40 40 0 1k |
||||
|
r50 50 0 1k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,81 @@ |
|||||
|
Code Model Test - AC: hyst, limit, ilimit, climit, cmeter, lmeter |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.ac dec 10 10 1000 |
||||
|
* |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
v1 1 0 1.0 AC 1.0 0.0 |
||||
|
* |
||||
|
v2 2 0 DC 10.0 |
||||
|
* |
||||
|
v3 3 0 DC -10.0 |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** hyst block *** |
||||
|
a1 1 10 hyst1 |
||||
|
.model hyst1 hyst (in_low=0.0 in_high=1.0 hyst=0.1 out_lower_limit=0.0 |
||||
|
+ out_upper_limit=1.0 input_domain=0.01 fraction=TRUE) |
||||
|
* |
||||
|
* |
||||
|
*** limit block *** |
||||
|
a2 1 20 limit1 |
||||
|
.model limit1 limit (in_offset=0.0 gain=1.0 out_lower_limit=-1.0e6 |
||||
|
+ out_upper_limit=1.0e6 limit_range=1.0e-6 fraction=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** ilimit block *** |
||||
|
a3 1 2 3 30 ilimit1 |
||||
|
.model ilimit1 ilimit (in_offset=0.0 gain=1.0 r_out_source=1.0 |
||||
|
+ r_out_sink=1.0 i_limit_source=1.0 |
||||
|
+ i_limit_sink=1.0 v_pwr_range=1.0e-3 |
||||
|
+ i_source_range=1.0e-6 i_sink_range=1.0e-6 |
||||
|
+ r_out_domain=1.0e-6) |
||||
|
* |
||||
|
* |
||||
|
*** climit block *** |
||||
|
a4 1 2 3 40 climit1 |
||||
|
.model climit1 climit (in_offset=0.0 gain=1.0 upper_delta=0.0 |
||||
|
+ lower_delta=0.0 limit_range=1.0e-6 |
||||
|
+ fraction=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** cmeter block *** |
||||
|
c5 51 0 1.0e-6 |
||||
|
a5 51 50 cmeter1 |
||||
|
.model cmeter1 cmeter (gain=1.0) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** lmeter block *** |
||||
|
l6 61 0 1.0e-6 |
||||
|
a6 61 60 lmeter1 |
||||
|
.model lmeter1 lmeter (gain=1.0) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 10k |
||||
|
r2 2 0 10k |
||||
|
r3 3 0 10k |
||||
|
* |
||||
|
r10 10 0 10k |
||||
|
r20 20 0 10k |
||||
|
r30 30 0 10k |
||||
|
r40 40 0 10k |
||||
|
r50 50 0 10k |
||||
|
r51 51 0 10k |
||||
|
r60 60 0 10k |
||||
|
r61 61 0 10k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,79 @@ |
|||||
|
Code Model Test - DC: hyst, limit, ilimit, climit, cmeter, lmeter |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.op |
||||
|
* |
||||
|
*** input sources *** |
||||
|
v1 1 0 DC 1.0 |
||||
|
* |
||||
|
v2 2 0 DC 10.0 |
||||
|
* |
||||
|
v3 3 0 DC -10.0 |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** hyst block *** |
||||
|
a1 1 10 hyst1 |
||||
|
.model hyst1 hyst (in_low=0.0 in_high=1.0 hyst=0.1 out_lower_limit=0.0 |
||||
|
+ out_upper_limit=1.0 input_domain=0.01 fraction=TRUE) |
||||
|
* |
||||
|
* |
||||
|
*** limit block *** |
||||
|
a2 1 20 limit1 |
||||
|
.model limit1 limit (in_offset=0.0 gain=1.0 out_lower_limit=-1.0e6 |
||||
|
+ out_upper_limit=1.0e6 limit_range=1.0e-6 fraction=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** ilimit block *** |
||||
|
a3 1 2 3 30 ilimit1 |
||||
|
.model ilimit1 ilimit (in_offset=0.0 gain=1.0 r_out_source=1.0 |
||||
|
+ r_out_sink=1.0 i_limit_source=1.0 |
||||
|
+ i_limit_sink=1.0 v_pwr_range=1.0e-3 |
||||
|
+ i_source_range=1.0e-3 i_sink_range=1.0e-3 |
||||
|
+ r_out_domain=1.0e-3) |
||||
|
* |
||||
|
* |
||||
|
*** climit block *** |
||||
|
a4 1 2 3 40 climit1 |
||||
|
.model climit1 climit (in_offset=0.0 gain=1.0 upper_delta=0.0 |
||||
|
+ lower_delta=0.0 limit_range=1.0e-6 |
||||
|
+ fraction=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** cmeter block *** |
||||
|
c5 51 0 1.0e-6 |
||||
|
a5 51 50 cmeter1 |
||||
|
.model cmeter1 cmeter (gain=1.0) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** lmeter block *** |
||||
|
l6 61 0 1.0e-6 |
||||
|
a6 61 60 lmeter1 |
||||
|
.model lmeter1 lmeter (gain=1.0) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 10k |
||||
|
r2 2 0 10k |
||||
|
r3 3 0 10k |
||||
|
* |
||||
|
r10 10 0 10k |
||||
|
r20 20 0 10k |
||||
|
r30 30 0 10k |
||||
|
r40 40 0 10k |
||||
|
r50 50 0 10k |
||||
|
r51 51 0 10k |
||||
|
r60 60 0 10k |
||||
|
r61 61 0 10k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,79 @@ |
|||||
|
Code Model Test - DC: hyst, limit, ilimit, climit, cmeter, lmeter |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.dc v1 .1 15 .5 |
||||
|
* |
||||
|
*** input sources *** |
||||
|
v1 1 0 DC 1.0 |
||||
|
* |
||||
|
v2 2 0 DC 10.0 |
||||
|
* |
||||
|
v3 3 0 DC -10.0 |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** hyst block *** |
||||
|
a1 1 10 hyst1 |
||||
|
.model hyst1 hyst (in_low=0.0 in_high=1.0 hyst=0.1 out_lower_limit=0.0 |
||||
|
+ out_upper_limit=1.0 input_domain=0.01 fraction=TRUE) |
||||
|
* |
||||
|
* |
||||
|
*** limit block *** |
||||
|
a2 1 20 limit1 |
||||
|
.model limit1 limit (in_offset=0.0 gain=1.0 out_lower_limit=-1.0e6 |
||||
|
+ out_upper_limit=1.0e6 limit_range=1.0e-6 fraction=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** ilimit block *** |
||||
|
a3 1 2 3 30 ilimit1 |
||||
|
.model ilimit1 ilimit (in_offset=0.0 gain=1.0 r_out_source=1.0 |
||||
|
+ r_out_sink=1.0 i_limit_source=1.0 |
||||
|
+ i_limit_sink=1.0 v_pwr_range=1.0e-3 |
||||
|
+ i_source_range=1.0e-6 i_sink_range=1.0e-6 |
||||
|
+ r_out_domain=1.0e-6) |
||||
|
* |
||||
|
* |
||||
|
*** climit block *** |
||||
|
a4 1 2 3 40 climit1 |
||||
|
.model climit1 climit (in_offset=0.0 gain=1.0 upper_delta=0.0 |
||||
|
+ lower_delta=0.0 limit_range=1.0e-6 |
||||
|
+ fraction=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** cmeter block *** |
||||
|
c5 51 0 1.0e-6 |
||||
|
a5 51 50 cmeter1 |
||||
|
.model cmeter1 cmeter (gain=1.0) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** lmeter block *** |
||||
|
l6 61 0 1.0e-6 |
||||
|
a6 61 60 lmeter1 |
||||
|
.model lmeter1 lmeter (gain=1.0) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 10k |
||||
|
r2 2 0 10k |
||||
|
r3 3 0 10k |
||||
|
* |
||||
|
r10 10 0 10k |
||||
|
r20 20 0 10k |
||||
|
r30 30 0 10k |
||||
|
r40 40 0 10k |
||||
|
r50 50 0 10k |
||||
|
r51 51 0 10k |
||||
|
r60 60 0 10k |
||||
|
r61 61 0 10k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,80 @@ |
|||||
|
Code Model Test - Transient: hyst, limit, ilimit, climit, cmeter, lmeter |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.tran .1s 15s |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
v1 1 0 DC PWL(0 0 15 15) |
||||
|
* |
||||
|
v2 2 0 DC 10.0 |
||||
|
* |
||||
|
v3 3 0 DC -10.0 |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** hyst block *** |
||||
|
a1 1 10 hyst1 |
||||
|
.model hyst1 hyst (in_low=0.0 in_high=1.0 hyst=0.1 out_lower_limit=0.0 |
||||
|
+ out_upper_limit=1.0 input_domain=0.01 fraction=TRUE) |
||||
|
* |
||||
|
* |
||||
|
*** limit block *** |
||||
|
a2 1 20 limit1 |
||||
|
.model limit1 limit (in_offset=0.0 gain=1.0 out_lower_limit=-1.0e6 |
||||
|
+ out_upper_limit=1.0e6 limit_range=1.0e-6 fraction=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** ilimit block *** |
||||
|
a3 1 2 3 30 ilimit1 |
||||
|
.model ilimit1 ilimit (in_offset=0.0 gain=1.0 r_out_source=1.0 |
||||
|
+ r_out_sink=1.0 i_limit_source=1.0 |
||||
|
+ i_limit_sink=1.0 v_pwr_range=1.0e-3 |
||||
|
+ i_source_range=1.0e-6 i_sink_range=1.0e-6 |
||||
|
+ r_out_domain=1.0e-6) |
||||
|
* |
||||
|
* |
||||
|
*** climit block *** |
||||
|
a4 1 2 3 40 climit1 |
||||
|
.model climit1 climit (in_offset=0.0 gain=1.0 upper_delta=0.0 |
||||
|
+ lower_delta=0.0 limit_range=1.0e-6 |
||||
|
+ fraction=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** cmeter block *** |
||||
|
c5 51 0 1.0e-6 |
||||
|
a5 51 50 cmeter1 |
||||
|
.model cmeter1 cmeter (gain=1.0) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** lmeter block *** |
||||
|
l6 61 0 1.0e-6 |
||||
|
a6 61 60 lmeter1 |
||||
|
.model lmeter1 lmeter (gain=1.0) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 10k |
||||
|
r2 2 0 10k |
||||
|
r3 3 0 10k |
||||
|
* |
||||
|
r10 10 0 10k |
||||
|
r20 20 0 10k |
||||
|
r30 30 0 10k |
||||
|
r40 40 0 10k |
||||
|
r50 50 0 10k |
||||
|
r51 51 0 10k |
||||
|
r60 60 0 10k |
||||
|
r61 61 0 10k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,78 @@ |
|||||
|
Code Model Test - DC: sine, triangle, aswitch, zener, oneshot |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.ac dec 10 10 1000 |
||||
|
* |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
v1 1 0 1.0 AC 1.0 0.0 |
||||
|
* |
||||
|
v2 2 0 DC 1.0 |
||||
|
* |
||||
|
v3 3 0 DC 1.0 |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** sine block *** |
||||
|
a1 1 10 sine1 |
||||
|
.model sine1 sine (cntl_array=[-1.0 0.0 1.0 2.0] |
||||
|
+ freq_array=[1.0 1.0 100.0 100.0] |
||||
|
+ out_low=-1.0 out_high=1.0) |
||||
|
* |
||||
|
* |
||||
|
*** triangle block *** |
||||
|
a2 1 20 triangle1 |
||||
|
.model triangle1 triangle (cntl_array=[-1.0 0.0 1.0 2.0] |
||||
|
+ freq_array=[1.0 1.0 100.0 100.0] |
||||
|
+ out_low=-1.0 out_high=1.0 duty_cycle=0.8) |
||||
|
* |
||||
|
* |
||||
|
*** aswitch block *** |
||||
|
a3 1 (2 30) aswitch1 |
||||
|
.model aswitch1 aswitch (cntl_off=0.0 cntl_on=1.0 log=TRUE |
||||
|
+ r_off=1.0e12 r_on=10.0) |
||||
|
* |
||||
|
* |
||||
|
*** zener diode *** |
||||
|
r4 1 40 10K |
||||
|
a4 (40 0) zener1 |
||||
|
.model zener1 zener (v_breakdown=10.0 i_breakdown=2.0e-2 |
||||
|
+ r_breakdown=1.0 i_rev=1.0e-6 i_sat=1.0e-12 |
||||
|
+ n_forward=1.0 limit_switch=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** oneshot block *** |
||||
|
a5 3 1 2 50 oneshot1 |
||||
|
.model oneshot1 oneshot (cntl_array=[-1.0 0.0 1.0 2.0] |
||||
|
+ pw_array=[1.0 1.0 0.1 0.1] clk_trig=0.5 |
||||
|
+ pos_edge_trig=TRUE out_low=0.0 out_high=1.0 |
||||
|
+ rise_time=1.0e-6 rise_delay=1.0e-9 |
||||
|
+ fall_delay=1.0e-9 fall_time=1.0e-6 |
||||
|
+ retrig=FALSE) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 10k |
||||
|
r2 2 0 10k |
||||
|
r3 3 0 10k |
||||
|
* |
||||
|
r10 10 0 10k |
||||
|
r20 20 0 10k |
||||
|
r30 30 0 10k |
||||
|
r40 40 0 10k |
||||
|
r50 50 0 10k |
||||
|
r60 60 0 10k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,74 @@ |
|||||
|
Code Model Test - DC: sine triangle aswitch zener oneshot |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.op |
||||
|
* |
||||
|
*** input sources *** |
||||
|
v1 1 0 DC 1.0 |
||||
|
* |
||||
|
v2 2 0 DC 1.0 |
||||
|
* |
||||
|
v3 3 0 DC 1.0 |
||||
|
* |
||||
|
* |
||||
|
*** sine block *** |
||||
|
a1 1 10 sine1 |
||||
|
.model sine1 sine (cntl_array=[-1.0 0.0 1.0 2.0] |
||||
|
+ freq_array=[1.0 1.0 100.0 100.0] |
||||
|
+ out_low=-1.0 out_high=1.0) |
||||
|
* |
||||
|
* |
||||
|
*** triangle block *** |
||||
|
a2 1 20 triangle1 |
||||
|
.model triangle1 triangle (cntl_array=[-1.0 0.0 1.0 2.0] |
||||
|
+ freq_array=[1.0 1.0 100.0 100.0] |
||||
|
+ out_low=-1.0 out_high=1.0 duty_cycle=0.8) |
||||
|
* |
||||
|
* |
||||
|
*** aswitch block *** |
||||
|
a3 1 (2 30) aswitch1 |
||||
|
.model aswitch1 aswitch (cntl_off=0.0 cntl_on=1.0 log=TRUE |
||||
|
+ r_off=1.0e12 r_on=10.0) |
||||
|
* |
||||
|
* |
||||
|
*** zener diode *** |
||||
|
r4 1 40 10K |
||||
|
a4 (40 0) zener1 |
||||
|
.model zener1 zener (v_breakdown=10.0 i_breakdown=2.0e-2 |
||||
|
+ r_breakdown=1.0 i_rev=1.0e-6 i_sat=1.0e-12 |
||||
|
+ n_forward=1.0 limit_switch=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** oneshot block *** |
||||
|
a5 3 1 2 50 oneshot1 |
||||
|
.model oneshot1 oneshot (cntl_array=[-1.0 0.0 1.0 2.0] |
||||
|
+ pw_array=[1.0 1.0 0.1 0.1] clk_trig=0.5 |
||||
|
+ pos_edge_trig=TRUE out_low=0.0 out_high=1.0 |
||||
|
+ rise_time=1.0e-6 rise_delay=1.0e-9 |
||||
|
+ fall_delay=1.0e-9 fall_time=1.0e-6 |
||||
|
+ retrig=FALSE) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 10k |
||||
|
r2 2 0 10k |
||||
|
r3 3 0 10k |
||||
|
* |
||||
|
r10 10 0 10k |
||||
|
r20 20 0 10k |
||||
|
r30 30 0 10k |
||||
|
r40 40 0 10k |
||||
|
r50 50 0 10k |
||||
|
r60 60 0 10k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,72 @@ |
|||||
|
Code Model Test - Swept DC: sine, triangle, aswitch, zener, oneshot |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.dc v1 .1 15 .5 |
||||
|
* |
||||
|
*** input sources *** |
||||
|
v1 1 0 DC 1.0 |
||||
|
* |
||||
|
v2 2 0 DC 1.0 |
||||
|
* |
||||
|
v3 3 0 DC 1.0 |
||||
|
* |
||||
|
* |
||||
|
*** sine block *** |
||||
|
a1 1 10 sine1 |
||||
|
.model sine1 sine (cntl_array=[-1.0 0.0 1.0 2.0] |
||||
|
+ freq_array=[1.0 1.0 100.0 100.0] |
||||
|
+ out_low=-1.0 out_high=1.0) |
||||
|
* |
||||
|
* |
||||
|
*** triangle block *** |
||||
|
a2 1 20 triangle1 |
||||
|
.model triangle1 triangle (cntl_array=[-1.0 0.0 1.0 2.0] |
||||
|
+ freq_array=[1.0 1.0 100.0 100.0] |
||||
|
+ out_low=-1.0 out_high=1.0 duty_cycle=0.8) |
||||
|
* |
||||
|
* |
||||
|
*** aswitch block *** |
||||
|
a3 1 (2 30) aswitch1 |
||||
|
.model aswitch1 aswitch (cntl_off=0.0 cntl_on=1.0 log=TRUE |
||||
|
+ r_off=1.0e12 r_on=10.0) |
||||
|
* |
||||
|
* |
||||
|
*** zener diode *** |
||||
|
r4 1 40 100 |
||||
|
a4 (0 40) zener1 |
||||
|
.model zener1 zener (v_breakdown=8.0 i_breakdown=2.0e-2 |
||||
|
+ r_breakdown=1.0 i_rev=1.0e-6 i_sat=1.0e-12 |
||||
|
+ n_forward=1.0 limit_switch=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** oneshot block *** |
||||
|
a5 3 1 2 50 oneshot1 |
||||
|
.model oneshot1 oneshot (cntl_array=[-1.0 0.0 1.0 2.0] |
||||
|
+ pw_array=[1.0 1.0 0.1 0.1] clk_trig=0.5 |
||||
|
+ pos_edge_trig=TRUE out_low=0.0 out_high=1.0 |
||||
|
+ rise_time=1.0e-6 rise_delay=1.0e-9 |
||||
|
+ fall_delay=1.0e-9 fall_time=1.0e-6 |
||||
|
+ retrig=FALSE) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 10k |
||||
|
r2 2 0 10k |
||||
|
r3 3 0 10k |
||||
|
* |
||||
|
r10 10 0 10k |
||||
|
r20 20 0 10k |
||||
|
r30 30 0 10k |
||||
|
r40 40 0 10k |
||||
|
r50 50 0 10k |
||||
|
r60 60 0 10k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,81 @@ |
|||||
|
Code Model Test - Transient: sine, triangle, aswitch, zener, oneshot |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.tran .01ms 2ms |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
v1 1 0 DC 0.0 PWL(0 0 2e-3 2) |
||||
|
* |
||||
|
v2 2 0 DC 0.0 PWL(0 0 2e-3 10) |
||||
|
* |
||||
|
v3 3 0 DC 0.0 PWL(0 0.0 0.9e-3 0.0 1e-3 1.0 1.9e-3 1.0 2e-3 0.0 2.9e-3 0.0) |
||||
|
* |
||||
|
v4 4 0 DC 1.0 |
||||
|
* |
||||
|
* |
||||
|
*** sine block *** |
||||
|
a1 2 10 sine1 |
||||
|
.model sine1 sine (cntl_array=[-1.0 0.0 10.0 20.0] |
||||
|
+ freq_array=[500 500 2000 2000] |
||||
|
+ out_low=-1.0 out_high=1.0) |
||||
|
* |
||||
|
* |
||||
|
*** triangle block *** |
||||
|
a2 1 20 triangle1 |
||||
|
.model triangle1 triangle (cntl_array=[-1.0 0.0 10.0 20.0] |
||||
|
+ freq_array=[500 500 10000 10000] |
||||
|
+ out_low=-1.0 out_high=1.0 duty_cycle=0.5) |
||||
|
* |
||||
|
* |
||||
|
*** aswitch block *** |
||||
|
a3 1 (4 30) aswitch1 |
||||
|
.model aswitch1 aswitch (cntl_off=0.0 cntl_on=1.0 log=TRUE |
||||
|
+ r_off=1.0e12 r_on=10.0) |
||||
|
* |
||||
|
* |
||||
|
*** zener diode *** |
||||
|
rzener 2 40 100 |
||||
|
a4 (0 40) zener1 |
||||
|
.model zener1 zener (v_breakdown=9.0 i_breakdown=2.0e-2 |
||||
|
+ r_breakdown=1.0 i_rev=1.0e-6 i_sat=1.0e-12 |
||||
|
+ n_forward=1.0 limit_switch=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** oneshot block *** |
||||
|
a5 3 1 0 50 oneshot1 |
||||
|
.model oneshot1 oneshot (cntl_array=[-1.0 0.0 1.0 2.0] |
||||
|
+ pw_array=[2.0e-3 2.0e-3 0.1e-3 0.1e-3] clk_trig=0.5 |
||||
|
+ pos_edge_trig=TRUE out_low=0.0 out_high=1.0 |
||||
|
+ rise_time=1.0e-6 rise_delay=1.0e-9 |
||||
|
+ fall_delay=1.0e-9 fall_time=1.0e-6 |
||||
|
+ retrig=FALSE) |
||||
|
* |
||||
|
* |
||||
|
*** square block *** |
||||
|
a6 2 60 square1 |
||||
|
.model square1 square (cntl_array=[-1.0 0.0 10.0 20.0] |
||||
|
+ freq_array=[500 500 7000 7000] |
||||
|
+ out_low=-0.8 out_high=1.2 duty_cycle=0.5 |
||||
|
+ rise_time=1e-6 fall_time=2e-6) |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 10k |
||||
|
r2 2 0 10k |
||||
|
r3 3 0 10k |
||||
|
r4 4 0 10k |
||||
|
* |
||||
|
r10 10 0 10k |
||||
|
r20 20 0 10k |
||||
|
r30 30 0 10k |
||||
|
r40 40 0 10k |
||||
|
r50 50 0 10k |
||||
|
r60 60 0 10k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,17 @@ |
|||||
|
Arbitrary Phase SIN and PULSE Sources |
||||
|
* |
||||
|
* This circuit generates two cycles of sine and square waves |
||||
|
* beginning at +45 degrees. |
||||
|
* |
||||
|
* Phase shift is specified after Berkeley defined parameters |
||||
|
* on the independent source cards. |
||||
|
* |
||||
|
.tran 2e-5 2e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 sin(0 1 1k 0 0 45.0) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
v2 2 0 0.0 pulse(-1 1 0 1e-5 1e-5 5e-4 1e-3 45.0) |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,17 @@ |
|||||
|
Invalid number of inputs/outputs |
||||
|
* |
||||
|
* This circuit contains a simple gain block to demonstrate |
||||
|
* that the simulator reports an error if the number of |
||||
|
* connections on the code model is incorrect. |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 sin(0 1 1k) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
a1 1 2 3 gain_block |
||||
|
a2 1 gain_block |
||||
|
.model gain_block gain (gain=10) |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,25 @@ |
|||||
|
Invalid input/output type |
||||
|
* |
||||
|
* This circuit contains a simple gain block to demonstrate |
||||
|
* that the simulator reports an error if an invalid type |
||||
|
* is used with the code model connections. |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 sin(0 1 1k) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
* Both connections on the gain block must be analog, but |
||||
|
* the second is specified as digital |
||||
|
* |
||||
|
a1 1 %d 2 gain_block |
||||
|
.model gain_block gain (gain=10) |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
* Node 1 below should be a digital node, but is an analog node |
||||
|
* |
||||
|
a2 [1] [3] dac |
||||
|
.model dac dac_bridge |
||||
|
r3 3 0 1k |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,16 @@ |
|||||
|
Unknown code model name |
||||
|
* |
||||
|
* This circuit contains a simple gain block to demonstrate |
||||
|
* that the simulator reports an error if the code model name |
||||
|
* is incorrect. |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 sin(0 1 1k) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
a1 1 2 gain_block |
||||
|
.model gain_block this_model_doesnt_exist (gain=10) |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,16 @@ |
|||||
|
Unknown code model parameter |
||||
|
* |
||||
|
* This circuit contains a simple gain block to demonstrate |
||||
|
* that the simulator reports an error if the .model card |
||||
|
* references a parameter that doesn't exist |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 sin(0 1 1k) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
a1 1 2 gain_block |
||||
|
.model gain_block gain (this_parameter_doesnt_exist=2 gain=10) |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,16 @@ |
|||||
|
Invalid parameter type |
||||
|
* |
||||
|
* This circuit contains a simple gain block to demonstrate |
||||
|
* that the simulator reports an error if the parameter value |
||||
|
* is invalid. |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 sin(0 1 1k) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
a1 1 2 gain_block |
||||
|
.model gain_block gain (gain=false) |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,28 @@ |
|||||
|
difpair ckt - simple differential pair |
||||
|
*.width in=72 |
||||
|
.opt acct list node lvlcod=2 |
||||
|
*.tf v(5) vin |
||||
|
*.dc vin -0.25 0.25 0.005 |
||||
|
*.ac dec 10 1 10ghz |
||||
|
.tran 5ns 500ns |
||||
|
vin 1 0 sin(0 0.1 5meg) ac 1 |
||||
|
vcc 8 0 12 |
||||
|
vee 9 0 -12 |
||||
|
q1 4 2 6 qnl |
||||
|
q2 5 3 6 qnl |
||||
|
rs1 1 2 1k |
||||
|
rs2 3 0 1k |
||||
|
rc1 4 8 10k |
||||
|
rc2 5 8 10k |
||||
|
q3 6 7 9 qnl |
||||
|
q4 7 7 9 qnl |
||||
|
rbias 7 8 20k |
||||
|
.model qnl npn(bf=80 rb=100 ccs=2pf tf=0.3ns tr=6ns cje=3pf cjc=2pf |
||||
|
+ va=50) |
||||
|
.print dc v(4) v(5) |
||||
|
.plot dc v(5) |
||||
|
.print ac vm(5) vp(5) |
||||
|
.plot ac vm(5) vp(5) |
||||
|
.print tran v(4) v(5) |
||||
|
.plot tran v(5) |
||||
|
.end |
||||
@ -0,0 +1,23 @@ |
|||||
|
Digital inversions |
||||
|
* |
||||
|
.tran 1e-8 1e-6 |
||||
|
* |
||||
|
v1 1 0 0.0 pulse(0 1 0 1e-8 1e-8 0.25e-6 0.5e-6) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
a1 [1] [2] adc |
||||
|
.model adc adc_bridge |
||||
|
* |
||||
|
a2 2 3 inv |
||||
|
a3 2 ~4 inv |
||||
|
a4 ~2 5 inv |
||||
|
a5 ~2 ~6 inv |
||||
|
.model inv d_inverter |
||||
|
* |
||||
|
a6 [2 ~4] 7 nand |
||||
|
.model nand d_nand |
||||
|
* |
||||
|
a8 [2 3 4 5 6 7] [12 13 14 15 16 17] dac |
||||
|
.model dac dac_bridge |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,20 @@ |
|||||
|
Digital models |
||||
|
* |
||||
|
* This circuit contains a nand gate oscillator enabled by |
||||
|
* a pulse input after 20nS. Node 1 is an analog node. |
||||
|
* Nodes 2 and 3 are digital nodes. |
||||
|
* |
||||
|
.tran 1e-8 1e-7 |
||||
|
* |
||||
|
v1 1 0 0.0 pulse(0 1 2e-8 1e-9 1e-9) |
||||
|
* |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
a1 [1] [2] atod1 |
||||
|
.model atod1 adc_bridge (in_low=0.25 in_high=0.75 |
||||
|
+ rise_delay=1e-9 fall_delay=1e-9) |
||||
|
* |
||||
|
a2 [2 3] 3 nand |
||||
|
.model nand d_nand (rise_delay=1e-9 fall_delay=1e-9) |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,77 @@ |
|||||
|
Code Model Test: buffer, inverter, and, nand, or, nor, xor, xnor |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.tran .01s 4s |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
v2 200 0 DC PWL( (0 0.0) (2 0.0) (2.0000000001 1.0) (3 1.0) ) |
||||
|
* |
||||
|
v1 100 0 DC PWL( (0 0.0) (1.0 0.0) (1.0000000001 1.0) (2 1.0) |
||||
|
+ (2.0000000001 0.0) (3 0.0) (3.0000000001 1.0) (4 1.0) ) |
||||
|
* |
||||
|
* |
||||
|
*** adc_bridge blocks *** |
||||
|
aconverter [200 100] [2 1] adc_bridge1 |
||||
|
.model adc_bridge1 adc_bridge (in_low=0.1 in_high=0.9 |
||||
|
+ rise_delay=1.0e-12 fall_delay=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** buffer block *** |
||||
|
a1 1 10 d_buffer1 |
||||
|
.model d_buffer1 d_buffer (rise_delay=1.0e-6 fall_delay=2.0e-6 |
||||
|
+ input_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** inverter block *** |
||||
|
a2 1 20 d_inv1 |
||||
|
.model d_inv1 d_inverter (rise_delay=1.0e-6 fall_delay=2.0e-6 |
||||
|
+ input_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** and block *** |
||||
|
a3 [1 2] 30 d_and1 |
||||
|
.model d_and1 d_and (rise_delay=1.0e-6 fall_delay=2.0e-6 |
||||
|
+ input_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** nand block *** |
||||
|
a4 [1 2] 40 d_nand1 |
||||
|
.model d_nand1 d_nand (rise_delay=1.0e-6 fall_delay=2.0e-6 |
||||
|
+ input_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** or block *** |
||||
|
a5 [1 2] 50 d_or1 |
||||
|
.model d_or1 d_or (rise_delay=1.0e-6 fall_delay=2.0e-6 |
||||
|
+ input_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** nor block *** |
||||
|
a6 [1 2] 60 d_nor1 |
||||
|
.model d_nor1 d_nor (rise_delay=1.0e-6 fall_delay=2.0e-6 |
||||
|
+ input_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** xor block *** |
||||
|
a7 [1 2] 70 d_xor1 |
||||
|
.model d_xor1 d_xor (rise_delay=1.0e-6 fall_delay=2.0e-6 |
||||
|
+ input_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** xnor block *** |
||||
|
a8 [1 2] 80 d_xnor1 |
||||
|
.model d_xnor1 d_xnor (rise_delay=1.0e-6 fall_delay=2.0e-6 |
||||
|
+ input_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 100 0 1k |
||||
|
r2 200 0 1k |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,91 @@ |
|||||
|
Code Model Test: d flip-flop, jk flip-flop, toggle ff, set-reset ff |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.tran .01s 4s |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
vdata1 100 0 DC PWL( (0 0.0) (2 0.0) (2.0000000001 1.0) (3 1.0) ) |
||||
|
* |
||||
|
* |
||||
|
vdata2 200 0 DC PWL( (0 0.0) (1.0 0.0) (1.0000000001 1.0) (2 1.0) |
||||
|
+ (2.0000000001 0.0) (3 0.0) (3.0000000001 1.0) (4 1.0) ) |
||||
|
* |
||||
|
* |
||||
|
vclk 300 0 DC PWL( (0 0.0) (0.5 0.0) (0.50000000001 1.0) |
||||
|
+ (1.0 1.0) (1.00000000001 0.0) |
||||
|
+ (1.5 0.0) (1.50000000001 1.0) |
||||
|
+ (2.0 1.0) (2.00000000001 0.0) |
||||
|
+ (2.5 0.0) (2.50000000001 1.0) |
||||
|
+ (3.0 1.0) (3.00000000001 0.0) |
||||
|
+ (3.5 0.0) (3.50000000001 1.0) (4.0 1.0) ) |
||||
|
* |
||||
|
* |
||||
|
vset 400 0 DC 0.0 |
||||
|
* |
||||
|
* |
||||
|
vreset 500 0 DC PWL( (0 0.0) (3.8 0.0) (3.80000000001 1.0) (4 1.0) ) |
||||
|
* |
||||
|
* |
||||
|
*** adc_bridge blocks *** |
||||
|
aconverter [100 200 300 400 500] [1 2 3 4 5] adc_bridge1 |
||||
|
.model adc_bridge1 adc_bridge (in_low=0.1 in_high=0.9 |
||||
|
+ rise_delay=1.0e-12 fall_delay=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** d flip-flop block *** |
||||
|
a1 1 3 4 5 10 11 d_dff1 |
||||
|
.model d_dff1 d_dff (clk_delay=1.0e-6 set_delay=2.0e-6 |
||||
|
+ reset_delay=3.0e-6 ic=0 |
||||
|
+ rise_delay=4.0e-6 fall_delay=5.0e-6 |
||||
|
+ data_load=1.0e-12 clk_load=1.0e-12 |
||||
|
+ set_load=1.0e-12 reset_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** jk flip-flop block *** |
||||
|
a2 1 2 3 4 5 20 21 d_jkff1 |
||||
|
.model d_jkff1 d_jkff (clk_delay=1.0e-6 set_delay=2.0e-6 |
||||
|
+ reset_delay=3.0e-6 ic=0 |
||||
|
+ rise_delay=4.0e-6 fall_delay=5.0e-6 |
||||
|
+ jk_load=1.0e-12 clk_load=1.0e-12 |
||||
|
+ set_load=1.0e-12 reset_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** toggle flip-flop block *** |
||||
|
a3 1 3 4 5 30 31 d_tff1 |
||||
|
.model d_tff1 d_tff (clk_delay=1.0e-6 set_delay=2.0e-6 |
||||
|
+ reset_delay=3.0e-6 ic=0 |
||||
|
+ rise_delay=4.0e-6 fall_delay=5.0e-6 |
||||
|
+ t_load=1.0e-12 clk_load=1.0e-12 |
||||
|
+ set_load=1.0e-12 reset_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** set-reset flip-flop block *** |
||||
|
a4 1 2 3 4 5 40 41 d_srff1 |
||||
|
.model d_srff1 d_srff (clk_delay=1.0e-6 set_delay=2.0e-6 |
||||
|
+ reset_delay=3.0e-6 ic=0 |
||||
|
+ rise_delay=4.0e-6 fall_delay=5.0e-6 |
||||
|
+ sr_load=1.0e-12 clk_load=1.0e-12 |
||||
|
+ set_load=1.0e-12 reset_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 100 0 1k |
||||
|
r2 200 0 1k |
||||
|
r3 300 0 1k |
||||
|
r4 400 0 1k |
||||
|
r5 500 0 1k |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,92 @@ |
|||||
|
Code Model Test: d latch, set-reset latch, frequency divider |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.tran .01s 8s |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
vdata1 100 0 DC PWL( (0 0.0) (2 0.0) (2.0000000001 1.0) (3 1.0) ) |
||||
|
* |
||||
|
* |
||||
|
vdata2 200 0 DC PWL( (0 0.0) (1.0 0.0) (1.0000000001 1.0) (2 1.0) |
||||
|
+ (2.0000000001 0.0) (3 0.0) (3.0000000001 1.0) (4 1.0) ) |
||||
|
* |
||||
|
* |
||||
|
vclk 300 0 DC PWL( (0 0.0) (0.5 0.0) (0.50000000001 1.0) |
||||
|
+ (1.0 1.0) (1.00000000001 0.0) |
||||
|
+ (1.5 0.0) (1.50000000001 1.0) |
||||
|
+ (2.0 1.0) (2.00000000001 0.0) |
||||
|
+ (2.5 0.0) (2.50000000001 1.0) |
||||
|
+ (3.0 1.0) (3.00000000001 0.0) |
||||
|
+ (3.5 0.0) (3.50000000001 1.0) |
||||
|
+ (4.0 1.0) (4.00000000001 0.0) |
||||
|
+ (4.5 0.0) (4.50000000001 1.0) |
||||
|
+ (5.0 1.0) (5.00000000001 0.0) |
||||
|
+ (5.5 0.0) (5.50000000001 1.0) |
||||
|
+ (6.0 1.0) (6.00000000001 0.0) |
||||
|
+ (6.5 0.0) (6.50000000001 1.0) |
||||
|
+ (7.0 1.0) (7.00000000001 0.0) |
||||
|
+ (7.5 0.0) (7.50000000001 1.0) (8.0 1.0) ) |
||||
|
* |
||||
|
* |
||||
|
vset 400 0 DC 0.0 |
||||
|
* |
||||
|
* |
||||
|
vreset 500 0 DC PWL( (0 0.0) (3.8 0.0) (3.80000000001 1.0) (4 1.0) ) |
||||
|
* |
||||
|
* |
||||
|
*** adc_bridge block *** |
||||
|
aconverter [100 200 300 400 500] [1 2 3 4 5] adc_bridge1 |
||||
|
.model adc_bridge1 adc_bridge (in_low=0.1 in_high=0.9 |
||||
|
+ rise_delay=1.0e-12 fall_delay=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** d latch block *** |
||||
|
a1 1 3 4 5 10 11 d_dlatch1 |
||||
|
.model d_dlatch1 d_dlatch (data_delay=1.0e-6 enable_delay=2.0e-6 |
||||
|
+ set_delay=3.0e-6 reset_delay=4.0e-6 |
||||
|
+ ic=0 |
||||
|
+ rise_delay=5.0e-6 fall_delay=6.0e-6 |
||||
|
+ data_load=1.0e-12 enable_load=1.0e-12 |
||||
|
+ set_load=1.0e-12 reset_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** set-reset latch block *** |
||||
|
a2 1 2 3 4 5 20 21 d_srlatch1 |
||||
|
.model d_srlatch1 d_srlatch (sr_delay=1.0e-6 enable_delay=2.0e-6 |
||||
|
+ set_delay=3.0e-6 reset_delay=4.0e-6 |
||||
|
+ ic=0 |
||||
|
+ rise_delay=5.0e-6 fall_delay=6.0e-6 |
||||
|
+ sr_load=1.0e-12 enable_load=1.0e-12 |
||||
|
+ set_load=1.0e-12 reset_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** frequency divider block *** |
||||
|
a3 3 30 d_fdiv1 |
||||
|
.model d_fdiv1 d_fdiv (div_factor=3 high_cycles=2 |
||||
|
+ i_count=0 rise_delay=1.0e-6 fall_delay=2.0e-6 |
||||
|
+ freq_in_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 100 0 1k |
||||
|
r2 200 0 1k |
||||
|
r3 300 0 1k |
||||
|
r4 400 0 1k |
||||
|
r5 500 0 1k |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,91 @@ |
|||||
|
Code Model Test: State Machine, RAM |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.tran .01s 8s |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
vdata1 100 0 DC PWL( (0 0.0) (2 0.0) (2.0000000001 1.0) (3 1.0) |
||||
|
+ (3.5000000001 0.0) (4 0.0) ) |
||||
|
* |
||||
|
* |
||||
|
vdata2 200 0 DC PWL( (0 0.0) (1.0 0.0) (1.0000000001 1.0) (2 1.0) |
||||
|
+ (2.0000000001 0.0) (3 0.0) (3.0000000001 1.0) (4 1.0) ) |
||||
|
* |
||||
|
* |
||||
|
vclk 300 0 DC PWL( (0 0.0) (0.5 0.0) (0.50000000001 1.0) |
||||
|
+ (1.0 1.0) (1.00000000001 0.0) |
||||
|
+ (1.5 0.0) (1.50000000001 1.0) |
||||
|
+ (2.0 1.0) (2.00000000001 0.0) |
||||
|
+ (2.5 0.0) (2.50000000001 1.0) |
||||
|
+ (3.0 1.0) (3.00000000001 0.0) |
||||
|
+ (3.5 0.0) (3.50000000001 1.0) |
||||
|
+ (4.0 1.0) (4.00000000001 0.0) |
||||
|
+ (4.5 0.0) (4.50000000001 1.0) |
||||
|
+ (5.0 1.0) (5.00000000001 0.0) |
||||
|
+ (5.5 0.0) (5.50000000001 1.0) |
||||
|
+ (6.0 1.0) (6.00000000001 0.0) |
||||
|
+ (6.5 0.0) (6.50000000001 1.0) |
||||
|
+ (7.0 1.0) (7.00000000001 0.0) |
||||
|
+ (7.5 0.0) (7.50000000001 1.0) (8.0 1.0) ) |
||||
|
* |
||||
|
vaddr1 400 0 DC 0 |
||||
|
* |
||||
|
* |
||||
|
vaddr2 500 0 DC PWL( (0 0.0) (0.6 0.0) (0.60000000001 1.0) |
||||
|
+ (0.9 1.0) (0.90000000001 0.0) |
||||
|
+ (2.6 0.0) (2.60000000001 1.0) |
||||
|
+ (2.9 1.0) (2.90000000001 0.0) (3.0 0.0) ) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
vselect 600 0 DC PWL( (0 0.0) (1.0 0.0) (2 1.0) (2.0000000001 1.0) ) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** adc_bridge block *** |
||||
|
aconverter [100 200 300 400 500 600] [1 2 3 4 5 6] adc_bridge1 |
||||
|
.model adc_bridge1 adc_bridge (in_low=0.1 in_high=0.9 |
||||
|
+ rise_delay=1.0e-12 fall_delay=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** state machine block *** |
||||
|
*a1 [1 2] 3 4 [10 11] d_state1 |
||||
|
*.model d_state1 d_state (clk_delay=1.0e-6 reset_delay=2.0e-6 |
||||
|
*+ state_file="state.txt" reset_state=0 |
||||
|
*+ input_load=1.0e-12 clk_load=1.0e-12 |
||||
|
*+ reset_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
*** RAM block *** |
||||
|
a2 [1 2] [20 21] [3 4] 5 [6] d_ram1 |
||||
|
.model d_ram1 d_ram (select_value=1 ic=0 |
||||
|
+ read_delay=1.0e-6 data_load=1.0e-12 |
||||
|
+ address_load=1.0e-12 select_load=1.0e-12 |
||||
|
+ enable_load=1.0e-12) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 100 0 10k |
||||
|
r2 200 0 10k |
||||
|
r3 300 0 10k |
||||
|
r4 400 0 10k |
||||
|
r5 500 0 10k |
||||
|
r6 600 0 10k |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,19 @@ |
|||||
|
Model card reference |
||||
|
* |
||||
|
* This circuit contains simple gain blocks that share a |
||||
|
* single .model card. |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 sin(0 1 1k) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
a1 1 2 gain_block |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
a2 1 3 gain_block |
||||
|
r3 3 0 1k |
||||
|
* |
||||
|
.model gain_block gain (in_offset = 1 gain=10) |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,46 @@ |
|||||
|
Code Model Test - DC: d_osc, dac_bridge, adc_bridge |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.op |
||||
|
* |
||||
|
*** input sources *** |
||||
|
v1 1 0 DC 2 |
||||
|
* |
||||
|
v2 2 0 DC 2 |
||||
|
* |
||||
|
*** d_osc block *** |
||||
|
a1 1 10 d_osc1 |
||||
|
.model d_osc1 d_osc (cntl_array=[-1.0 0.0 1.0 2.0] |
||||
|
+ freq_array=[100 100 1000 1000] |
||||
|
+ duty_cycle=0.5 init_phase=0.0 |
||||
|
+ rise_delay=1.0e-6 fall_delay=2.0e-6) |
||||
|
* |
||||
|
*** dac_bridge block *** |
||||
|
a2 [10] [20] dac_bridge1 |
||||
|
.model dac_bridge1 dac_bridge (out_low=0.5 out_high=4.5 out_undef=1.8 |
||||
|
+ input_load=1.0e-12 |
||||
|
+ t_rise=1.0e-6 t_fall=2.0e-6) |
||||
|
* |
||||
|
* |
||||
|
*** adc_bridge block *** |
||||
|
a3 [2] [30] adc_bridge1 |
||||
|
.model adc_bridge1 adc_bridge (in_low=0.7 in_high=2.4 |
||||
|
+ rise_delay=1.0e-12 fall_delay=2.0e-12) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 1k |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
r20 20 0 1k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,48 @@ |
|||||
|
Code Model Test - Transient: d_osc, dac_bridge, adc_bridge |
||||
|
* |
||||
|
* |
||||
|
*** analysis type *** |
||||
|
.tran .01s 1s |
||||
|
* |
||||
|
*** input sources *** |
||||
|
* |
||||
|
v1 1 0 DC PWL( (0 0.0) (1 1.0) ) |
||||
|
* |
||||
|
v2 2 0 DC PWL( (0 0.0) (1 5.0) ) |
||||
|
* |
||||
|
* |
||||
|
*** d_osc block *** |
||||
|
a1 1 10 d_osc1 |
||||
|
.model d_osc1 d_osc (cntl_array=[-1.0 0.0 1.0 2.0] |
||||
|
+ freq_array=[1.0 1.0 8.0 8.0] |
||||
|
+ duty_cycle=0.5 init_phase=0.0 |
||||
|
+ rise_delay=1.0e-6 fall_delay=2.0e-6) |
||||
|
* |
||||
|
*** dac_bridge block *** |
||||
|
a2 [10] [20] dac_bridge1 |
||||
|
.model dac_bridge1 dac_bridge (out_low=0.5 out_high=4.5 out_undef=1.8 |
||||
|
+ input_load=1.0e-12 |
||||
|
+ t_rise=1.0e-6 t_fall=2.0e-6) |
||||
|
* |
||||
|
* |
||||
|
*** adc_bridge block *** |
||||
|
a3 [2] [30] adc_bridge1 |
||||
|
.model adc_bridge1 adc_bridge (in_low=0.7 in_high=2.4 |
||||
|
+ rise_delay=1.0e-12 fall_delay=2.0e-12) |
||||
|
* |
||||
|
* |
||||
|
* |
||||
|
*** resistors to ground *** |
||||
|
r1 1 0 1k |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
r20 20 0 1k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,19 @@ |
|||||
|
Capacitor and inductor with natural initial conditions |
||||
|
* |
||||
|
* This circuit contains a capacitor and an inductor with |
||||
|
* initial conditions on them. Each of the components |
||||
|
* has a parallel resistor so that an exponential decay |
||||
|
* of the initial condition occurs with a time constant of |
||||
|
* 1 second. |
||||
|
* |
||||
|
.tran 0.1 5 |
||||
|
* |
||||
|
a1 1 0 cap |
||||
|
.model cap capacitor (c=1000uf ic=1) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
a2 2 0 ind |
||||
|
.model ind inductor (l=1H ic=1) |
||||
|
r2 2 0 1.0 |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,17 @@ |
|||||
|
IO ordering |
||||
|
* |
||||
|
* This circuit contains a simple gain block. The order of |
||||
|
* the nodes listed on the instance line follows the order |
||||
|
* of the connections defined in the 'ifspec.ifs' file for |
||||
|
* the model. Refer to /atesse-su/src/cml/gain/ifspec.ifs . |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 sin(0 1 1k) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
a1 1 2 gain_block |
||||
|
.model gain_block gain (gain=10) |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,34 @@ |
|||||
|
IO types |
||||
|
* |
||||
|
* This circuit contains a mix of input output types including |
||||
|
* voltages, currents, digital signals, and user defined |
||||
|
* signals. |
||||
|
* |
||||
|
.tran 1e-6 1e-4 |
||||
|
* |
||||
|
v1 1 0 0.0 pulse(0 1 2e-5) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
abridge1 [1] [enable] node_bridge1 |
||||
|
.model node_bridge1 adc_bridge |
||||
|
* |
||||
|
aclk [enable clk] clk nand |
||||
|
.model nand d_nand (rise_delay=1e-5 fall_delay=1e-5) |
||||
|
* |
||||
|
abridge2 clk enable real_node1 node_bridge2 |
||||
|
.model node_bridge2 d_to_real (zero=-1 one=1) |
||||
|
* |
||||
|
again real_node1 real_node2 times10 |
||||
|
.model times10 real_gain (gain=10) |
||||
|
* |
||||
|
abridge3 real_node2 analog_node node_bridge3 |
||||
|
.model node_bridge3 real_to_v |
||||
|
* |
||||
|
rout analog_node 0 1k |
||||
|
* |
||||
|
again2 %vnam v1 %i i_out gain_block |
||||
|
.model gain_block gain (gain=10) |
||||
|
ri_out i_out 0 1k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,19 @@ |
|||||
|
Long names |
||||
|
* |
||||
|
* This circuit contains a sine wave source followed by a |
||||
|
* gain block code model with a gain of 10. Long names |
||||
|
* are used for instances, models, and nodes. |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1_123456789_123456789_1234 1 0 0.0 sin(0 1 2k) |
||||
|
* |
||||
|
r1_123456789_123456789_1234 1 0 1k |
||||
|
* |
||||
|
a1_123456789_123456789_1234 1 out_123456789_123456789_1234 |
||||
|
+ gain_block_123456789_123456789_1234 |
||||
|
* |
||||
|
.model gain_block_123456789_123456789_1234 gain (gain=10) |
||||
|
r2_123456789_123456789_1234 out_123456789_123456789_1234 0 1k |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,15 @@ |
|||||
|
MiXeD CaSe |
||||
|
* |
||||
|
* This circuit contains a simple gain block to demonstrate |
||||
|
* that the simulator deck parsing code is case-insensitive. |
||||
|
* |
||||
|
.TrAn 1E-5 1e-3 |
||||
|
* |
||||
|
V1 1 0 0.0 sIn(0 1 1k) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
A1 1 2 GaIn_BlOcK |
||||
|
.MODel gAiN_bLoCk GAin (gaIN=10) |
||||
|
r2 2 0 1K |
||||
|
* |
||||
|
.eNd |
||||
@ -0,0 +1,33 @@ |
|||||
|
Mixed IO sizes |
||||
|
* |
||||
|
* This circuit contains a collection of digital and analog |
||||
|
* models with saclar and vector inputs of varying sizes. |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 pulse(0 1 1e-4) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
v2 2 0 0.0 sin(0 1 2k) |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
abridge1 [1] [enable] atod |
||||
|
.model atod adc_bridge |
||||
|
* |
||||
|
aosc [enable clk] clk nand |
||||
|
.model nand d_nand (rise_delay=1e-4 fall_delay=1e-4) |
||||
|
* |
||||
|
ainv clk clk_bar inv |
||||
|
.model inv d_inverter (rise_delay=1e-5 fall_delay=1e-5) |
||||
|
* |
||||
|
adac [clk clk_bar] [3 4] dac |
||||
|
.model dac dac_bridge (t_rise=1e-5 t_fall=1e-5) |
||||
|
* |
||||
|
asum [1 2 3 4] 5 sum |
||||
|
.model sum summer |
||||
|
* |
||||
|
r3 3 0 1k |
||||
|
r4 4 0 1k |
||||
|
r5 5 0 1k |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,98 @@ |
|||||
|
Mixed IO types |
||||
|
* |
||||
|
* This circuit contains a mixture of IO types, including |
||||
|
* analog, digital, user-defined (real), and 'null'. |
||||
|
* |
||||
|
* The circuit demonstrates the use of the digital and |
||||
|
* user-defined node capability to model system-level designs |
||||
|
* such as sampled-data filters. The simulated circuit |
||||
|
* contains a digital oscillator enabled after 100us. The |
||||
|
* square wave oscillator output is divided by 8 with a |
||||
|
* ripple counter. The result is passed through a digital |
||||
|
* filter to convert it to a sine wave. |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 pulse(0 1 1e-4 1e-6) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
abridge1 [1] [enable] atod |
||||
|
.model atod adc_bridge |
||||
|
* |
||||
|
aclk [enable clk] clk nand |
||||
|
.model nand d_nand (rise_delay=1e-5 fall_delay=1e-5) |
||||
|
* |
||||
|
adiv2 div2_out clk NULL NULL NULL div2_out dff |
||||
|
adiv4 div4_out div2_out NULL NULL NULL div4_out dff |
||||
|
adiv8 div8_out div4_out NULL NULL NULL div8_out dff |
||||
|
.model dff d_dff |
||||
|
* |
||||
|
abridge2 div8_out enable filt_in node_bridge2 |
||||
|
.model node_bridge2 d_to_real (zero=-1 one=1) |
||||
|
* |
||||
|
xfilter filt_in clk filt_out dig_filter |
||||
|
* |
||||
|
abridge3 filt_out a_out node_bridge3 |
||||
|
.model node_bridge3 real_to_v |
||||
|
* |
||||
|
rlpf1 a_out oa_minus 10k |
||||
|
* |
||||
|
xlpf 0 oa_minus lpf_out opamp |
||||
|
* |
||||
|
rlpf2 oa_minus lpf_out 10k |
||||
|
clpf lpf_out oa_minus 0.01uF |
||||
|
* |
||||
|
* |
||||
|
.subckt dig_filter filt_in clk filt_out |
||||
|
* |
||||
|
.model n0 real_gain (gain=1.0) |
||||
|
.model n1 real_gain (gain=2.0) |
||||
|
.model n2 real_gain (gain=1.0) |
||||
|
.model g1 real_gain (gain=0.125) |
||||
|
.model zm1 real_delay |
||||
|
.model d0a real_gain (gain=-0.75) |
||||
|
.model d1a real_gain (gain=0.5625) |
||||
|
.model d0b real_gain (gain=-0.3438) |
||||
|
.model d1b real_gain (gain=1.0) |
||||
|
* |
||||
|
an0a filt_in x0a n0 |
||||
|
an1a filt_in x1a n1 |
||||
|
an2a filt_in x2a n2 |
||||
|
* |
||||
|
az0a x0a clk x1a zm1 |
||||
|
az1a x1a clk x2a zm1 |
||||
|
* |
||||
|
ad0a x2a x0a d0a |
||||
|
ad1a x2a x1a d1a |
||||
|
* |
||||
|
az2a x2a filt1_out g1 |
||||
|
az3a filt1_out clk filt2_in zm1 |
||||
|
* |
||||
|
an0b filt2_in x0b n0 |
||||
|
an1b filt2_in x1b n1 |
||||
|
an2b filt2_in x2b n2 |
||||
|
* |
||||
|
az0b x0b clk x1b zm1 |
||||
|
az1b x1b clk x2b zm1 |
||||
|
* |
||||
|
ad0 x2b x0b d0b |
||||
|
ad1 x2b x1b d1b |
||||
|
* |
||||
|
az2b x2b clk filt_out zm1 |
||||
|
* |
||||
|
.ends dig_filter |
||||
|
* |
||||
|
* |
||||
|
.subckt opamp plus minus out |
||||
|
* |
||||
|
r1 plus minus 300k |
||||
|
a1 %vd (plus minus) outint lim |
||||
|
.model lim limit (out_lower_limit = -12 out_upper_limit = 12 |
||||
|
+ fraction = true limit_range = 0.2 gain=300e3) |
||||
|
r3 outint out 50.0 |
||||
|
r2 out 0 1e12 |
||||
|
* |
||||
|
.ends opamp |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,41 @@ |
|||||
|
Mixed references |
||||
|
* |
||||
|
* This circuit demonstrates the use of single-ended and |
||||
|
* differential inputs and outputs. |
||||
|
* |
||||
|
* Note that digital models reference a single node for |
||||
|
* their inputs and output (i.e. they are single-ended) |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 sin(0 1 5k) |
||||
|
v2 2 0 0.0 sin(0 1 1k) |
||||
|
* |
||||
|
r1 1 0 1k |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
* |
||||
|
a1 %v 1 %i 10 times10 |
||||
|
r10 10 0 1k |
||||
|
* |
||||
|
* |
||||
|
a2 %vd (1 2) %id(11 12) times10 |
||||
|
r11 11 0 1k |
||||
|
r12 12 0 1k |
||||
|
r11_12 11 12 1.0 |
||||
|
* |
||||
|
* |
||||
|
r3 2 3 1k |
||||
|
a3 %i 3 %v 13 times10 |
||||
|
r13 13 0 1k |
||||
|
* |
||||
|
a4 [1] [digital_node1] adc |
||||
|
.model adc adc_bridge |
||||
|
* |
||||
|
a5 digital_node1 digital_node2 inv |
||||
|
.model inv d_inverter |
||||
|
* |
||||
|
* |
||||
|
.model times10 gain (gain=10) |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,42 @@ |
|||||
|
mosamp2 - mos amplifier - transient |
||||
|
.options acct abstol=10n vntol=10n |
||||
|
.tran 0.1us 10us |
||||
|
m1 15 15 1 32 m w=88.9u l=25.4u |
||||
|
m2 1 1 2 32 m w=12.7u l=266.7u |
||||
|
m3 2 2 30 32 m w=88.9u l=25.4u |
||||
|
m4 15 5 4 32 m w=12.7u l=106.7u |
||||
|
m5 4 4 30 32 m w=88.9u l=12.7u |
||||
|
m6 15 15 5 32 m w=44.5u l=25.4u |
||||
|
m7 5 20 8 32 m w=482.6u l=12.7u |
||||
|
m8 8 2 30 32 m w=88.9u l=25.4u |
||||
|
m9 15 15 6 32 m w=44.5u l=25.4u |
||||
|
m10 6 21 8 32 m w=482.6u l=12.7u |
||||
|
m11 15 6 7 32 m w=12.7u l=106.7u |
||||
|
m12 7 4 30 32 m w=88.9u l=12.7u |
||||
|
m13 15 10 9 32 m w=139.7u l=12.7u |
||||
|
m14 9 11 30 32 m w=139.7u l=12.7u |
||||
|
m15 15 15 12 32 m w=12.7u l=207.8u |
||||
|
m16 12 12 11 32 m w=54.1u l=12.7u |
||||
|
m17 11 11 30 32 m w=54.1u l=12.7u |
||||
|
m18 15 15 10 32 m w=12.7u l=45.2u |
||||
|
m19 10 12 13 32 m w=270.5u l=12.7u |
||||
|
m20 13 7 30 32 m w=270.5u l=12.7u |
||||
|
m21 15 10 14 32 m w=254u l=12.7u |
||||
|
m22 14 11 30 32 m w=241.3u l=12.7u |
||||
|
m23 15 20 16 32 m w=19u l=38.1u |
||||
|
m24 16 14 30 32 m w=406.4u l=12.7u |
||||
|
m25 15 15 20 32 m w=38.1u l=42.7u |
||||
|
m26 20 16 30 32 m w=381u l=25.4u |
||||
|
m27 20 15 66 32 m w=22.9u l=7.6u |
||||
|
cc 7 9 40pf |
||||
|
cl 66 0 70pf |
||||
|
vin 21 0 pulse(0 5 1ns 1ns 1ns 5us 10us) |
||||
|
vccp 15 0 dc +15 |
||||
|
vddn 30 0 dc -15 |
||||
|
vb 32 0 dc -20 |
||||
|
.model m nmos(nsub=2.2e15 uo=575 ucrit=49k uexp=0.1 tox=0.11u xj=2.95u |
||||
|
+ level=2 cgso=1.5n cgdo=1.5n cbd=4.5f cbs=4.5f ld=2.4485u nss=3.2e10 |
||||
|
+ kp=2e-5 phi=0.6 ) |
||||
|
.print tran v(20) v(66) |
||||
|
.plot tran v(20) v(66) |
||||
|
.end |
||||
@ -0,0 +1,27 @@ |
|||||
|
mosmem - mos memory cell |
||||
|
.width in=72 |
||||
|
.opt abstol=1u |
||||
|
.opt acct list node |
||||
|
.tran 20ns 2us |
||||
|
vdd 9 0 dc 5 |
||||
|
vs 7 0 pulse(2 0 520ns 20ns 20ns 500ns 2000ns) |
||||
|
vw 1 0 pulse(0 2 20ns 20ns 500ns 200ns) |
||||
|
vwb 2 0 pulse(2 0 20ns 20ns 20ns 2000ns 2000ns) |
||||
|
m1 3 1 0 0 mod w=250u l=5u |
||||
|
m2 4 2 0 0 mod w=250u l=5u |
||||
|
m3 9 9 3 0 mod w=5u l=5u |
||||
|
m4 9 9 4 0 mod w=5u l=5u |
||||
|
m5 5 7 3 0 mod w=50u l=5u |
||||
|
m6 6 7 4 0 mod w=50u l=5u |
||||
|
m7 5 6 0 0 mod w=250u l=5u |
||||
|
m8 6 5 0 0 mod w=250u l=5u |
||||
|
m9 9 9 5 0 mod w=5u l=5u |
||||
|
m10 9 9 6 0 mod w=5u l=5u |
||||
|
m11 8 4 0 0 mod w=250u l=5u |
||||
|
m12 9 9 8 0 mod w=5u l=5u |
||||
|
.model mod nmos(vto=0.5 phi=0.7 kp=1.0e-6 gamma=1.83 lambda=0.115 |
||||
|
+ level=1 cgso=1u cgdo=1u cbd=50p cbs=50p) |
||||
|
.print dc v(5) v(6) |
||||
|
.plot dc v(6) |
||||
|
.plot tran v(6) v(5) v(7) v(1) v(2) |
||||
|
.end |
||||
@ -0,0 +1,16 @@ |
|||||
|
Parameter defaults |
||||
|
* |
||||
|
* This circuit contains a code model with |
||||
|
* parameters of various types, which are all defaulted, |
||||
|
* and prints the default values. |
||||
|
* |
||||
|
.op |
||||
|
* |
||||
|
r1 1 0 1k |
||||
|
r2 2 0 1k |
||||
|
r3 1 2 1k |
||||
|
* |
||||
|
a1 [1 2] mod |
||||
|
.model mod print_param_types |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,23 @@ |
|||||
|
Parameter types |
||||
|
* |
||||
|
* This circuit contains a code model which accepts several |
||||
|
* parameters of various types and prints them. |
||||
|
* |
||||
|
.op |
||||
|
* |
||||
|
r1 1 0 1k |
||||
|
r2 2 0 1k |
||||
|
r3 1 2 1k |
||||
|
* |
||||
|
a1 [1 2] mod |
||||
|
.model mod print_param_types |
||||
|
+ integer=2 |
||||
|
+ real=3.0 |
||||
|
+ complex=<4.0 5.0> |
||||
|
+ string=six |
||||
|
+ integer_array=[7 8] |
||||
|
+ real_array=[9.0 10.0] |
||||
|
+ complex_array=[< 11.0 12.0 > < 13.0 14.0 >] |
||||
|
+ string_array=[fifteen sixteen] |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,16 @@ |
|||||
|
Parsing |
||||
|
* |
||||
|
* This circuit contains a simple gain block to demonstrate |
||||
|
* that the simulator parses the syntax used to reference |
||||
|
* code models. |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 sin(0 1 1k) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
a1 1 2 gain_block |
||||
|
.model gain_block gain (gain=10) |
||||
|
r2 2 0 1k |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,26 @@ |
|||||
|
Polarity of voltages and currents |
||||
|
* |
||||
|
* This circuit contains a set of gain blocks to evaluate |
||||
|
* the polarity of voltages and currents on code models |
||||
|
* |
||||
|
.tran 1e-5 1e-3 |
||||
|
* |
||||
|
v1 1 0 0.0 sin(0 1 1k) |
||||
|
* |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
* |
||||
|
a1 %v 1 %v 10 times10 |
||||
|
r10 10 0 1k |
||||
|
* |
||||
|
r1_2 1 2 1k |
||||
|
a2 %i 2 %v 11 times10 |
||||
|
r11 11 0 1k |
||||
|
* |
||||
|
a3 1 %i 12 times10 |
||||
|
r12 12 0 1k |
||||
|
* |
||||
|
* |
||||
|
.model times10 gain (gain=10) |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,33 @@ |
|||||
|
rca3040 ckt - rca 3040 wideband amplifier |
||||
|
.ac dec 10 1 10ghz |
||||
|
.dc vin -0.25 0.25 0.005 |
||||
|
.tran 2.0ns 200ns |
||||
|
vin 1 0 sin(0 0.1 50meg 0.5ns) ac 1 |
||||
|
vcc 2 0 15.0 |
||||
|
vee 3 0 -15.0 |
||||
|
rs1 30 1 1k |
||||
|
rs2 31 0 1k |
||||
|
r1 5 3 4.8k |
||||
|
r2 6 3 4.8k |
||||
|
r3 9 3 811 |
||||
|
r4 8 3 2.17k |
||||
|
r5 8 0 820 |
||||
|
r6 2 14 1.32k |
||||
|
r7 2 12 4.5k |
||||
|
r8 2 15 1.32k |
||||
|
r9 16 0 5.25k |
||||
|
r10 17 0 5.25k |
||||
|
q1 2 30 5 qnl |
||||
|
q2 2 31 6 qnl |
||||
|
q3 10 5 7 qnl |
||||
|
q4 11 6 7 qnl |
||||
|
q5 14 12 10 qnl |
||||
|
q6 15 12 11 qnl |
||||
|
q7 12 12 13 qnl |
||||
|
q8 13 13 0 qnl |
||||
|
q9 7 8 9 qnl |
||||
|
q10 2 15 16 qnl |
||||
|
q11 2 14 17 qnl |
||||
|
.model qnl npn bf=80 rb=100 ccs=2pf tf=0.3ns tr=6ns cje=3pf |
||||
|
+ cjc=2pf va 50 |
||||
|
.end |
||||
@ -0,0 +1,20 @@ |
|||||
|
rtlinv ckt - cascaded rtl inverters |
||||
|
.width in=72 |
||||
|
.opt acct list node lvlcod=2 |
||||
|
.dc vin 0.0 2.5 0.025 |
||||
|
.tran 2ns 200ns |
||||
|
vcc 6 0 5 |
||||
|
vin 1 0 pulse(0 5 2ns 2ns 2ns 80ns) |
||||
|
rb1 1 2 10k |
||||
|
rc1 6 3 1k |
||||
|
q1 3 2 0 qnd |
||||
|
rb2 3 4 10k |
||||
|
q2 5 4 0 qnd |
||||
|
rc2 6 5 1k |
||||
|
.model qnd npn(bf=50 rb=70 rc=40 ccs=2pf tf=0.1ns tr=10ns cje=0.9pf |
||||
|
+ cjc=1.5pf pc=0.85 va=50) |
||||
|
.print dc v(3) v(5) |
||||
|
.plot dc v(3) |
||||
|
.print tran v(3) v(5) |
||||
|
.plot tran v(3) v(5) v(1) |
||||
|
.end |
||||
@ -0,0 +1,24 @@ |
|||||
|
schmitt ckt - ecl compatible schmitt trigger |
||||
|
.width in=72 |
||||
|
.opt acct list node lvlcod=2 |
||||
|
.tran 10ns 1000ns |
||||
|
vin 1 0 pulse(-1.6 -1.2 10ns 400ns 400ns 100ns 10000ns) |
||||
|
vee 8 0 -5 |
||||
|
rin 1 2 50 |
||||
|
rc1 0 3 50 |
||||
|
r1 3 5 185 |
||||
|
r2 5 8 760 |
||||
|
rc2 0 6 100 |
||||
|
re 4 8 260 |
||||
|
rth1 7 8 125 |
||||
|
rth2 7 0 85 |
||||
|
cload 7 0 5pf |
||||
|
q1 3 2 4 qstd off |
||||
|
q2 6 5 4 qstd |
||||
|
q3 0 6 7 qstd |
||||
|
q4 0 6 7 qstd |
||||
|
.model qstd npn(is=1.0e-16 bf=50 br=0.1 rb=50 rc=10 tf=0.12ns tr=5ns |
||||
|
+ cje=0.4pf pe=0.8 me=0.4 cjc=0.5pf pc=0.8 mc=0.333 ccs=1pf va=50) |
||||
|
.print tran v(1) v(3) v(5) v(6) |
||||
|
.plot tran v(3) v(5) v(6) v(1) |
||||
|
.end |
||||
@ -0,0 +1,25 @@ |
|||||
|
A Berkeley SPICE3 compatible circuit |
||||
|
* |
||||
|
* This circuit contains only Berkeley SPICE3 components. |
||||
|
* |
||||
|
* The circuit is an AC coupled transistor amplifier with |
||||
|
* a sinewave input at node "1", a gain of approximately -3.9, |
||||
|
* and output on node "coll". |
||||
|
* |
||||
|
.tran 1e-5 2e-3 |
||||
|
* |
||||
|
vcc vcc 0 12.0 |
||||
|
vin 1 0 0.0 ac 1.0 sin(0 1 1k) |
||||
|
* |
||||
|
ccouple 1 base 10uF |
||||
|
* |
||||
|
rbias1 vcc base 100k |
||||
|
rbias2 base 0 24k |
||||
|
* |
||||
|
q1 coll base emit generic |
||||
|
.model generic npn |
||||
|
* |
||||
|
rcollector vcc coll 3.9k |
||||
|
remitter emit 0 1k |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,25 @@ |
|||||
|
Engineering suffixes |
||||
|
* |
||||
|
* This circuit contains a code model which accepts several |
||||
|
* parameters of various types and prints them. The values |
||||
|
* specified on the .model card use engineering suffixes on |
||||
|
* the numeric parameters. |
||||
|
* |
||||
|
.op |
||||
|
* |
||||
|
r1 1 0 1k |
||||
|
r2 2 0 1k |
||||
|
r3 1 2 1k |
||||
|
* |
||||
|
a1 [1 2] mod |
||||
|
.model mod print_param_types |
||||
|
+ integer=2k |
||||
|
+ real=3.0u |
||||
|
+ complex=< 4.0f 5.0mil > |
||||
|
+ string=six |
||||
|
+ integer_array=[7meg 8] |
||||
|
+ real_array=[9.0n 10.0p] |
||||
|
+ complex_array=[< 11.0t 12.0g > < 13.0m 14.0 >] |
||||
|
+ string_array=[fifteen sixteen] |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,30 @@ |
|||||
|
Supply ramping option |
||||
|
* |
||||
|
* This circuit demonstrates the use of the option |
||||
|
* "ramptime" which ramps independent sources and the |
||||
|
* capacitor and inductor initial conditions from |
||||
|
* zero to their final value during the time period |
||||
|
* specified. |
||||
|
* |
||||
|
* |
||||
|
.tran 0.1 5 |
||||
|
.option ramptime=0.2 |
||||
|
* |
||||
|
a1 1 0 cap |
||||
|
.model cap capacitor (c=1000uf ic=1) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
a2 2 0 ind |
||||
|
.model ind inductor (l=1H ic=1) |
||||
|
r2 2 0 1.0 |
||||
|
* |
||||
|
v1 3 0 1.0 |
||||
|
r3 3 0 1k |
||||
|
* |
||||
|
i1 4 0 1e-3 |
||||
|
r4 4 0 1k |
||||
|
* |
||||
|
v2 5 0 0.0 sin(0 1 0.3 0 0 45.0) |
||||
|
r5 5 0 1k |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,30 @@ |
|||||
|
User defined nodes |
||||
|
* |
||||
|
* This circuit contains a mix of node types including |
||||
|
* two 'real' type user-defined nodes and associated |
||||
|
* node bridges. |
||||
|
* |
||||
|
.tran 1e-6 1e-4 |
||||
|
* |
||||
|
v1 1 0 0.0 pulse(0 1 2e-5) |
||||
|
r1 1 0 1k |
||||
|
* |
||||
|
abridge1 [1] [enable] node_bridge1 |
||||
|
.model node_bridge1 adc_bridge |
||||
|
* |
||||
|
aclk [enable clk] clk nand |
||||
|
.model nand d_nand (rise_delay=1e-5 fall_delay=1e-5) |
||||
|
* |
||||
|
abridge2 clk enable real_node1 node_bridge2 |
||||
|
.model node_bridge2 d_to_real (zero=-1 one=1) |
||||
|
* |
||||
|
again real_node1 real_node2 times10 |
||||
|
.model times10 real_gain (gain=10) |
||||
|
* |
||||
|
abridge3 real_node2 analog_node node_bridge3 |
||||
|
.model node_bridge3 real_to_v |
||||
|
* |
||||
|
rout analog_node 0 1k |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
@ -0,0 +1,22 @@ |
|||||
|
A simple XSPICE amplifier circuit |
||||
|
* |
||||
|
* This uses an XSPICE "gain" code model to substitute for |
||||
|
* the transistor amplifier circuit in spice3.deck. |
||||
|
* |
||||
|
.tran 1e-5 2e-3 |
||||
|
* |
||||
|
vin 1 0 0.0 ac 1.0 sin(0 1 1k) |
||||
|
* |
||||
|
ccouple 1 in 10uF |
||||
|
* |
||||
|
* |
||||
|
rzin in 0 19.35k |
||||
|
* |
||||
|
aamp in coll gain_block |
||||
|
.model gain_block gain (gain = -3.9 out_offset = 7.003) |
||||
|
* |
||||
|
rzout out coll 3.9k |
||||
|
rbig coll 0 1e12 |
||||
|
* |
||||
|
* |
||||
|
.end |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue