Bugfixed last commit, fixed unit tests.

This commit is contained in:
Matthias Koefferlein 2019-05-29 00:51:42 +02:00
parent 9d01cb5282
commit 10667d8e35
25 changed files with 265 additions and 209 deletions

View File

@ -108,8 +108,8 @@ DeviceClassResistor::DeviceClassResistor ()
add_terminal_definition (db::DeviceTerminalDefinition ("B", "Terminal B"));
add_parameter_definition (db::DeviceParameterDefinition ("R", "Resistance (Ohm)", 0.0));
add_parameter_definition (db::DeviceParameterDefinition ("A", "Area (square micrometer)", 0.0));
add_parameter_definition (db::DeviceParameterDefinition ("P", "Perimeter (micrometer)", 0.0));
add_parameter_definition (db::DeviceParameterDefinition ("A", "Area (square micrometer)", 0.0, false));
add_parameter_definition (db::DeviceParameterDefinition ("P", "Perimeter (micrometer)", 0.0, false));
}
void DeviceClassResistor::parallel (Device *a, Device *b) const
@ -160,8 +160,8 @@ DeviceClassCapacitor::DeviceClassCapacitor ()
add_terminal_definition (db::DeviceTerminalDefinition ("B", "Terminal B"));
add_parameter_definition (db::DeviceParameterDefinition ("C", "Capacitance (Farad)", 0.0));
add_parameter_definition (db::DeviceParameterDefinition ("A", "Area (square micrometer)", 0.0));
add_parameter_definition (db::DeviceParameterDefinition ("P", "Perimeter (micrometer)", 0.0));
add_parameter_definition (db::DeviceParameterDefinition ("A", "Area (square micrometer)", 0.0, false));
add_parameter_definition (db::DeviceParameterDefinition ("P", "Perimeter (micrometer)", 0.0, false));
}
void DeviceClassCapacitor::serial (Device *a, Device *b) const

View File

@ -41,10 +41,10 @@ void NetlistDeviceExtractorMOS3Transistor::setup ()
define_layer ("SD", "Source/drain diffusion"); // #0
define_layer ("G", "Gate input"); // #1
// for backward compatibility
define_layer ("P", 1, "Gate terminal output"); // #2
define_layer ("P", 1, "Gate terminal output"); // #2 -> G
// terminal output
define_layer ("tG", 2, "Gate terminal output"); // #3
define_layer ("tG", 2, "Gate terminal output"); // #3 -> P -> G
define_layer ("tS", 0, "Source terminal output (default is SD)"); // #4
define_layer ("tD", 0, "Drain terminal output (default is SD)"); // #5
@ -158,24 +158,24 @@ void NetlistDeviceExtractorMOS4Transistor::setup ()
define_layer ("SD", "Source/drain diffusion"); // #0
define_layer ("G", "Gate input"); // #1
// for backward compatibility
define_layer ("P", 1, "Gate terminal output"); // #2
define_layer ("P", 1, "Gate terminal output"); // #2 -> G
// terminal output
define_layer ("tG", 1, "Gate terminal output"); // #3
define_layer ("tG", 2, "Gate terminal output"); // #3 -> P -> G
define_layer ("tS", 0, "Source terminal output (default is SD)"); // #4
define_layer ("tD", 0, "Drain terminal output (default is SD)"); // #5
// for backward compatibility
define_layer ("W", "Well (bulk) terminal output"); // #6
define_layer ("tB", 6, "Well (bulk) terminal output"); // #7
define_layer ("tB", 6, "Well (bulk) terminal output"); // #7 -> W
register_device_class (new db::DeviceClassMOS4Transistor ());
}
void NetlistDeviceExtractorMOS4Transistor::modify_device (const db::Polygon &rgate, const std::vector<db::Region> & /*layer_geometry*/, db::Device *device)
{
unsigned int bulk_terminal_geometry_index = 4;
unsigned int bulk_terminal_geometry_index = 7;
define_terminal (device, db::DeviceClassMOS4Transistor::terminal_id_B, bulk_terminal_geometry_index, rgate);
}
@ -190,10 +190,10 @@ NetlistDeviceExtractorResistor::NetlistDeviceExtractorResistor (const std::strin
void NetlistDeviceExtractorResistor::setup ()
{
define_layer ("R", "Resistor");
define_layer ("C", "Contacts");
define_layer ("tA", 1, "A terminal output");
define_layer ("tB", 1, "B terminal output");
define_layer ("R", "Resistor"); // #0
define_layer ("C", "Contacts"); // #1
define_layer ("tA", 1, "A terminal output"); // #2 -> C
define_layer ("tB", 1, "B terminal output"); // #3 -> C
register_device_class (new db::DeviceClassResistor ());
}
@ -291,10 +291,10 @@ NetlistDeviceExtractorCapacitor::NetlistDeviceExtractorCapacitor (const std::str
void NetlistDeviceExtractorCapacitor::setup ()
{
define_layer ("P1", "Plate 1");
define_layer ("P2", "Plate 2");
define_layer ("tA", 0, "A terminal output");
define_layer ("tB", 1, "B terminal output");
define_layer ("P1", "Plate 1"); // #0
define_layer ("P2", "Plate 2"); // #1
define_layer ("tA", 0, "A terminal output"); // #2 -> P1
define_layer ("tB", 1, "B terminal output"); // #3 -> P2
register_device_class (new db::DeviceClassCapacitor ());
}

View File

@ -37,8 +37,12 @@ TEST(1_SerialResistors)
db::Device *r1 = new db::Device (res, "r1");
r1->set_parameter_value (db::DeviceClassResistor::param_id_R, 1.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *r2 = new db::Device (res, "r2");
r2->set_parameter_value (db::DeviceClassResistor::param_id_R, 3.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);
@ -66,8 +70,8 @@ TEST(1_SerialResistors)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n3);\n"
" device '' r1 (A=n1,B=n2) (R=1);\n"
" device '' r2 (A=n2,B=n3) (R=3);\n"
" device '' r1 (A=n1,B=n2) (R=1,A=5,P=10);\n"
" device '' r2 (A=n2,B=n3) (R=3,A=1,P=2);\n"
"end;\n"
);
@ -76,7 +80,7 @@ TEST(1_SerialResistors)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n3);\n"
" device '' r1 (A=n1,B=n3) (R=4);\n"
" device '' r1 (A=n1,B=n3) (R=4,A=6,P=12);\n"
"end;\n"
);
}
@ -90,8 +94,12 @@ TEST(2_SerialResistors1Swapped)
db::Device *r1 = new db::Device (res, "r1");
r1->set_parameter_value (db::DeviceClassResistor::param_id_R, 1.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *r2 = new db::Device (res, "r2");
r2->set_parameter_value (db::DeviceClassResistor::param_id_R, 3.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);
@ -119,8 +127,8 @@ TEST(2_SerialResistors1Swapped)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n3);\n"
" device '' r1 (A=n1,B=n2) (R=1);\n"
" device '' r2 (A=n3,B=n2) (R=3);\n"
" device '' r1 (A=n1,B=n2) (R=1,A=5,P=10);\n"
" device '' r2 (A=n3,B=n2) (R=3,A=1,P=2);\n"
"end;\n"
);
@ -129,7 +137,7 @@ TEST(2_SerialResistors1Swapped)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n3);\n"
" device '' r1 (A=n1,B=n3) (R=4);\n"
" device '' r1 (A=n1,B=n3) (R=4,A=6,P=12);\n"
"end;\n"
);
}
@ -143,8 +151,12 @@ TEST(3_SerialResistors1OtherSwapped)
db::Device *r1 = new db::Device (res, "r1");
r1->set_parameter_value (db::DeviceClassResistor::param_id_R, 1.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *r2 = new db::Device (res, "r2");
r2->set_parameter_value (db::DeviceClassResistor::param_id_R, 3.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);
@ -172,8 +184,8 @@ TEST(3_SerialResistors1OtherSwapped)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n3);\n"
" device '' r1 (A=n2,B=n1) (R=1);\n"
" device '' r2 (A=n2,B=n3) (R=3);\n"
" device '' r1 (A=n2,B=n1) (R=1,A=5,P=10);\n"
" device '' r2 (A=n2,B=n3) (R=3,A=1,P=2);\n"
"end;\n"
);
@ -182,7 +194,7 @@ TEST(3_SerialResistors1OtherSwapped)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n3);\n"
" device '' r1 (A=n3,B=n1) (R=4);\n"
" device '' r1 (A=n3,B=n1) (R=4,A=6,P=12);\n"
"end;\n"
);
}
@ -196,8 +208,12 @@ TEST(4_SerialResistors2Swapped)
db::Device *r1 = new db::Device (res, "r1");
r1->set_parameter_value (db::DeviceClassResistor::param_id_R, 1.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *r2 = new db::Device (res, "r2");
r2->set_parameter_value (db::DeviceClassResistor::param_id_R, 3.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);
@ -225,8 +241,8 @@ TEST(4_SerialResistors2Swapped)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n3);\n"
" device '' r1 (A=n2,B=n1) (R=1);\n"
" device '' r2 (A=n3,B=n2) (R=3);\n"
" device '' r1 (A=n2,B=n1) (R=1,A=5,P=10);\n"
" device '' r2 (A=n3,B=n2) (R=3,A=1,P=2);\n"
"end;\n"
);
@ -235,7 +251,7 @@ TEST(4_SerialResistors2Swapped)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n3);\n"
" device '' r1 (A=n3,B=n1) (R=4);\n"
" device '' r1 (A=n3,B=n1) (R=4,A=6,P=12);\n"
"end;\n"
);
}
@ -249,8 +265,12 @@ TEST(5_SerialResistorsNoCombination)
db::Device *r1 = new db::Device (res, "r1");
r1->set_parameter_value (db::DeviceClassResistor::param_id_R, 1.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *r2 = new db::Device (res, "r2");
r2->set_parameter_value (db::DeviceClassResistor::param_id_R, 3.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);
@ -280,8 +300,8 @@ TEST(5_SerialResistorsNoCombination)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n3,C=n2);\n"
" device '' r1 (A=n1,B=n2) (R=1);\n"
" device '' r2 (A=n2,B=n3) (R=3);\n"
" device '' r1 (A=n1,B=n2) (R=1,A=5,P=10);\n"
" device '' r2 (A=n2,B=n3) (R=3,A=1,P=2);\n"
"end;\n"
);
@ -290,8 +310,8 @@ TEST(5_SerialResistorsNoCombination)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n3,C=n2);\n"
" device '' r1 (A=n1,B=n2) (R=1);\n"
" device '' r2 (A=n2,B=n3) (R=3);\n"
" device '' r1 (A=n1,B=n2) (R=1,A=5,P=10);\n"
" device '' r2 (A=n2,B=n3) (R=3,A=1,P=2);\n"
"end;\n"
);
}
@ -305,8 +325,12 @@ TEST(6_ParallelResistors)
db::Device *r1 = new db::Device (res, "r1");
r1->set_parameter_value (db::DeviceClassResistor::param_id_R, 2.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *r2 = new db::Device (res, "r2");
r2->set_parameter_value (db::DeviceClassResistor::param_id_R, 3.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);
@ -331,8 +355,8 @@ TEST(6_ParallelResistors)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n2);\n"
" device '' r1 (A=n1,B=n2) (R=2);\n"
" device '' r2 (A=n1,B=n2) (R=3);\n"
" device '' r1 (A=n1,B=n2) (R=2,A=5,P=10);\n"
" device '' r2 (A=n1,B=n2) (R=3,A=1,P=2);\n"
"end;\n"
);
@ -341,7 +365,7 @@ TEST(6_ParallelResistors)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n2);\n"
" device '' r1 (A=n1,B=n2) (R=1.2);\n"
" device '' r1 (A=n1,B=n2) (R=1.2,A=6,P=12);\n"
"end;\n"
);
}
@ -355,8 +379,12 @@ TEST(7_ParallelResistors1Swapped)
db::Device *r1 = new db::Device (res, "r1");
r1->set_parameter_value (db::DeviceClassResistor::param_id_R, 2.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *r2 = new db::Device (res, "r2");
r2->set_parameter_value (db::DeviceClassResistor::param_id_R, 3.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);
@ -381,8 +409,8 @@ TEST(7_ParallelResistors1Swapped)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n2);\n"
" device '' r1 (A=n2,B=n1) (R=2);\n"
" device '' r2 (A=n1,B=n2) (R=3);\n"
" device '' r1 (A=n2,B=n1) (R=2,A=5,P=10);\n"
" device '' r2 (A=n1,B=n2) (R=3,A=1,P=2);\n"
"end;\n"
);
@ -391,7 +419,7 @@ TEST(7_ParallelResistors1Swapped)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n2);\n"
" device '' r1 (A=n2,B=n1) (R=1.2);\n"
" device '' r1 (A=n2,B=n1) (R=1.2,A=6,P=12);\n"
"end;\n"
);
}
@ -405,8 +433,12 @@ TEST(8_ParallelResistors1OtherSwapped)
db::Device *r1 = new db::Device (res, "r1");
r1->set_parameter_value (db::DeviceClassResistor::param_id_R, 2.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *r2 = new db::Device (res, "r2");
r2->set_parameter_value (db::DeviceClassResistor::param_id_R, 3.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);
@ -431,8 +463,8 @@ TEST(8_ParallelResistors1OtherSwapped)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n2);\n"
" device '' r1 (A=n1,B=n2) (R=2);\n"
" device '' r2 (A=n2,B=n1) (R=3);\n"
" device '' r1 (A=n1,B=n2) (R=2,A=5,P=10);\n"
" device '' r2 (A=n2,B=n1) (R=3,A=1,P=2);\n"
"end;\n"
);
@ -441,7 +473,7 @@ TEST(8_ParallelResistors1OtherSwapped)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n2);\n"
" device '' r1 (A=n1,B=n2) (R=1.2);\n"
" device '' r1 (A=n1,B=n2) (R=1.2,A=6,P=12);\n"
"end;\n"
);
}
@ -455,8 +487,12 @@ TEST(9_ParallelResistors2Swapped)
db::Device *r1 = new db::Device (res, "r1");
r1->set_parameter_value (db::DeviceClassResistor::param_id_R, 2.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *r2 = new db::Device (res, "r2");
r2->set_parameter_value (db::DeviceClassResistor::param_id_R, 3.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);
@ -481,8 +517,8 @@ TEST(9_ParallelResistors2Swapped)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n2);\n"
" device '' r1 (A=n2,B=n1) (R=2);\n"
" device '' r2 (A=n2,B=n1) (R=3);\n"
" device '' r1 (A=n2,B=n1) (R=2,A=5,P=10);\n"
" device '' r2 (A=n2,B=n1) (R=3,A=1,P=2);\n"
"end;\n"
);
@ -491,7 +527,7 @@ TEST(9_ParallelResistors2Swapped)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n2);\n"
" device '' r1 (A=n2,B=n1) (R=1.2);\n"
" device '' r1 (A=n2,B=n1) (R=1.2,A=6,P=12);\n"
"end;\n"
);
}
@ -514,12 +550,20 @@ TEST(10_ComplexRegistorCombination)
db::Device *r1 = new db::Device (res, "r1");
r1->set_parameter_value (db::DeviceClassResistor::param_id_R, 1.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_A, 2.0);
r1->set_parameter_value (db::DeviceClassResistor::param_id_P, 3.0);
db::Device *r2 = new db::Device (res, "r2");
r2->set_parameter_value (db::DeviceClassResistor::param_id_R, 1.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_A, 4.0);
r2->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *r3 = new db::Device (res, "r3");
r3->set_parameter_value (db::DeviceClassResistor::param_id_R, 3.0);
r3->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
r3->set_parameter_value (db::DeviceClassResistor::param_id_P, 1.0);
db::Device *r4 = new db::Device (res, "r4");
r4->set_parameter_value (db::DeviceClassResistor::param_id_R, 0.8);
r4->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
r4->set_parameter_value (db::DeviceClassResistor::param_id_P, 1.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);
@ -556,10 +600,10 @@ TEST(10_ComplexRegistorCombination)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n4);\n"
" device '' r1 (A=n1,B=n2) (R=1);\n"
" device '' r2 (A=n2,B=n3) (R=1);\n"
" device '' r3 (A=n1,B=n3) (R=3);\n"
" device '' r4 (A=n3,B=n4) (R=0.8);\n"
" device '' r1 (A=n1,B=n2) (R=1,A=2,P=3);\n"
" device '' r2 (A=n2,B=n3) (R=1,A=4,P=10);\n"
" device '' r3 (A=n1,B=n3) (R=3,A=1,P=1);\n"
" device '' r4 (A=n3,B=n4) (R=0.8,A=1,P=1);\n"
"end;\n"
);
@ -568,7 +612,7 @@ TEST(10_ComplexRegistorCombination)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n4);\n"
" device '' r4 (A=n1,B=n4) (R=2);\n"
" device '' r4 (A=n1,B=n4) (R=2,A=8,P=15);\n"
"end;\n"
);
}
@ -685,8 +729,12 @@ TEST(13_SerialCapacitors)
db::Device *c1 = new db::Device (cap, "c1");
c1->set_parameter_value (db::DeviceClassCapacitor::param_id_C, 2.0);
c1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
c1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *c2 = new db::Device (cap, "c2");
c2->set_parameter_value (db::DeviceClassCapacitor::param_id_C, 3.0);
c2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
c2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);
@ -714,8 +762,8 @@ TEST(13_SerialCapacitors)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n3);\n"
" device '' c1 (A=n1,B=n2) (C=2);\n"
" device '' c2 (A=n2,B=n3) (C=3);\n"
" device '' c1 (A=n1,B=n2) (C=2,A=5,P=10);\n"
" device '' c2 (A=n2,B=n3) (C=3,A=1,P=2);\n"
"end;\n"
);
@ -724,7 +772,7 @@ TEST(13_SerialCapacitors)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n3);\n"
" device '' c1 (A=n1,B=n3) (C=1.2);\n"
" device '' c1 (A=n1,B=n3) (C=1.2,A=6,P=12);\n"
"end;\n"
);
}
@ -738,8 +786,12 @@ TEST(14_ParallelCapacitors)
db::Device *c1 = new db::Device (cap, "c1");
c1->set_parameter_value (db::DeviceClassCapacitor::param_id_C, 1.0);
c1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
c1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *c2 = new db::Device (cap, "c2");
c2->set_parameter_value (db::DeviceClassCapacitor::param_id_C, 3.0);
c2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
c2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);
@ -764,8 +816,8 @@ TEST(14_ParallelCapacitors)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n2);\n"
" device '' c1 (A=n1,B=n2) (C=1);\n"
" device '' c2 (A=n1,B=n2) (C=3);\n"
" device '' c1 (A=n1,B=n2) (C=1,A=5,P=10);\n"
" device '' c2 (A=n1,B=n2) (C=3,A=1,P=2);\n"
"end;\n"
);
@ -774,7 +826,7 @@ TEST(14_ParallelCapacitors)
EXPECT_EQ (nl.to_string (),
"circuit '' (A=n1,B=n2);\n"
" device '' c1 (A=n1,B=n2) (C=4);\n"
" device '' c1 (A=n1,B=n2) (C=4,A=6,P=12);\n"
"end;\n"
);
}
@ -788,8 +840,12 @@ TEST(15_SerialDiodes)
db::Device *d1 = new db::Device (diode, "d1");
d1->set_parameter_value (db::DeviceClassDiode::param_id_A, 2.0);
d1->set_parameter_value (db::DeviceClassResistor::param_id_A, 5.0);
d1->set_parameter_value (db::DeviceClassResistor::param_id_P, 10.0);
db::Device *d2 = new db::Device (diode, "d2");
d2->set_parameter_value (db::DeviceClassDiode::param_id_A, 3.0);
d2->set_parameter_value (db::DeviceClassCapacitor::param_id_C, 3.0);
d2->set_parameter_value (db::DeviceClassResistor::param_id_A, 1.0);
d2->set_parameter_value (db::DeviceClassResistor::param_id_P, 2.0);
db::Circuit *circuit = new db::Circuit ();
nl.add_circuit (circuit);

View File

@ -40,9 +40,9 @@ TEST(1_BasicReader)
EXPECT_EQ (nl.to_string (),
"circuit TOP ($1='1',$2='2',$3='4',$4='7');\n"
" device RES $1 (A='6',B='1') (R=7650);\n"
" device RES $2 (A='3',B='1') (R=7650);\n"
" device RES $3 (A='3',B='2') (R=2670);\n"
" device RES $1 (A='6',B='1') (R=7650,A=0,P=0);\n"
" device RES $2 (A='3',B='1') (R=7650,A=0,P=0);\n"
" device RES $3 (A='3',B='2') (R=2670,A=0,P=0);\n"
" device MHVPMOS $4 (S='6',G='4',D='7',B='7') (L=0.25,W=1.5,AS=0.63,AD=0.63,PS=3.84,PD=3.84);\n"
"end;\n"
);

View File

@ -196,7 +196,7 @@ circuit(INV2X
# Devices and their connections
device(1 D$PMOS
device(D$PMOS$1 800 0)
device(D$PMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)
@ -215,7 +215,7 @@ circuit(INV2X
terminal(D 4)
)
device(3 D$NMOS
device(D$NMOS$1 800 0)
device(D$NMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)
@ -429,7 +429,7 @@ circuit(INV2ALT
# Devices and their connections
device(1 D$PMOS$2
device(D$PMOS$3 -900 -1400)
device(D$PMOS$3 location(-900 -1400))
connect(0 S S)
connect(1 S D)
connect(0 G G)
@ -448,7 +448,7 @@ circuit(INV2ALT
terminal(D 3)
)
device(3 D$NMOS$2
device(D$NMOS$3 -1700 -700)
device(D$NMOS$3 location(-1700 -700))
connect(0 S S)
connect(1 S S)
connect(0 G G)

View File

@ -196,7 +196,7 @@ circuit(INV2X
# Devices and their connections
device(1 D$PMOS
device(D$PMOS$1 800 0)
device(D$PMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)
@ -215,7 +215,7 @@ circuit(INV2X
terminal(D 4)
)
device(2 D$NMOS
device(D$NMOS$1 800 0)
device(D$NMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)
@ -429,7 +429,7 @@ circuit(INV2ALT
# Devices and their connections
device(1 D$PMOS$2
device(D$PMOS$3 -900 -1400)
device(D$PMOS$3 location(-900 -1400))
connect(0 S S)
connect(1 S D)
connect(0 G G)
@ -448,7 +448,7 @@ circuit(INV2ALT
terminal(D 3)
)
device(2 D$NMOS$2
device(D$NMOS$3 -1700 -700)
device(D$NMOS$3 location(-1700 -700))
connect(0 S S)
connect(1 S S)
connect(0 G G)

View File

@ -212,7 +212,7 @@ layout(
# Devices and their connections
device(1 D$PMOS
device(D$PMOS$1 800 0)
device(D$PMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)
@ -234,7 +234,7 @@ layout(
terminal(B 1)
)
device(3 D$NMOS
device(D$NMOS$1 800 0)
device(D$NMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)

View File

@ -212,7 +212,7 @@ layout(
# Devices and their connections
device(1 D$PMOS
device(D$PMOS$1 800 0)
device(D$PMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)
@ -234,7 +234,7 @@ layout(
terminal(B 1)
)
device(2 D$NMOS
device(D$NMOS$1 800 0)
device(D$NMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)

View File

@ -212,7 +212,7 @@ layout(
# Devices and their connections
device(1 D$PMOS
device(D$PMOS$1 800 0)
device(D$PMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)
@ -234,7 +234,7 @@ layout(
terminal(B 1)
)
device(3 D$NMOS
device(D$NMOS$1 800 0)
device(D$NMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)

View File

@ -212,7 +212,7 @@ layout(
# Devices and their connections
device(1 D$PMOS
device(D$PMOS$1 800 0)
device(D$PMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)
@ -234,7 +234,7 @@ layout(
terminal(B 1)
)
device(2 D$NMOS
device(D$NMOS$1 800 0)
device(D$NMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)

View File

@ -209,205 +209,205 @@
* net 99 n98
* net 100 n99
* net 101 n100
* device instance $1 0,0 RCLS
* device instance $1 r0 *1 0,0 RCLS
R$1 1 2 0
* device instance $2 0,0 RCLS
* device instance $2 r0 *1 0,0 RCLS
R$2 1 3 0
* device instance $3 0,0 RCLS
* device instance $3 r0 *1 0,0 RCLS
R$3 1 4 0
* device instance $4 0,0 RCLS
* device instance $4 r0 *1 0,0 RCLS
R$4 1 5 0
* device instance $5 0,0 RCLS
* device instance $5 r0 *1 0,0 RCLS
R$5 1 6 0
* device instance $6 0,0 RCLS
* device instance $6 r0 *1 0,0 RCLS
R$6 1 7 0
* device instance $7 0,0 RCLS
* device instance $7 r0 *1 0,0 RCLS
R$7 1 8 0
* device instance $8 0,0 RCLS
* device instance $8 r0 *1 0,0 RCLS
R$8 1 9 0
* device instance $9 0,0 RCLS
* device instance $9 r0 *1 0,0 RCLS
R$9 1 10 0
* device instance $10 0,0 RCLS
* device instance $10 r0 *1 0,0 RCLS
R$10 1 11 0
* device instance $11 0,0 RCLS
* device instance $11 r0 *1 0,0 RCLS
R$11 1 12 0
* device instance $12 0,0 RCLS
* device instance $12 r0 *1 0,0 RCLS
R$12 1 13 0
* device instance $13 0,0 RCLS
* device instance $13 r0 *1 0,0 RCLS
R$13 1 14 0
* device instance $14 0,0 RCLS
* device instance $14 r0 *1 0,0 RCLS
R$14 1 15 0
* device instance $15 0,0 RCLS
* device instance $15 r0 *1 0,0 RCLS
R$15 1 16 0
* device instance $16 0,0 RCLS
* device instance $16 r0 *1 0,0 RCLS
R$16 1 17 0
* device instance $17 0,0 RCLS
* device instance $17 r0 *1 0,0 RCLS
R$17 1 18 0
* device instance $18 0,0 RCLS
* device instance $18 r0 *1 0,0 RCLS
R$18 1 19 0
* device instance $19 0,0 RCLS
* device instance $19 r0 *1 0,0 RCLS
R$19 1 20 0
* device instance $20 0,0 RCLS
* device instance $20 r0 *1 0,0 RCLS
R$20 1 21 0
* device instance $21 0,0 RCLS
* device instance $21 r0 *1 0,0 RCLS
R$21 1 22 0
* device instance $22 0,0 RCLS
* device instance $22 r0 *1 0,0 RCLS
R$22 1 23 0
* device instance $23 0,0 RCLS
* device instance $23 r0 *1 0,0 RCLS
R$23 1 24 0
* device instance $24 0,0 RCLS
* device instance $24 r0 *1 0,0 RCLS
R$24 1 25 0
* device instance $25 0,0 RCLS
* device instance $25 r0 *1 0,0 RCLS
R$25 1 26 0
* device instance $26 0,0 RCLS
* device instance $26 r0 *1 0,0 RCLS
R$26 1 27 0
* device instance $27 0,0 RCLS
* device instance $27 r0 *1 0,0 RCLS
R$27 1 28 0
* device instance $28 0,0 RCLS
* device instance $28 r0 *1 0,0 RCLS
R$28 1 29 0
* device instance $29 0,0 RCLS
* device instance $29 r0 *1 0,0 RCLS
R$29 1 30 0
* device instance $30 0,0 RCLS
* device instance $30 r0 *1 0,0 RCLS
R$30 1 31 0
* device instance $31 0,0 RCLS
* device instance $31 r0 *1 0,0 RCLS
R$31 1 32 0
* device instance $32 0,0 RCLS
* device instance $32 r0 *1 0,0 RCLS
R$32 1 33 0
* device instance $33 0,0 RCLS
* device instance $33 r0 *1 0,0 RCLS
R$33 1 34 0
* device instance $34 0,0 RCLS
* device instance $34 r0 *1 0,0 RCLS
R$34 1 35 0
* device instance $35 0,0 RCLS
* device instance $35 r0 *1 0,0 RCLS
R$35 1 36 0
* device instance $36 0,0 RCLS
* device instance $36 r0 *1 0,0 RCLS
R$36 1 37 0
* device instance $37 0,0 RCLS
* device instance $37 r0 *1 0,0 RCLS
R$37 1 38 0
* device instance $38 0,0 RCLS
* device instance $38 r0 *1 0,0 RCLS
R$38 1 39 0
* device instance $39 0,0 RCLS
* device instance $39 r0 *1 0,0 RCLS
R$39 1 40 0
* device instance $40 0,0 RCLS
* device instance $40 r0 *1 0,0 RCLS
R$40 1 41 0
* device instance $41 0,0 RCLS
* device instance $41 r0 *1 0,0 RCLS
R$41 1 42 0
* device instance $42 0,0 RCLS
* device instance $42 r0 *1 0,0 RCLS
R$42 1 43 0
* device instance $43 0,0 RCLS
* device instance $43 r0 *1 0,0 RCLS
R$43 1 44 0
* device instance $44 0,0 RCLS
* device instance $44 r0 *1 0,0 RCLS
R$44 1 45 0
* device instance $45 0,0 RCLS
* device instance $45 r0 *1 0,0 RCLS
R$45 1 46 0
* device instance $46 0,0 RCLS
* device instance $46 r0 *1 0,0 RCLS
R$46 1 47 0
* device instance $47 0,0 RCLS
* device instance $47 r0 *1 0,0 RCLS
R$47 1 48 0
* device instance $48 0,0 RCLS
* device instance $48 r0 *1 0,0 RCLS
R$48 1 49 0
* device instance $49 0,0 RCLS
* device instance $49 r0 *1 0,0 RCLS
R$49 1 50 0
* device instance $50 0,0 RCLS
* device instance $50 r0 *1 0,0 RCLS
R$50 1 51 0
* device instance $51 0,0 RCLS
* device instance $51 r0 *1 0,0 RCLS
R$51 1 52 0
* device instance $52 0,0 RCLS
* device instance $52 r0 *1 0,0 RCLS
R$52 1 53 0
* device instance $53 0,0 RCLS
* device instance $53 r0 *1 0,0 RCLS
R$53 1 54 0
* device instance $54 0,0 RCLS
* device instance $54 r0 *1 0,0 RCLS
R$54 1 55 0
* device instance $55 0,0 RCLS
* device instance $55 r0 *1 0,0 RCLS
R$55 1 56 0
* device instance $56 0,0 RCLS
* device instance $56 r0 *1 0,0 RCLS
R$56 1 57 0
* device instance $57 0,0 RCLS
* device instance $57 r0 *1 0,0 RCLS
R$57 1 58 0
* device instance $58 0,0 RCLS
* device instance $58 r0 *1 0,0 RCLS
R$58 1 59 0
* device instance $59 0,0 RCLS
* device instance $59 r0 *1 0,0 RCLS
R$59 1 60 0
* device instance $60 0,0 RCLS
* device instance $60 r0 *1 0,0 RCLS
R$60 1 61 0
* device instance $61 0,0 RCLS
* device instance $61 r0 *1 0,0 RCLS
R$61 1 62 0
* device instance $62 0,0 RCLS
* device instance $62 r0 *1 0,0 RCLS
R$62 1 63 0
* device instance $63 0,0 RCLS
* device instance $63 r0 *1 0,0 RCLS
R$63 1 64 0
* device instance $64 0,0 RCLS
* device instance $64 r0 *1 0,0 RCLS
R$64 1 65 0
* device instance $65 0,0 RCLS
* device instance $65 r0 *1 0,0 RCLS
R$65 1 66 0
* device instance $66 0,0 RCLS
* device instance $66 r0 *1 0,0 RCLS
R$66 1 67 0
* device instance $67 0,0 RCLS
* device instance $67 r0 *1 0,0 RCLS
R$67 1 68 0
* device instance $68 0,0 RCLS
* device instance $68 r0 *1 0,0 RCLS
R$68 1 69 0
* device instance $69 0,0 RCLS
* device instance $69 r0 *1 0,0 RCLS
R$69 1 70 0
* device instance $70 0,0 RCLS
* device instance $70 r0 *1 0,0 RCLS
R$70 1 71 0
* device instance $71 0,0 RCLS
* device instance $71 r0 *1 0,0 RCLS
R$71 1 72 0
* device instance $72 0,0 RCLS
* device instance $72 r0 *1 0,0 RCLS
R$72 1 73 0
* device instance $73 0,0 RCLS
* device instance $73 r0 *1 0,0 RCLS
R$73 1 74 0
* device instance $74 0,0 RCLS
* device instance $74 r0 *1 0,0 RCLS
R$74 1 75 0
* device instance $75 0,0 RCLS
* device instance $75 r0 *1 0,0 RCLS
R$75 1 76 0
* device instance $76 0,0 RCLS
* device instance $76 r0 *1 0,0 RCLS
R$76 1 77 0
* device instance $77 0,0 RCLS
* device instance $77 r0 *1 0,0 RCLS
R$77 1 78 0
* device instance $78 0,0 RCLS
* device instance $78 r0 *1 0,0 RCLS
R$78 1 79 0
* device instance $79 0,0 RCLS
* device instance $79 r0 *1 0,0 RCLS
R$79 1 80 0
* device instance $80 0,0 RCLS
* device instance $80 r0 *1 0,0 RCLS
R$80 1 81 0
* device instance $81 0,0 RCLS
* device instance $81 r0 *1 0,0 RCLS
R$81 1 82 0
* device instance $82 0,0 RCLS
* device instance $82 r0 *1 0,0 RCLS
R$82 1 83 0
* device instance $83 0,0 RCLS
* device instance $83 r0 *1 0,0 RCLS
R$83 1 84 0
* device instance $84 0,0 RCLS
* device instance $84 r0 *1 0,0 RCLS
R$84 1 85 0
* device instance $85 0,0 RCLS
* device instance $85 r0 *1 0,0 RCLS
R$85 1 86 0
* device instance $86 0,0 RCLS
* device instance $86 r0 *1 0,0 RCLS
R$86 1 87 0
* device instance $87 0,0 RCLS
* device instance $87 r0 *1 0,0 RCLS
R$87 1 88 0
* device instance $88 0,0 RCLS
* device instance $88 r0 *1 0,0 RCLS
R$88 1 89 0
* device instance $89 0,0 RCLS
* device instance $89 r0 *1 0,0 RCLS
R$89 1 90 0
* device instance $90 0,0 RCLS
* device instance $90 r0 *1 0,0 RCLS
R$90 1 91 0
* device instance $91 0,0 RCLS
* device instance $91 r0 *1 0,0 RCLS
R$91 1 92 0
* device instance $92 0,0 RCLS
* device instance $92 r0 *1 0,0 RCLS
R$92 1 93 0
* device instance $93 0,0 RCLS
* device instance $93 r0 *1 0,0 RCLS
R$93 1 94 0
* device instance $94 0,0 RCLS
* device instance $94 r0 *1 0,0 RCLS
R$94 1 95 0
* device instance $95 0,0 RCLS
* device instance $95 r0 *1 0,0 RCLS
R$95 1 96 0
* device instance $96 0,0 RCLS
* device instance $96 r0 *1 0,0 RCLS
R$96 1 97 0
* device instance $97 0,0 RCLS
* device instance $97 r0 *1 0,0 RCLS
R$97 1 98 0
* device instance $98 0,0 RCLS
* device instance $98 r0 *1 0,0 RCLS
R$98 1 99 0
* device instance $99 0,0 RCLS
* device instance $99 r0 *1 0,0 RCLS
R$99 1 100 0
* device instance $100 0,0 RCLS
* device instance $100 r0 *1 0,0 RCLS
R$100 1 101 0
.ENDS
+ C1withaverylongextensionthatgoesbeyondmultiplelinesunlessipasteeverythingtogetherwhichmakesithardtoreadbutexactlythatisthereasonwhyiwriteitthisway

View File

@ -27,8 +27,8 @@ XSC2 3 7 4 3 C1
* net 3 n3
* net 4 n4
* net 5 n5
* device instance $1 0,0 M4CLS
* device instance $1 r0 *1 0,0 M4CLS
M$1 1 4 3 5 M4CLS L=0.25U W=0.18U AS=1.2P AD=0.75P PS=2.2U PD=1.75U
* device instance $2 0,0 M4CLS
* device instance $2 r0 *1 0,0 M4CLS
M$2 3 4 2 5 M4CLS L=1.4U W=0.25U AS=1.3P AD=0.85P PS=2.3U PD=1.85U
.ENDS C1

View File

@ -17,8 +17,8 @@ XSC2 n3 nc_12 n4 n3 C1
* pin p3
* pin p4
.SUBCKT C1 n1 n2 n4 n5
* device instance $1 0,0 M4CLS
* device instance $1 r0 *1 0,0 M4CLS
M$1 n1 n4 n3 n5 M4CLS L=0.25U W=0.18U AS=1.2P AD=0.75P PS=2.2U PD=1.75U
* device instance $2 0,0 M4CLS
* device instance $2 r0 *1 0,0 M4CLS
M$2 n3 n4 n2 n5 M4CLS L=1.4U W=0.25U AS=1.3P AD=0.85P PS=2.3U PD=1.85U
.ENDS C1

View File

@ -7,8 +7,8 @@
* net 1 n1
* net 2 n2
* net 3 n3
* device instance $1 0,0 RCLS
* device instance $1 r0 *1 0,0 RCLS
R$1 1 3 1.7
* device instance $2 0,0 RCLS
* device instance $2 r0 *1 0,0 RCLS
R$2 3 2 4.2e-05
.ENDS C1

View File

@ -14,11 +14,11 @@
* net 1 n1
* net 2 n2
* net 3 n3
* device instance $1 0,0 RCLS
* device instance $1 r0 *1 0,0 RCLS
*** Before device $1
R$1 1 3 1.7
*** After device $1
* device instance $2 0,0 RCLS
* device instance $2 r0 *1 0,0 RCLS
*** Before device $2
R$2 3 2 4.2e-05
*** After device $2

View File

@ -7,8 +7,8 @@
* net 1 n1
* net 2 n2
* net 3 n3
* device instance $1 0,0 CCLS
* device instance $1 r0 *1 0,0 CCLS
C$1 1 3 1.7e-12
* device instance $2 0,0 CCLS
* device instance $2 r0 *1 0,0 CCLS
C$2 3 2 4.2e-14
.ENDS C1

View File

@ -7,8 +7,8 @@
* net 1 n1
* net 2 n2
* net 3 n3
* device instance $1 0,0 LCLS
* device instance $1 r0 *1 0,0 LCLS
L$1 1 3 1.7e-10
* device instance $2 0,0 LCLS
* device instance $2 r0 *1 0,0 LCLS
L$2 3 2 4.2e-08
.ENDS C1

View File

@ -7,8 +7,8 @@
* net 1 n1
* net 2 n2
* net 3 n3
* device instance $1 0,0 DCLS
* device instance $1 r0 *1 0,0 DCLS
D$1 1 3 DDCLS
* device instance $2 0,0 DCLS
* device instance $2 r0 *1 0,0 DCLS
D$2 3 2 DDCLS
.ENDS C1

View File

@ -9,8 +9,8 @@
* net 2 n2
* net 3 n3
* net 4 n4
* device instance $1 0,0 M3CLS
* device instance $1 r0 *1 0,0 M3CLS
M$1 1 4 3 1 M3CLS L=0.25U W=0.18U AS=1.2P AD=0.75P PS=2.2U PD=1.75U
* device instance $2 0,0 M3CLS
* device instance $2 r0 *1 0,0 M3CLS
M$2 3 4 2 3 M3CLS L=1.4U W=0.25U AS=1.3P AD=0.85P PS=2.3U PD=1.85U
.ENDS C1

View File

@ -11,8 +11,8 @@
* net 3 n3
* net 4 n4
* net 5 n5
* device instance $1 0,0 M4CLS
* device instance $1 r0 *1 0,0 M4CLS
M$1 1 4 3 5 M4CLS L=0.25U W=0.18U AS=1.2P AD=0.75P PS=2.2U PD=1.75U
* device instance $2 0,0 M4CLS
* device instance $2 r0 *1 0,0 M4CLS
M$2 3 4 2 5 M4CLS L=1.4U W=0.25U AS=1.3P AD=0.85P PS=2.3U PD=1.85U
.ENDS C1

View File

@ -7,8 +7,8 @@
* net 1 n1
* net 2 n2
* net 3 n3
* device instance $1 0,0 XCLS
* device instance $1 r0 *1 0,0 XCLS
XD_$1 1 3 XCLS PARAMS: U=-17 V=42
* device instance $2 0,0 XCLS
* device instance $2 r0 *1 0,0 XCLS
XD_$2 3 2 XCLS PARAMS: U=17 V=-42
.ENDS C1

View File

@ -27,8 +27,8 @@ XSC2 3 2 4 3 C1
* net 3 n3
* net 4 n4
* net 5 n5
* device instance $1 0,0 M4CLS
* device instance $1 r0 *1 0,0 M4CLS
M$1 1 4 3 5 M4CLS L=0.25U W=0.18U AS=1.2P AD=0.75P PS=2.2U PD=1.75U
* device instance $2 0,0 M4CLS
* device instance $2 r0 *1 0,0 M4CLS
M$2 3 4 2 5 M4CLS L=1.4U W=0.25U AS=1.3P AD=0.85P PS=2.3U PD=1.85U
.ENDS C1

View File

@ -12,8 +12,8 @@ XSC1 n1 n2 C1
* pin p1
* pin p2
.SUBCKT C1 N1 N\x202
* device instance $1 0,0 XCLS
* device instance $1 r0 *1 0,0 XCLS
XD_$1 N1 n3 XCLS PARAMS: U=-17 V=42
* device instance $2 0,0 XCLS
* device instance $2 r0 *1 0,0 XCLS
XD_$2 n3 N\x202 XCLS PARAMS: U=17 V=-42
.ENDS C1

View File

@ -275,14 +275,14 @@ class DBNetlist_TestClass < TestBase
t = RBA::DeviceAbstractRef::new
t.device_abstract = d1.device_abstract
t.offset = RBA::DVector::new(1, 2)
t.trans = RBA::DCplxTrans::new(RBA::DVector::new(1, 2))
d1.add_combined_abstract(t)
a = []
d1.each_combined_abstract { |i| a << i }
assert_equal(a.size, 1)
assert_equal(a.collect { |i| i.device_abstract.name }.join(","), "xyz")
assert_equal(a.collect { |i| i.offset.to_s }.join(","), "1,2")
assert_equal(a.collect { |i| i.trans.to_s }.join(","), "r0 *1 1,2")
d1.clear_combined_abstracts

View File

@ -57,8 +57,8 @@ class DBNetlistDeviceClasses_TestClass < TestBase
assert_equal(nl.to_s, <<END)
circuit '' (A=n1,B=n3);
device '' r1 (A=n1,B=n2) (R=1);
device '' r2 (A=n2,B=n3) (R=3);
device '' r1 (A=n1,B=n2) (R=1,A=0,P=0);
device '' r2 (A=n2,B=n3) (R=3,A=0,P=0);
end;
END
@ -67,7 +67,7 @@ END
assert_equal(nl.to_s, <<END)
circuit '' (A=n1,B=n3);
device '' r1 (A=n1,B=n3) (R=4);
device '' r1 (A=n1,B=n3) (R=4,A=0,P=0);
end;
END
@ -105,8 +105,8 @@ END
assert_equal(nl.to_s, <<END)
circuit '' (A=n1,B=n3);
device '' c1 (A=n1,B=n2) (C=2);
device '' c2 (A=n2,B=n3) (C=3);
device '' c1 (A=n1,B=n2) (C=2,A=0,P=0);
device '' c2 (A=n2,B=n3) (C=3,A=0,P=0);
end;
END
@ -115,7 +115,7 @@ END
assert_equal(nl.to_s, <<END)
circuit '' (A=n1,B=n3);
device '' c1 (A=n1,B=n3) (C=1.2);
device '' c1 (A=n1,B=n3) (C=1.2,A=0,P=0);
end;
END