mirror of https://github.com/KLayout/klayout.git
Bugfix of 'evaluate_nets' function, added tests
This commit is contained in:
parent
17a525f39f
commit
60a5dc1b8a
|
|
@ -595,7 +595,9 @@ MeasureNetEval::reset (db::cell_index_type cell_index, size_t cluster_id) const
|
||||||
{
|
{
|
||||||
// default action: copy primary layer, merged, no limit
|
// default action: copy primary layer, merged, no limit
|
||||||
m_copy_layers.clear ();
|
m_copy_layers.clear ();
|
||||||
m_copy_layers.push_back (0);
|
if (! m_layers.empty ()) {
|
||||||
|
m_copy_layers.push_back (m_layers.front ());
|
||||||
|
}
|
||||||
m_copy_merge = true;
|
m_copy_merge = true;
|
||||||
m_copy_max_polygons = std::numeric_limits<size_t>::max ();
|
m_copy_max_polygons = std::numeric_limits<size_t>::max ();
|
||||||
|
|
||||||
|
|
@ -659,7 +661,14 @@ MeasureNetEval::perimeter_func (int layer_index) const
|
||||||
void
|
void
|
||||||
MeasureNetEval::copy_func (const std::vector<unsigned int> &layer_indexes, bool merge, size_t max_polygons) const
|
MeasureNetEval::copy_func (const std::vector<unsigned int> &layer_indexes, bool merge, size_t max_polygons) const
|
||||||
{
|
{
|
||||||
m_copy_layers = layer_indexes;
|
m_copy_layers.clear ();
|
||||||
|
m_copy_layers.reserve (layer_indexes.size ());
|
||||||
|
for (auto l = layer_indexes.begin (); l != layer_indexes.end (); ++l) {
|
||||||
|
if (size_t (*l) < m_layers.size ()) {
|
||||||
|
m_copy_layers.push_back (m_layers [*l]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
m_copy_merge = merge;
|
m_copy_merge = merge;
|
||||||
m_copy_max_polygons = max_polygons;
|
m_copy_max_polygons = max_polygons;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3463,6 +3463,21 @@ TEST(15_MeasureNet)
|
||||||
unsigned int l102 = ly.get_layer (db::LayerProperties (102, 0));
|
unsigned int l102 = ly.get_layer (db::LayerProperties (102, 0));
|
||||||
l3_net_func.insert_into (&ly, tc.cell_index (), l102);
|
l3_net_func.insert_into (&ly, tc.cell_index (), l102);
|
||||||
|
|
||||||
|
db::Region l4_net_func = l2n.measure_net (*rl1, secondary, "copy(merged=false, layers=[l2,l3,l4,l5])", std::map<std::string, tl::Variant> ());
|
||||||
|
|
||||||
|
unsigned int l103 = ly.get_layer (db::LayerProperties (103, 0));
|
||||||
|
l4_net_func.insert_into (&ly, tc.cell_index (), l103);
|
||||||
|
|
||||||
|
db::Region l5_net_func = l2n.measure_net (*rl1, secondary, "copy(net.name=='NET2', layer=l5)", std::map<std::string, tl::Variant> ());
|
||||||
|
|
||||||
|
unsigned int l104 = ly.get_layer (db::LayerProperties (104, 0));
|
||||||
|
l5_net_func.insert_into (&ly, tc.cell_index (), l104);
|
||||||
|
|
||||||
|
db::Region l6_net_func = l2n.measure_net (*rl1, secondary, "copy(net.name=='NET2', limit=0)", std::map<std::string, tl::Variant> ());
|
||||||
|
|
||||||
|
unsigned int l105 = ly.get_layer (db::LayerProperties (105, 0));
|
||||||
|
l6_net_func.insert_into (&ly, tc.cell_index (), l105);
|
||||||
|
|
||||||
// compare the collected test data
|
// compare the collected test data
|
||||||
|
|
||||||
std::string au = tl::testdata ();
|
std::string au = tl::testdata ();
|
||||||
|
|
|
||||||
|
|
@ -1,646 +0,0 @@
|
||||||
#%lvsdb-klayout
|
|
||||||
|
|
||||||
# Layout
|
|
||||||
layout(
|
|
||||||
top(RINGO)
|
|
||||||
unit(0.001)
|
|
||||||
|
|
||||||
# Layer section
|
|
||||||
# This section lists the mask layers (drawing or derived) and their connections.
|
|
||||||
|
|
||||||
# Mask layers
|
|
||||||
layer(bulk)
|
|
||||||
layer(nwell '1/0')
|
|
||||||
layer(poly '3/0')
|
|
||||||
layer(poly_lbl '3/1')
|
|
||||||
layer(diff_cont '4/0')
|
|
||||||
layer(poly_cont '5/0')
|
|
||||||
layer(metal1 '6/0')
|
|
||||||
layer(metal1_lbl '6/1')
|
|
||||||
layer(via1 '7/0')
|
|
||||||
layer(metal2 '8/0')
|
|
||||||
layer(metal2_lbl '8/1')
|
|
||||||
layer(ntie)
|
|
||||||
layer(psd)
|
|
||||||
layer(ptie)
|
|
||||||
layer(nsd)
|
|
||||||
|
|
||||||
# Mask layer connectivity
|
|
||||||
connect(nwell nwell ntie)
|
|
||||||
connect(poly poly poly_lbl poly_cont)
|
|
||||||
connect(poly_lbl poly)
|
|
||||||
connect(diff_cont diff_cont metal1 ntie psd ptie nsd)
|
|
||||||
connect(poly_cont poly poly_cont metal1)
|
|
||||||
connect(metal1 diff_cont poly_cont metal1 metal1_lbl via1)
|
|
||||||
connect(metal1_lbl metal1)
|
|
||||||
connect(via1 metal1 via1 metal2)
|
|
||||||
connect(metal2 via1 metal2 metal2_lbl)
|
|
||||||
connect(metal2_lbl metal2)
|
|
||||||
connect(ntie nwell diff_cont ntie)
|
|
||||||
connect(psd diff_cont psd)
|
|
||||||
connect(ptie diff_cont ptie)
|
|
||||||
connect(nsd diff_cont nsd)
|
|
||||||
|
|
||||||
# Global nets and connectivity
|
|
||||||
global(bulk BULK)
|
|
||||||
global(ptie BULK)
|
|
||||||
|
|
||||||
# Device class section
|
|
||||||
class(PMOS MOS4)
|
|
||||||
class(NMOS MOS4)
|
|
||||||
|
|
||||||
# Device abstracts section
|
|
||||||
# Device abstracts list the pin shapes of the devices.
|
|
||||||
device(D$PMOS PMOS
|
|
||||||
terminal(S
|
|
||||||
rect(psd (-650 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(psd (125 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(nwell (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
device(D$PMOS$1 PMOS
|
|
||||||
terminal(S
|
|
||||||
rect(psd (-675 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(psd (125 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(nwell (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
device(D$NMOS NMOS
|
|
||||||
terminal(S
|
|
||||||
rect(nsd (-650 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(nsd (125 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(bulk (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
device(D$NMOS$1 NMOS
|
|
||||||
terminal(S
|
|
||||||
rect(nsd (-675 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(nsd (125 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(bulk (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Circuit section
|
|
||||||
# Circuits are the hierarchical building blocks of the netlist.
|
|
||||||
circuit(INV2
|
|
||||||
|
|
||||||
# Circuit boundary
|
|
||||||
rect((-1700 -2440) (3100 7820))
|
|
||||||
|
|
||||||
# Nets with their geometries
|
|
||||||
net(1
|
|
||||||
rect(nwell (-1400 1800) (2800 3580))
|
|
||||||
rect(diff_cont (-1510 -650) (220 220))
|
|
||||||
rect(ntie (-510 -450) (800 680))
|
|
||||||
)
|
|
||||||
net(2 name(IN)
|
|
||||||
rect(poly (-525 -250) (250 2500))
|
|
||||||
rect(poly (-1425 -630) (2100 360))
|
|
||||||
rect(poly (-125 -2230) (250 2500))
|
|
||||||
rect(poly (-1050 -3850) (250 2400))
|
|
||||||
rect(poly (550 1200) (250 2400))
|
|
||||||
rect(poly (-250 -6000) (250 2400))
|
|
||||||
rect(poly (-1050 1200) (250 2400))
|
|
||||||
rect(poly_lbl (-525 -2600) (0 0))
|
|
||||||
rect(poly_cont (-830 -110) (220 220))
|
|
||||||
)
|
|
||||||
net(3 name(OUT)
|
|
||||||
rect(diff_cont (-910 90) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (1380 3380) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 -3820) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-1820 3380) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(metal1 (1310 -3710) (360 2220))
|
|
||||||
rect(metal1 (-1900 -800) (2220 360))
|
|
||||||
rect(metal1 (-2280 -2400) (360 2840))
|
|
||||||
rect(metal1 (-360 -3600) (360 1560))
|
|
||||||
rect(metal1 (1240 2040) (360 1560))
|
|
||||||
rect(metal1 (-360 -5160) (360 1560))
|
|
||||||
rect(metal1 (-1960 2040) (360 1560))
|
|
||||||
rect(metal1_lbl (1420 -2180) (0 0))
|
|
||||||
rect(psd (-1850 525) (525 1750))
|
|
||||||
rect(psd (1050 -1750) (525 1750))
|
|
||||||
rect(nsd (-2100 -5350) (525 1750))
|
|
||||||
rect(nsd (1050 -1750) (525 1750))
|
|
||||||
)
|
|
||||||
net(4 name(VSS)
|
|
||||||
rect(diff_cont (-110 90) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 980) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(metal1 (-290 -290) (360 1560))
|
|
||||||
rect(metal1 (-360 -1560) (360 1560))
|
|
||||||
rect(via1 (-305 -705) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(via1 (-250 -1450) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(metal2 (-1525 -775) (2800 1700))
|
|
||||||
rect(metal2_lbl (-160 -540) (0 0))
|
|
||||||
rect(nsd (-1515 -1185) (550 1750))
|
|
||||||
)
|
|
||||||
net(5 name(VDD)
|
|
||||||
rect(diff_cont (-110 2490) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 -1420) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(metal1 (-290 -1490) (360 1560))
|
|
||||||
rect(metal1 (-360 -1560) (360 1560))
|
|
||||||
rect(via1 (-305 -1505) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(metal2 (-1525 -1575) (2800 1700))
|
|
||||||
rect(metal2_lbl (-150 -1250) (0 0))
|
|
||||||
rect(psd (-1525 -475) (550 1750))
|
|
||||||
)
|
|
||||||
net(6 name(BULK)
|
|
||||||
rect(diff_cont (-110 -2160) (220 220))
|
|
||||||
rect(ptie (-510 -450) (800 680))
|
|
||||||
)
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1)
|
|
||||||
pin(2 name(IN))
|
|
||||||
pin(3 name(OUT))
|
|
||||||
pin(4 name(VSS))
|
|
||||||
pin(5 name(VDD))
|
|
||||||
pin(6 name(BULK))
|
|
||||||
|
|
||||||
# Devices and their connections
|
|
||||||
device(1 D$PMOS
|
|
||||||
device(D$PMOS$1 location(800 0))
|
|
||||||
connect(0 S S)
|
|
||||||
connect(1 S D)
|
|
||||||
connect(0 G G)
|
|
||||||
connect(1 G G)
|
|
||||||
connect(0 D D)
|
|
||||||
connect(1 D S)
|
|
||||||
connect(0 B B)
|
|
||||||
connect(1 B B)
|
|
||||||
location(-400 3200)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 3)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 5)
|
|
||||||
terminal(B 1)
|
|
||||||
)
|
|
||||||
device(3 D$NMOS
|
|
||||||
device(D$NMOS$1 location(800 0))
|
|
||||||
connect(0 S S)
|
|
||||||
connect(1 S D)
|
|
||||||
connect(0 G G)
|
|
||||||
connect(1 G G)
|
|
||||||
connect(0 D D)
|
|
||||||
connect(1 D S)
|
|
||||||
connect(0 B B)
|
|
||||||
connect(1 B B)
|
|
||||||
location(-400 -400)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 3)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 4)
|
|
||||||
terminal(B 6)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(INV2PAIR
|
|
||||||
|
|
||||||
# Circuit boundary
|
|
||||||
rect((0 -1640) (5740 7820))
|
|
||||||
|
|
||||||
# Nets with their geometries
|
|
||||||
net(1 name(BULK))
|
|
||||||
net(2)
|
|
||||||
net(3)
|
|
||||||
net(4)
|
|
||||||
net(5)
|
|
||||||
net(6)
|
|
||||||
net(7)
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name(BULK))
|
|
||||||
pin(2)
|
|
||||||
pin(3)
|
|
||||||
pin(4)
|
|
||||||
pin(5)
|
|
||||||
pin(6)
|
|
||||||
pin(7)
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2 location(1700 800)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 5)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
circuit(2 INV2 location(4340 800)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 4)
|
|
||||||
pin(2 6)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(RINGO
|
|
||||||
|
|
||||||
# Circuit boundary
|
|
||||||
rect((-1720 -2440) (26880 7820))
|
|
||||||
|
|
||||||
# Nets with their geometries
|
|
||||||
net(1 name(FB)
|
|
||||||
rect(metal1 (-1700 1620) (360 360))
|
|
||||||
rect(via1 (-305 -305) (250 250))
|
|
||||||
rect(via1 (23190 -250) (250 250))
|
|
||||||
rect(metal2 (-23765 -325) (23840 400))
|
|
||||||
rect(metal2_lbl (-22120 -200) (0 0))
|
|
||||||
)
|
|
||||||
net(2 name(OSC)
|
|
||||||
rect(via1 (24435 1675) (250 250))
|
|
||||||
rect(metal2 (-325 -325) (400 400))
|
|
||||||
rect(metal2_lbl (-200 -200) (0 0))
|
|
||||||
)
|
|
||||||
net(3 name(VDD)
|
|
||||||
rect(metal1 (-180 3900) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal2_lbl (-23940 -2220) (0 0))
|
|
||||||
)
|
|
||||||
net(4 name(VSS)
|
|
||||||
rect(metal1 (-180 -2220) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal2_lbl (-23940 1100) (0 0))
|
|
||||||
)
|
|
||||||
net(5)
|
|
||||||
net(6)
|
|
||||||
net(7)
|
|
||||||
net(8)
|
|
||||||
net(9)
|
|
||||||
net(10)
|
|
||||||
net(11)
|
|
||||||
net(12)
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name(FB))
|
|
||||||
pin(2 name(OSC))
|
|
||||||
pin(3 name(VDD))
|
|
||||||
pin(4 name(VSS))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2PAIR location(19420 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 1)
|
|
||||||
pin(4 10)
|
|
||||||
pin(5 2)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(2 INV2PAIR location(-1700 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 8)
|
|
||||||
pin(4 1)
|
|
||||||
pin(5 9)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(3 INV2PAIR location(3580 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 7)
|
|
||||||
pin(4 9)
|
|
||||||
pin(5 12)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(4 INV2PAIR location(8860 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 6)
|
|
||||||
pin(4 12)
|
|
||||||
pin(5 11)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(5 INV2PAIR location(14140 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 5)
|
|
||||||
pin(4 11)
|
|
||||||
pin(5 10)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Reference netlist
|
|
||||||
reference(
|
|
||||||
|
|
||||||
# Device class section
|
|
||||||
class(PMOS MOS4)
|
|
||||||
class(NMOS MOS4)
|
|
||||||
|
|
||||||
# Circuit section
|
|
||||||
# Circuits are the hierarchical building blocks of the netlist.
|
|
||||||
circuit(INV2
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('5'))
|
|
||||||
net(6 name('6'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
pin(5 name('5'))
|
|
||||||
pin(6 name('6'))
|
|
||||||
|
|
||||||
# Devices and their connections
|
|
||||||
device(1 PMOS
|
|
||||||
name($1)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 5)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 3)
|
|
||||||
terminal(B 1)
|
|
||||||
)
|
|
||||||
device(2 NMOS
|
|
||||||
name($3)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 4)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 3)
|
|
||||||
terminal(B 6)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(INV2PAIR
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('5'))
|
|
||||||
net(6 name('6'))
|
|
||||||
net(7 name('7'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
pin(5 name('5'))
|
|
||||||
pin(6 name('6'))
|
|
||||||
pin(7 name('7'))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2 name($1)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 5)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
circuit(2 INV2 name($2)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 4)
|
|
||||||
pin(2 6)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(RINGO
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('6'))
|
|
||||||
net(6 name('100'))
|
|
||||||
net(7 name('5'))
|
|
||||||
net(8 name('101'))
|
|
||||||
net(9 name('8'))
|
|
||||||
net(10 name('102'))
|
|
||||||
net(11 name('7'))
|
|
||||||
net(12 name('103'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2PAIR name($1)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 1)
|
|
||||||
pin(4 5)
|
|
||||||
pin(5 2)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(2 INV2PAIR name($2)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 6)
|
|
||||||
pin(4 1)
|
|
||||||
pin(5 7)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(3 INV2PAIR name($3)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 8)
|
|
||||||
pin(4 7)
|
|
||||||
pin(5 9)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(4 INV2PAIR name($4)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 10)
|
|
||||||
pin(4 9)
|
|
||||||
pin(5 11)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(5 INV2PAIR name($5)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 12)
|
|
||||||
pin(4 11)
|
|
||||||
pin(5 5)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Cross reference
|
|
||||||
xref(
|
|
||||||
circuit(INV2 INV2 match
|
|
||||||
xref(
|
|
||||||
net(1 1 match)
|
|
||||||
net(6 6 match)
|
|
||||||
net(2 2 match)
|
|
||||||
net(3 3 match)
|
|
||||||
net(5 5 match)
|
|
||||||
net(4 4 match)
|
|
||||||
pin(0 0 match)
|
|
||||||
pin(5 5 match)
|
|
||||||
pin(1 1 match)
|
|
||||||
pin(2 2 match)
|
|
||||||
pin(4 4 match)
|
|
||||||
pin(3 3 match)
|
|
||||||
device(3 2 match)
|
|
||||||
device(1 1 match)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
circuit(INV2PAIR INV2PAIR match
|
|
||||||
xref(
|
|
||||||
net(2 2 match)
|
|
||||||
net(3 3 match)
|
|
||||||
net(4 4 match)
|
|
||||||
net(5 5 match)
|
|
||||||
net(6 6 match)
|
|
||||||
net(7 7 match)
|
|
||||||
net(1 1 match)
|
|
||||||
pin(1 1 match)
|
|
||||||
pin(2 2 match)
|
|
||||||
pin(3 3 match)
|
|
||||||
pin(4 4 match)
|
|
||||||
pin(5 5 match)
|
|
||||||
pin(6 6 match)
|
|
||||||
pin(0 0 match)
|
|
||||||
circuit(1 1 match)
|
|
||||||
circuit(2 2 match)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
circuit(RINGO RINGO match
|
|
||||||
xref(
|
|
||||||
net(8 6 match)
|
|
||||||
net(7 8 match)
|
|
||||||
net(6 10 match)
|
|
||||||
net(5 12 match)
|
|
||||||
net(9 7 match)
|
|
||||||
net(10 5 match)
|
|
||||||
net(11 11 match)
|
|
||||||
net(12 9 match)
|
|
||||||
net(1 1 match)
|
|
||||||
net(2 2 match)
|
|
||||||
net(3 3 match)
|
|
||||||
net(4 4 match)
|
|
||||||
pin(0 0 match)
|
|
||||||
pin(1 1 match)
|
|
||||||
pin(2 2 match)
|
|
||||||
pin(3 3 match)
|
|
||||||
circuit(1 1 match)
|
|
||||||
circuit(2 2 match)
|
|
||||||
circuit(3 3 match)
|
|
||||||
circuit(4 4 match)
|
|
||||||
circuit(5 5 match)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
@ -1,646 +0,0 @@
|
||||||
#%lvsdb-klayout
|
|
||||||
|
|
||||||
# Layout
|
|
||||||
layout(
|
|
||||||
top(RINGO)
|
|
||||||
unit(0.001)
|
|
||||||
|
|
||||||
# Layer section
|
|
||||||
# This section lists the mask layers (drawing or derived) and their connections.
|
|
||||||
|
|
||||||
# Mask layers
|
|
||||||
layer(bulk)
|
|
||||||
layer(nwell '1/0')
|
|
||||||
layer(poly '3/0')
|
|
||||||
layer(poly_lbl '3/1')
|
|
||||||
layer(diff_cont '4/0')
|
|
||||||
layer(poly_cont '5/0')
|
|
||||||
layer(metal1 '6/0')
|
|
||||||
layer(metal1_lbl '6/1')
|
|
||||||
layer(via1 '7/0')
|
|
||||||
layer(metal2 '8/0')
|
|
||||||
layer(metal2_lbl '8/1')
|
|
||||||
layer(ntie)
|
|
||||||
layer(psd)
|
|
||||||
layer(ptie)
|
|
||||||
layer(nsd)
|
|
||||||
|
|
||||||
# Mask layer connectivity
|
|
||||||
connect(nwell nwell ntie)
|
|
||||||
connect(poly poly poly_lbl poly_cont)
|
|
||||||
connect(poly_lbl poly)
|
|
||||||
connect(diff_cont diff_cont metal1 ntie psd ptie nsd)
|
|
||||||
connect(poly_cont poly poly_cont metal1)
|
|
||||||
connect(metal1 diff_cont poly_cont metal1 metal1_lbl via1)
|
|
||||||
connect(metal1_lbl metal1)
|
|
||||||
connect(via1 metal1 via1 metal2)
|
|
||||||
connect(metal2 via1 metal2 metal2_lbl)
|
|
||||||
connect(metal2_lbl metal2)
|
|
||||||
connect(ntie nwell diff_cont ntie)
|
|
||||||
connect(psd diff_cont psd)
|
|
||||||
connect(ptie diff_cont ptie)
|
|
||||||
connect(nsd diff_cont nsd)
|
|
||||||
|
|
||||||
# Global nets and connectivity
|
|
||||||
global(bulk BULK)
|
|
||||||
global(ptie BULK)
|
|
||||||
|
|
||||||
# Device class section
|
|
||||||
class(PMOS MOS4)
|
|
||||||
class(NMOS MOS4)
|
|
||||||
|
|
||||||
# Device abstracts section
|
|
||||||
# Device abstracts list the pin shapes of the devices.
|
|
||||||
device(D$PMOS PMOS
|
|
||||||
terminal(S
|
|
||||||
rect(psd (-650 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(psd (125 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(nwell (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
device(D$PMOS$1 PMOS
|
|
||||||
terminal(S
|
|
||||||
rect(psd (-675 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(psd (125 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(nwell (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
device(D$NMOS NMOS
|
|
||||||
terminal(S
|
|
||||||
rect(nsd (-650 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(nsd (125 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(bulk (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
device(D$NMOS$1 NMOS
|
|
||||||
terminal(S
|
|
||||||
rect(nsd (-675 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(nsd (125 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(bulk (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Circuit section
|
|
||||||
# Circuits are the hierarchical building blocks of the netlist.
|
|
||||||
circuit(INV2
|
|
||||||
|
|
||||||
# Circuit boundary
|
|
||||||
rect((-1700 -2440) (3100 7820))
|
|
||||||
|
|
||||||
# Nets with their geometries
|
|
||||||
net(1
|
|
||||||
rect(nwell (-1400 1800) (2800 3580))
|
|
||||||
rect(diff_cont (-1510 -650) (220 220))
|
|
||||||
rect(ntie (-510 -450) (800 680))
|
|
||||||
)
|
|
||||||
net(2 name(IN)
|
|
||||||
rect(poly (-525 -250) (250 2500))
|
|
||||||
rect(poly (-1425 -630) (2100 360))
|
|
||||||
rect(poly (-125 -2230) (250 2500))
|
|
||||||
rect(poly (-1050 -3850) (250 2400))
|
|
||||||
rect(poly (550 1200) (250 2400))
|
|
||||||
rect(poly (-250 -6000) (250 2400))
|
|
||||||
rect(poly (-1050 1200) (250 2400))
|
|
||||||
rect(poly_lbl (-525 -2600) (0 0))
|
|
||||||
rect(poly_cont (-830 -110) (220 220))
|
|
||||||
)
|
|
||||||
net(3 name(OUT)
|
|
||||||
rect(diff_cont (-910 90) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (1380 3380) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 -3820) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-1820 3380) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(metal1 (1310 -3710) (360 2220))
|
|
||||||
rect(metal1 (-1900 -800) (2220 360))
|
|
||||||
rect(metal1 (-2280 -2400) (360 2840))
|
|
||||||
rect(metal1 (-360 -3600) (360 1560))
|
|
||||||
rect(metal1 (1240 2040) (360 1560))
|
|
||||||
rect(metal1 (-360 -5160) (360 1560))
|
|
||||||
rect(metal1 (-1960 2040) (360 1560))
|
|
||||||
rect(metal1_lbl (1420 -2180) (0 0))
|
|
||||||
rect(psd (-1850 525) (525 1750))
|
|
||||||
rect(psd (1050 -1750) (525 1750))
|
|
||||||
rect(nsd (-2100 -5350) (525 1750))
|
|
||||||
rect(nsd (1050 -1750) (525 1750))
|
|
||||||
)
|
|
||||||
net(4 name(VSS)
|
|
||||||
rect(diff_cont (-110 90) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 980) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(metal1 (-290 -290) (360 1560))
|
|
||||||
rect(metal1 (-360 -1560) (360 1560))
|
|
||||||
rect(via1 (-305 -705) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(via1 (-250 -1450) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(metal2 (-1525 -775) (2800 1700))
|
|
||||||
rect(metal2_lbl (-160 -540) (0 0))
|
|
||||||
rect(nsd (-1515 -1185) (550 1750))
|
|
||||||
)
|
|
||||||
net(5 name(VDD)
|
|
||||||
rect(diff_cont (-110 2490) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 -1420) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(metal1 (-290 -1490) (360 1560))
|
|
||||||
rect(metal1 (-360 -1560) (360 1560))
|
|
||||||
rect(via1 (-305 -1505) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(metal2 (-1525 -1575) (2800 1700))
|
|
||||||
rect(metal2_lbl (-150 -1250) (0 0))
|
|
||||||
rect(psd (-1525 -475) (550 1750))
|
|
||||||
)
|
|
||||||
net(6 name(BULK)
|
|
||||||
rect(diff_cont (-110 -2160) (220 220))
|
|
||||||
rect(ptie (-510 -450) (800 680))
|
|
||||||
)
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1)
|
|
||||||
pin(2 name(IN))
|
|
||||||
pin(3 name(OUT))
|
|
||||||
pin(4 name(VSS))
|
|
||||||
pin(5 name(VDD))
|
|
||||||
pin(6 name(BULK))
|
|
||||||
|
|
||||||
# Devices and their connections
|
|
||||||
device(1 D$PMOS
|
|
||||||
device(D$PMOS$1 location(800 0))
|
|
||||||
connect(0 S S)
|
|
||||||
connect(1 S D)
|
|
||||||
connect(0 G G)
|
|
||||||
connect(1 G G)
|
|
||||||
connect(0 D D)
|
|
||||||
connect(1 D S)
|
|
||||||
connect(0 B B)
|
|
||||||
connect(1 B B)
|
|
||||||
location(-400 3200)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 3)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 5)
|
|
||||||
terminal(B 1)
|
|
||||||
)
|
|
||||||
device(2 D$NMOS
|
|
||||||
device(D$NMOS$1 location(800 0))
|
|
||||||
connect(0 S S)
|
|
||||||
connect(1 S D)
|
|
||||||
connect(0 G G)
|
|
||||||
connect(1 G G)
|
|
||||||
connect(0 D D)
|
|
||||||
connect(1 D S)
|
|
||||||
connect(0 B B)
|
|
||||||
connect(1 B B)
|
|
||||||
location(-400 -400)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 3)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 4)
|
|
||||||
terminal(B 6)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(INV2PAIR
|
|
||||||
|
|
||||||
# Circuit boundary
|
|
||||||
rect((0 -1640) (5740 7820))
|
|
||||||
|
|
||||||
# Nets with their geometries
|
|
||||||
net(1 name(BULK))
|
|
||||||
net(2)
|
|
||||||
net(3)
|
|
||||||
net(4)
|
|
||||||
net(5)
|
|
||||||
net(6)
|
|
||||||
net(7)
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name(BULK))
|
|
||||||
pin(2)
|
|
||||||
pin(3)
|
|
||||||
pin(4)
|
|
||||||
pin(5)
|
|
||||||
pin(6)
|
|
||||||
pin(7)
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2 location(1700 800)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 5)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
circuit(2 INV2 location(4340 800)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 4)
|
|
||||||
pin(2 6)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(RINGO
|
|
||||||
|
|
||||||
# Circuit boundary
|
|
||||||
rect((-1720 -2440) (26880 7820))
|
|
||||||
|
|
||||||
# Nets with their geometries
|
|
||||||
net(1 name(FB)
|
|
||||||
rect(metal1 (-1700 1620) (360 360))
|
|
||||||
rect(via1 (-305 -305) (250 250))
|
|
||||||
rect(via1 (23190 -250) (250 250))
|
|
||||||
rect(metal2 (-23765 -325) (23840 400))
|
|
||||||
rect(metal2_lbl (-22120 -200) (0 0))
|
|
||||||
)
|
|
||||||
net(2 name(OSC)
|
|
||||||
rect(via1 (24435 1675) (250 250))
|
|
||||||
rect(metal2 (-325 -325) (400 400))
|
|
||||||
rect(metal2_lbl (-200 -200) (0 0))
|
|
||||||
)
|
|
||||||
net(3 name(VDD)
|
|
||||||
rect(metal1 (-180 3900) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal2_lbl (-23940 -2220) (0 0))
|
|
||||||
)
|
|
||||||
net(4 name(VSS)
|
|
||||||
rect(metal1 (-180 -2220) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal2_lbl (-23940 1100) (0 0))
|
|
||||||
)
|
|
||||||
net(5)
|
|
||||||
net(6)
|
|
||||||
net(7)
|
|
||||||
net(8)
|
|
||||||
net(9)
|
|
||||||
net(10)
|
|
||||||
net(11)
|
|
||||||
net(12)
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name(FB))
|
|
||||||
pin(2 name(OSC))
|
|
||||||
pin(3 name(VDD))
|
|
||||||
pin(4 name(VSS))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2PAIR location(19420 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 1)
|
|
||||||
pin(4 10)
|
|
||||||
pin(5 2)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(2 INV2PAIR location(-1700 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 8)
|
|
||||||
pin(4 1)
|
|
||||||
pin(5 9)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(3 INV2PAIR location(3580 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 7)
|
|
||||||
pin(4 9)
|
|
||||||
pin(5 12)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(4 INV2PAIR location(8860 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 6)
|
|
||||||
pin(4 12)
|
|
||||||
pin(5 11)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(5 INV2PAIR location(14140 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 5)
|
|
||||||
pin(4 11)
|
|
||||||
pin(5 10)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Reference netlist
|
|
||||||
reference(
|
|
||||||
|
|
||||||
# Device class section
|
|
||||||
class(PMOS MOS4)
|
|
||||||
class(NMOS MOS4)
|
|
||||||
|
|
||||||
# Circuit section
|
|
||||||
# Circuits are the hierarchical building blocks of the netlist.
|
|
||||||
circuit(INV2
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('5'))
|
|
||||||
net(6 name('6'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
pin(5 name('5'))
|
|
||||||
pin(6 name('6'))
|
|
||||||
|
|
||||||
# Devices and their connections
|
|
||||||
device(1 PMOS
|
|
||||||
name($1)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 5)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 3)
|
|
||||||
terminal(B 1)
|
|
||||||
)
|
|
||||||
device(2 NMOS
|
|
||||||
name($3)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 4)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 3)
|
|
||||||
terminal(B 6)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(INV2PAIR
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('5'))
|
|
||||||
net(6 name('6'))
|
|
||||||
net(7 name('7'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
pin(5 name('5'))
|
|
||||||
pin(6 name('6'))
|
|
||||||
pin(7 name('7'))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2 name($1)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 5)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
circuit(2 INV2 name($2)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 4)
|
|
||||||
pin(2 6)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(RINGO
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('6'))
|
|
||||||
net(6 name('100'))
|
|
||||||
net(7 name('5'))
|
|
||||||
net(8 name('101'))
|
|
||||||
net(9 name('8'))
|
|
||||||
net(10 name('102'))
|
|
||||||
net(11 name('7'))
|
|
||||||
net(12 name('103'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2PAIR name($1)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 1)
|
|
||||||
pin(4 5)
|
|
||||||
pin(5 2)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(2 INV2PAIR name($2)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 6)
|
|
||||||
pin(4 1)
|
|
||||||
pin(5 7)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(3 INV2PAIR name($3)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 8)
|
|
||||||
pin(4 7)
|
|
||||||
pin(5 9)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(4 INV2PAIR name($4)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 10)
|
|
||||||
pin(4 9)
|
|
||||||
pin(5 11)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(5 INV2PAIR name($5)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 12)
|
|
||||||
pin(4 11)
|
|
||||||
pin(5 5)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Cross reference
|
|
||||||
xref(
|
|
||||||
circuit(INV2 INV2 match
|
|
||||||
xref(
|
|
||||||
net(1 1 match)
|
|
||||||
net(6 6 match)
|
|
||||||
net(2 2 match)
|
|
||||||
net(3 3 match)
|
|
||||||
net(5 5 match)
|
|
||||||
net(4 4 match)
|
|
||||||
pin(0 0 match)
|
|
||||||
pin(5 5 match)
|
|
||||||
pin(1 1 match)
|
|
||||||
pin(2 2 match)
|
|
||||||
pin(4 4 match)
|
|
||||||
pin(3 3 match)
|
|
||||||
device(2 2 match)
|
|
||||||
device(1 1 match)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
circuit(INV2PAIR INV2PAIR match
|
|
||||||
xref(
|
|
||||||
net(2 2 match)
|
|
||||||
net(3 3 match)
|
|
||||||
net(4 4 match)
|
|
||||||
net(5 5 match)
|
|
||||||
net(6 6 match)
|
|
||||||
net(7 7 match)
|
|
||||||
net(1 1 match)
|
|
||||||
pin(1 1 match)
|
|
||||||
pin(2 2 match)
|
|
||||||
pin(3 3 match)
|
|
||||||
pin(4 4 match)
|
|
||||||
pin(5 5 match)
|
|
||||||
pin(6 6 match)
|
|
||||||
pin(0 0 match)
|
|
||||||
circuit(1 1 match)
|
|
||||||
circuit(2 2 match)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
circuit(RINGO RINGO match
|
|
||||||
xref(
|
|
||||||
net(8 6 match)
|
|
||||||
net(7 8 match)
|
|
||||||
net(6 10 match)
|
|
||||||
net(5 12 match)
|
|
||||||
net(9 7 match)
|
|
||||||
net(10 5 match)
|
|
||||||
net(11 11 match)
|
|
||||||
net(12 9 match)
|
|
||||||
net(1 1 match)
|
|
||||||
net(2 2 match)
|
|
||||||
net(3 3 match)
|
|
||||||
net(4 4 match)
|
|
||||||
pin(0 0 match)
|
|
||||||
pin(1 1 match)
|
|
||||||
pin(2 2 match)
|
|
||||||
pin(3 3 match)
|
|
||||||
circuit(1 1 match)
|
|
||||||
circuit(2 2 match)
|
|
||||||
circuit(3 3 match)
|
|
||||||
circuit(4 4 match)
|
|
||||||
circuit(5 5 match)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
@ -1,677 +0,0 @@
|
||||||
#%lvsdb-klayout
|
|
||||||
|
|
||||||
# Layout
|
|
||||||
layout(
|
|
||||||
top(RINGO)
|
|
||||||
unit(0.001)
|
|
||||||
|
|
||||||
# Layer section
|
|
||||||
# This section lists the mask layers (drawing or derived) and their connections.
|
|
||||||
|
|
||||||
# Mask layers
|
|
||||||
layer(bulk)
|
|
||||||
layer(nwell '1/0')
|
|
||||||
layer(poly '3/0')
|
|
||||||
layer(poly_lbl '3/1')
|
|
||||||
layer(diff_cont '4/0')
|
|
||||||
layer(poly_cont '5/0')
|
|
||||||
layer(metal1 '6/0')
|
|
||||||
layer(metal1_lbl '6/1')
|
|
||||||
layer(via1 '7/0')
|
|
||||||
layer(metal2 '8/0')
|
|
||||||
layer(metal2_lbl '8/1')
|
|
||||||
layer(ntie)
|
|
||||||
layer(psd)
|
|
||||||
layer(ptie)
|
|
||||||
layer(nsd)
|
|
||||||
|
|
||||||
# Mask layer connectivity
|
|
||||||
connect(nwell nwell ntie)
|
|
||||||
connect(poly poly poly_lbl poly_cont)
|
|
||||||
connect(poly_lbl poly)
|
|
||||||
connect(diff_cont diff_cont metal1 ntie psd ptie nsd)
|
|
||||||
connect(poly_cont poly poly_cont metal1)
|
|
||||||
connect(metal1 diff_cont poly_cont metal1 metal1_lbl via1)
|
|
||||||
connect(metal1_lbl metal1)
|
|
||||||
connect(via1 metal1 via1 metal2)
|
|
||||||
connect(metal2 via1 metal2 metal2_lbl)
|
|
||||||
connect(metal2_lbl metal2)
|
|
||||||
connect(ntie nwell diff_cont ntie)
|
|
||||||
connect(psd diff_cont psd)
|
|
||||||
connect(ptie diff_cont ptie)
|
|
||||||
connect(nsd diff_cont nsd)
|
|
||||||
|
|
||||||
# Global nets and connectivity
|
|
||||||
global(bulk BULK)
|
|
||||||
global(ptie BULK)
|
|
||||||
|
|
||||||
# Device class section
|
|
||||||
class(PMOS MOS4)
|
|
||||||
class(NMOS MOS4)
|
|
||||||
|
|
||||||
# Device abstracts section
|
|
||||||
# Device abstracts list the pin shapes of the devices.
|
|
||||||
device(D$PMOS PMOS
|
|
||||||
terminal(S
|
|
||||||
rect(psd (-650 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(psd (125 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(nwell (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
device(D$PMOS$1 PMOS
|
|
||||||
terminal(S
|
|
||||||
rect(psd (-675 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(psd (125 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(nwell (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
device(D$NMOS NMOS
|
|
||||||
terminal(S
|
|
||||||
rect(nsd (-650 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(nsd (125 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(bulk (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
device(D$NMOS$1 NMOS
|
|
||||||
terminal(S
|
|
||||||
rect(nsd (-675 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(nsd (125 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(bulk (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Circuit section
|
|
||||||
# Circuits are the hierarchical building blocks of the netlist.
|
|
||||||
circuit(INV2
|
|
||||||
|
|
||||||
# Circuit boundary
|
|
||||||
rect((-1700 -2440) (3100 7820))
|
|
||||||
|
|
||||||
# Nets with their geometries
|
|
||||||
net(1
|
|
||||||
rect(nwell (-1400 1800) (2800 3580))
|
|
||||||
rect(diff_cont (-1510 -650) (220 220))
|
|
||||||
rect(ntie (-510 -450) (800 680))
|
|
||||||
)
|
|
||||||
net(2 name(IN)
|
|
||||||
rect(poly (-525 -250) (250 2500))
|
|
||||||
rect(poly (-1425 -630) (2100 360))
|
|
||||||
rect(poly (-125 -2230) (250 2500))
|
|
||||||
rect(poly (-1050 -3850) (250 2400))
|
|
||||||
rect(poly (550 1200) (250 2400))
|
|
||||||
rect(poly (-250 -6000) (250 2400))
|
|
||||||
rect(poly (-1050 1200) (250 2400))
|
|
||||||
rect(poly_lbl (-525 -2600) (0 0))
|
|
||||||
rect(poly_cont (-830 -110) (220 220))
|
|
||||||
)
|
|
||||||
net(3 name(OUT)
|
|
||||||
rect(diff_cont (-910 90) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (1380 3380) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 -3820) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-1820 3380) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(metal1 (1310 -3710) (360 2220))
|
|
||||||
rect(metal1 (-1900 -800) (2220 360))
|
|
||||||
rect(metal1 (-2280 -2400) (360 2840))
|
|
||||||
rect(metal1 (-360 -3600) (360 1560))
|
|
||||||
rect(metal1 (1240 2040) (360 1560))
|
|
||||||
rect(metal1 (-360 -5160) (360 1560))
|
|
||||||
rect(metal1 (-1960 2040) (360 1560))
|
|
||||||
rect(metal1_lbl (1420 -2180) (0 0))
|
|
||||||
rect(psd (-1850 525) (525 1750))
|
|
||||||
rect(psd (1050 -1750) (525 1750))
|
|
||||||
rect(nsd (-2100 -5350) (525 1750))
|
|
||||||
rect(nsd (1050 -1750) (525 1750))
|
|
||||||
)
|
|
||||||
net(4 name(VSS)
|
|
||||||
rect(diff_cont (-110 90) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 980) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(metal1 (-290 -290) (360 1560))
|
|
||||||
rect(metal1 (-360 -1560) (360 1560))
|
|
||||||
rect(via1 (-305 -705) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(via1 (-250 -1450) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(metal2 (-1525 -775) (2800 1700))
|
|
||||||
rect(metal2_lbl (-160 -540) (0 0))
|
|
||||||
rect(nsd (-1515 -1185) (550 1750))
|
|
||||||
)
|
|
||||||
net(5 name(VDD)
|
|
||||||
rect(diff_cont (-110 2490) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 -1420) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(metal1 (-290 -1490) (360 1560))
|
|
||||||
rect(metal1 (-360 -1560) (360 1560))
|
|
||||||
rect(via1 (-305 -1505) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(metal2 (-1525 -1575) (2800 1700))
|
|
||||||
rect(metal2_lbl (-150 -1250) (0 0))
|
|
||||||
rect(psd (-1525 -475) (550 1750))
|
|
||||||
)
|
|
||||||
net(6 name(BULK)
|
|
||||||
rect(diff_cont (-110 -2160) (220 220))
|
|
||||||
rect(ptie (-510 -450) (800 680))
|
|
||||||
)
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1)
|
|
||||||
pin(2 name(IN))
|
|
||||||
pin(3 name(OUT))
|
|
||||||
pin(4 name(VSS))
|
|
||||||
pin(5 name(VDD))
|
|
||||||
pin(6 name(BULK))
|
|
||||||
|
|
||||||
# Devices and their connections
|
|
||||||
device(1 D$PMOS
|
|
||||||
device(D$PMOS$1 location(800 0))
|
|
||||||
connect(0 S S)
|
|
||||||
connect(1 S D)
|
|
||||||
connect(0 G G)
|
|
||||||
connect(1 G G)
|
|
||||||
connect(0 D D)
|
|
||||||
connect(1 D S)
|
|
||||||
connect(0 B B)
|
|
||||||
connect(1 B B)
|
|
||||||
location(-400 3200)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 3)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 5)
|
|
||||||
terminal(B 1)
|
|
||||||
)
|
|
||||||
device(3 D$NMOS
|
|
||||||
device(D$NMOS$1 location(800 0))
|
|
||||||
connect(0 S S)
|
|
||||||
connect(1 S D)
|
|
||||||
connect(0 G G)
|
|
||||||
connect(1 G G)
|
|
||||||
connect(0 D D)
|
|
||||||
connect(1 D S)
|
|
||||||
connect(0 B B)
|
|
||||||
connect(1 B B)
|
|
||||||
location(-400 -400)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 3)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 4)
|
|
||||||
terminal(B 6)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(INV2PAIR
|
|
||||||
|
|
||||||
# Circuit boundary
|
|
||||||
rect((0 -1640) (5740 7820))
|
|
||||||
|
|
||||||
# Nets with their geometries
|
|
||||||
net(1 name(BULK))
|
|
||||||
net(2)
|
|
||||||
net(3)
|
|
||||||
net(4)
|
|
||||||
net(5)
|
|
||||||
net(6)
|
|
||||||
net(7)
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name(BULK))
|
|
||||||
pin(2)
|
|
||||||
pin(3)
|
|
||||||
pin(4)
|
|
||||||
pin(5)
|
|
||||||
pin(6)
|
|
||||||
pin(7)
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2 location(1700 800)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 5)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
circuit(2 INV2 location(4340 800)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 4)
|
|
||||||
pin(2 6)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(RINGO
|
|
||||||
|
|
||||||
# Circuit boundary
|
|
||||||
rect((-1720 -2440) (26880 7820))
|
|
||||||
|
|
||||||
# Nets with their geometries
|
|
||||||
net(1 name(FB)
|
|
||||||
rect(metal1 (-1700 1620) (360 360))
|
|
||||||
rect(via1 (-305 -305) (250 250))
|
|
||||||
rect(via1 (23190 -250) (250 250))
|
|
||||||
rect(metal2 (-23765 -325) (23840 400))
|
|
||||||
rect(metal2_lbl (-22120 -200) (0 0))
|
|
||||||
)
|
|
||||||
net(2 name(OSC)
|
|
||||||
rect(via1 (24435 1675) (250 250))
|
|
||||||
rect(metal2 (-325 -325) (400 400))
|
|
||||||
rect(metal2_lbl (-200 -200) (0 0))
|
|
||||||
)
|
|
||||||
net(3 name(VDD)
|
|
||||||
rect(metal1 (-180 3900) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal2_lbl (-23940 -2220) (0 0))
|
|
||||||
)
|
|
||||||
net(4 name(VSS)
|
|
||||||
rect(metal1 (-180 -2220) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal2_lbl (-23940 1100) (0 0))
|
|
||||||
)
|
|
||||||
net(5)
|
|
||||||
net(6)
|
|
||||||
net(7)
|
|
||||||
net(8)
|
|
||||||
net(9)
|
|
||||||
net(10)
|
|
||||||
net(11)
|
|
||||||
net(12)
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name(FB))
|
|
||||||
pin(2 name(OSC))
|
|
||||||
pin(3 name(VDD))
|
|
||||||
pin(4 name(VSS))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2PAIR location(19420 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 1)
|
|
||||||
pin(4 10)
|
|
||||||
pin(5 2)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(2 INV2PAIR location(-1700 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 8)
|
|
||||||
pin(4 1)
|
|
||||||
pin(5 9)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(3 INV2PAIR location(3580 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 7)
|
|
||||||
pin(4 9)
|
|
||||||
pin(5 12)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(4 INV2PAIR location(8860 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 6)
|
|
||||||
pin(4 12)
|
|
||||||
pin(5 11)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(5 INV2PAIR location(14140 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 5)
|
|
||||||
pin(4 11)
|
|
||||||
pin(5 10)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Reference netlist
|
|
||||||
reference(
|
|
||||||
|
|
||||||
# Device class section
|
|
||||||
class(PMOS MOS4)
|
|
||||||
class(NMOS MOS4)
|
|
||||||
|
|
||||||
# Circuit section
|
|
||||||
# Circuits are the hierarchical building blocks of the netlist.
|
|
||||||
circuit(INV2
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('5'))
|
|
||||||
net(6 name('6'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
pin(5 name('5'))
|
|
||||||
pin(6 name('6'))
|
|
||||||
|
|
||||||
# Devices and their connections
|
|
||||||
device(1 PMOS
|
|
||||||
name($1)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 5)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 3)
|
|
||||||
terminal(B 1)
|
|
||||||
)
|
|
||||||
device(2 NMOS
|
|
||||||
name($3)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 4)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 3)
|
|
||||||
terminal(B 6)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(INV2PAIR
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('5'))
|
|
||||||
net(6 name('6'))
|
|
||||||
net(7 name('7'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
pin(5 name('5'))
|
|
||||||
pin(6 name('6'))
|
|
||||||
pin(7 name('7'))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2 name($2)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 4)
|
|
||||||
pin(2 6)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(INV2PAIRX
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('5'))
|
|
||||||
net(6 name('6'))
|
|
||||||
net(7 name('7'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
pin(5 name('5'))
|
|
||||||
pin(6 name('6'))
|
|
||||||
pin(7 name('7'))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2 name($2)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 4)
|
|
||||||
pin(2 6)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(RINGO
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('6'))
|
|
||||||
net(6 name('5'))
|
|
||||||
net(7 name('101'))
|
|
||||||
net(8 name('8'))
|
|
||||||
net(9 name('102'))
|
|
||||||
net(10 name('7'))
|
|
||||||
net(11 name('103'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2PAIR name($1)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 1)
|
|
||||||
pin(4 5)
|
|
||||||
pin(5 2)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(2 INV2PAIR name($2)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 1)
|
|
||||||
pin(4 1)
|
|
||||||
pin(5 6)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(3 INV2PAIR name($3)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 7)
|
|
||||||
pin(4 6)
|
|
||||||
pin(5 8)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(4 INV2PAIR name($4)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 9)
|
|
||||||
pin(4 8)
|
|
||||||
pin(5 10)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(5 INV2PAIR name($5)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 11)
|
|
||||||
pin(4 10)
|
|
||||||
pin(5 5)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Cross reference
|
|
||||||
xref(
|
|
||||||
circuit(() INV2PAIRX mismatch
|
|
||||||
xref(
|
|
||||||
)
|
|
||||||
)
|
|
||||||
circuit(INV2 INV2 match
|
|
||||||
xref(
|
|
||||||
net(1 1 match)
|
|
||||||
net(6 6 match)
|
|
||||||
net(2 2 match)
|
|
||||||
net(3 3 match)
|
|
||||||
net(5 5 match)
|
|
||||||
net(4 4 match)
|
|
||||||
pin(0 0 match)
|
|
||||||
pin(5 5 match)
|
|
||||||
pin(1 1 match)
|
|
||||||
pin(2 2 match)
|
|
||||||
pin(4 4 match)
|
|
||||||
pin(3 3 match)
|
|
||||||
device(3 2 match)
|
|
||||||
device(1 1 match)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
circuit(INV2PAIR INV2PAIR nomatch
|
|
||||||
xref(
|
|
||||||
net(2 2 mismatch)
|
|
||||||
net(3 3 mismatch)
|
|
||||||
net(4 4 mismatch)
|
|
||||||
net(5 5 mismatch)
|
|
||||||
net(6 6 match)
|
|
||||||
net(7 7 mismatch)
|
|
||||||
net(1 1 mismatch)
|
|
||||||
pin(1 1 match)
|
|
||||||
pin(2 2 match)
|
|
||||||
pin(3 3 match)
|
|
||||||
pin(4 4 match)
|
|
||||||
pin(5 5 match)
|
|
||||||
pin(6 6 match)
|
|
||||||
pin(0 0 match)
|
|
||||||
circuit(1 () mismatch)
|
|
||||||
circuit(2 1 match)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
circuit(RINGO RINGO nomatch
|
|
||||||
log(
|
|
||||||
entry(error description('Net $I22 is not matching any net from reference netlist'))
|
|
||||||
entry(error description('Net FB is not matching any net from reference netlist'))
|
|
||||||
)
|
|
||||||
xref(
|
|
||||||
net(8 () mismatch)
|
|
||||||
net(7 7 match)
|
|
||||||
net(6 9 match)
|
|
||||||
net(5 11 match)
|
|
||||||
net(9 6 match)
|
|
||||||
net(10 5 match)
|
|
||||||
net(11 10 match)
|
|
||||||
net(12 8 match)
|
|
||||||
net(1 1 mismatch)
|
|
||||||
net(2 2 match)
|
|
||||||
net(3 3 match)
|
|
||||||
net(4 4 match)
|
|
||||||
pin(0 0 match)
|
|
||||||
pin(1 1 match)
|
|
||||||
pin(2 2 match)
|
|
||||||
pin(3 3 match)
|
|
||||||
circuit(() 2 mismatch)
|
|
||||||
circuit(2 () mismatch)
|
|
||||||
circuit(1 1 match)
|
|
||||||
circuit(3 3 match)
|
|
||||||
circuit(4 4 match)
|
|
||||||
circuit(5 5 match)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
@ -1,677 +0,0 @@
|
||||||
#%lvsdb-klayout
|
|
||||||
|
|
||||||
# Layout
|
|
||||||
layout(
|
|
||||||
top(RINGO)
|
|
||||||
unit(0.001)
|
|
||||||
|
|
||||||
# Layer section
|
|
||||||
# This section lists the mask layers (drawing or derived) and their connections.
|
|
||||||
|
|
||||||
# Mask layers
|
|
||||||
layer(bulk)
|
|
||||||
layer(nwell '1/0')
|
|
||||||
layer(poly '3/0')
|
|
||||||
layer(poly_lbl '3/1')
|
|
||||||
layer(diff_cont '4/0')
|
|
||||||
layer(poly_cont '5/0')
|
|
||||||
layer(metal1 '6/0')
|
|
||||||
layer(metal1_lbl '6/1')
|
|
||||||
layer(via1 '7/0')
|
|
||||||
layer(metal2 '8/0')
|
|
||||||
layer(metal2_lbl '8/1')
|
|
||||||
layer(ntie)
|
|
||||||
layer(psd)
|
|
||||||
layer(ptie)
|
|
||||||
layer(nsd)
|
|
||||||
|
|
||||||
# Mask layer connectivity
|
|
||||||
connect(nwell nwell ntie)
|
|
||||||
connect(poly poly poly_lbl poly_cont)
|
|
||||||
connect(poly_lbl poly)
|
|
||||||
connect(diff_cont diff_cont metal1 ntie psd ptie nsd)
|
|
||||||
connect(poly_cont poly poly_cont metal1)
|
|
||||||
connect(metal1 diff_cont poly_cont metal1 metal1_lbl via1)
|
|
||||||
connect(metal1_lbl metal1)
|
|
||||||
connect(via1 metal1 via1 metal2)
|
|
||||||
connect(metal2 via1 metal2 metal2_lbl)
|
|
||||||
connect(metal2_lbl metal2)
|
|
||||||
connect(ntie nwell diff_cont ntie)
|
|
||||||
connect(psd diff_cont psd)
|
|
||||||
connect(ptie diff_cont ptie)
|
|
||||||
connect(nsd diff_cont nsd)
|
|
||||||
|
|
||||||
# Global nets and connectivity
|
|
||||||
global(bulk BULK)
|
|
||||||
global(ptie BULK)
|
|
||||||
|
|
||||||
# Device class section
|
|
||||||
class(PMOS MOS4)
|
|
||||||
class(NMOS MOS4)
|
|
||||||
|
|
||||||
# Device abstracts section
|
|
||||||
# Device abstracts list the pin shapes of the devices.
|
|
||||||
device(D$PMOS PMOS
|
|
||||||
terminal(S
|
|
||||||
rect(psd (-650 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(psd (125 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(nwell (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
device(D$PMOS$1 PMOS
|
|
||||||
terminal(S
|
|
||||||
rect(psd (-675 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(psd (125 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(nwell (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
device(D$NMOS NMOS
|
|
||||||
terminal(S
|
|
||||||
rect(nsd (-650 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(nsd (125 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(bulk (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
device(D$NMOS$1 NMOS
|
|
||||||
terminal(S
|
|
||||||
rect(nsd (-675 -875) (550 1750))
|
|
||||||
)
|
|
||||||
terminal(G
|
|
||||||
rect(poly (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
terminal(D
|
|
||||||
rect(nsd (125 -875) (525 1750))
|
|
||||||
)
|
|
||||||
terminal(B
|
|
||||||
rect(bulk (-125 -875) (250 1750))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Circuit section
|
|
||||||
# Circuits are the hierarchical building blocks of the netlist.
|
|
||||||
circuit(INV2
|
|
||||||
|
|
||||||
# Circuit boundary
|
|
||||||
rect((-1700 -2440) (3100 7820))
|
|
||||||
|
|
||||||
# Nets with their geometries
|
|
||||||
net(1
|
|
||||||
rect(nwell (-1400 1800) (2800 3580))
|
|
||||||
rect(diff_cont (-1510 -650) (220 220))
|
|
||||||
rect(ntie (-510 -450) (800 680))
|
|
||||||
)
|
|
||||||
net(2 name(IN)
|
|
||||||
rect(poly (-525 -250) (250 2500))
|
|
||||||
rect(poly (-1425 -630) (2100 360))
|
|
||||||
rect(poly (-125 -2230) (250 2500))
|
|
||||||
rect(poly (-1050 -3850) (250 2400))
|
|
||||||
rect(poly (550 1200) (250 2400))
|
|
||||||
rect(poly (-250 -6000) (250 2400))
|
|
||||||
rect(poly (-1050 1200) (250 2400))
|
|
||||||
rect(poly_lbl (-525 -2600) (0 0))
|
|
||||||
rect(poly_cont (-830 -110) (220 220))
|
|
||||||
)
|
|
||||||
net(3 name(OUT)
|
|
||||||
rect(diff_cont (-910 90) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (1380 3380) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 -3820) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-1820 3380) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(metal1 (1310 -3710) (360 2220))
|
|
||||||
rect(metal1 (-1900 -800) (2220 360))
|
|
||||||
rect(metal1 (-2280 -2400) (360 2840))
|
|
||||||
rect(metal1 (-360 -3600) (360 1560))
|
|
||||||
rect(metal1 (1240 2040) (360 1560))
|
|
||||||
rect(metal1 (-360 -5160) (360 1560))
|
|
||||||
rect(metal1 (-1960 2040) (360 1560))
|
|
||||||
rect(metal1_lbl (1420 -2180) (0 0))
|
|
||||||
rect(psd (-1850 525) (525 1750))
|
|
||||||
rect(psd (1050 -1750) (525 1750))
|
|
||||||
rect(nsd (-2100 -5350) (525 1750))
|
|
||||||
rect(nsd (1050 -1750) (525 1750))
|
|
||||||
)
|
|
||||||
net(4 name(VSS)
|
|
||||||
rect(diff_cont (-110 90) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 980) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(diff_cont (-220 -620) (220 220))
|
|
||||||
rect(metal1 (-290 -290) (360 1560))
|
|
||||||
rect(metal1 (-360 -1560) (360 1560))
|
|
||||||
rect(via1 (-305 -705) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(via1 (-250 -1450) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(metal2 (-1525 -775) (2800 1700))
|
|
||||||
rect(metal2_lbl (-160 -540) (0 0))
|
|
||||||
rect(nsd (-1515 -1185) (550 1750))
|
|
||||||
)
|
|
||||||
net(5 name(VDD)
|
|
||||||
rect(diff_cont (-110 2490) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 -1420) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(diff_cont (-220 180) (220 220))
|
|
||||||
rect(metal1 (-290 -1490) (360 1560))
|
|
||||||
rect(metal1 (-360 -1560) (360 1560))
|
|
||||||
rect(via1 (-305 -1505) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(via1 (-250 150) (250 250))
|
|
||||||
rect(metal2 (-1525 -1575) (2800 1700))
|
|
||||||
rect(metal2_lbl (-150 -1250) (0 0))
|
|
||||||
rect(psd (-1525 -475) (550 1750))
|
|
||||||
)
|
|
||||||
net(6 name(BULK)
|
|
||||||
rect(diff_cont (-110 -2160) (220 220))
|
|
||||||
rect(ptie (-510 -450) (800 680))
|
|
||||||
)
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1)
|
|
||||||
pin(2 name(IN))
|
|
||||||
pin(3 name(OUT))
|
|
||||||
pin(4 name(VSS))
|
|
||||||
pin(5 name(VDD))
|
|
||||||
pin(6 name(BULK))
|
|
||||||
|
|
||||||
# Devices and their connections
|
|
||||||
device(1 D$PMOS
|
|
||||||
device(D$PMOS$1 location(800 0))
|
|
||||||
connect(0 S S)
|
|
||||||
connect(1 S D)
|
|
||||||
connect(0 G G)
|
|
||||||
connect(1 G G)
|
|
||||||
connect(0 D D)
|
|
||||||
connect(1 D S)
|
|
||||||
connect(0 B B)
|
|
||||||
connect(1 B B)
|
|
||||||
location(-400 3200)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 3)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 5)
|
|
||||||
terminal(B 1)
|
|
||||||
)
|
|
||||||
device(2 D$NMOS
|
|
||||||
device(D$NMOS$1 location(800 0))
|
|
||||||
connect(0 S S)
|
|
||||||
connect(1 S D)
|
|
||||||
connect(0 G G)
|
|
||||||
connect(1 G G)
|
|
||||||
connect(0 D D)
|
|
||||||
connect(1 D S)
|
|
||||||
connect(0 B B)
|
|
||||||
connect(1 B B)
|
|
||||||
location(-400 -400)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 3)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 4)
|
|
||||||
terminal(B 6)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(INV2PAIR
|
|
||||||
|
|
||||||
# Circuit boundary
|
|
||||||
rect((0 -1640) (5740 7820))
|
|
||||||
|
|
||||||
# Nets with their geometries
|
|
||||||
net(1 name(BULK))
|
|
||||||
net(2)
|
|
||||||
net(3)
|
|
||||||
net(4)
|
|
||||||
net(5)
|
|
||||||
net(6)
|
|
||||||
net(7)
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name(BULK))
|
|
||||||
pin(2)
|
|
||||||
pin(3)
|
|
||||||
pin(4)
|
|
||||||
pin(5)
|
|
||||||
pin(6)
|
|
||||||
pin(7)
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2 location(1700 800)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 5)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
circuit(2 INV2 location(4340 800)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 4)
|
|
||||||
pin(2 6)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(RINGO
|
|
||||||
|
|
||||||
# Circuit boundary
|
|
||||||
rect((-1720 -2440) (26880 7820))
|
|
||||||
|
|
||||||
# Nets with their geometries
|
|
||||||
net(1 name(FB)
|
|
||||||
rect(metal1 (-1700 1620) (360 360))
|
|
||||||
rect(via1 (-305 -305) (250 250))
|
|
||||||
rect(via1 (23190 -250) (250 250))
|
|
||||||
rect(metal2 (-23765 -325) (23840 400))
|
|
||||||
rect(metal2_lbl (-22120 -200) (0 0))
|
|
||||||
)
|
|
||||||
net(2 name(OSC)
|
|
||||||
rect(via1 (24435 1675) (250 250))
|
|
||||||
rect(metal2 (-325 -325) (400 400))
|
|
||||||
rect(metal2_lbl (-200 -200) (0 0))
|
|
||||||
)
|
|
||||||
net(3 name(VDD)
|
|
||||||
rect(metal1 (-180 3900) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal2_lbl (-23940 -2220) (0 0))
|
|
||||||
)
|
|
||||||
net(4 name(VSS)
|
|
||||||
rect(metal1 (-180 -2220) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal1 (2280 -1120) (360 1120))
|
|
||||||
rect(metal2_lbl (-23940 1100) (0 0))
|
|
||||||
)
|
|
||||||
net(5)
|
|
||||||
net(6)
|
|
||||||
net(7)
|
|
||||||
net(8)
|
|
||||||
net(9)
|
|
||||||
net(10)
|
|
||||||
net(11)
|
|
||||||
net(12)
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name(FB))
|
|
||||||
pin(2 name(OSC))
|
|
||||||
pin(3 name(VDD))
|
|
||||||
pin(4 name(VSS))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2PAIR location(19420 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 1)
|
|
||||||
pin(4 10)
|
|
||||||
pin(5 2)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(2 INV2PAIR location(-1700 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 8)
|
|
||||||
pin(4 1)
|
|
||||||
pin(5 9)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(3 INV2PAIR location(3580 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 7)
|
|
||||||
pin(4 9)
|
|
||||||
pin(5 12)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(4 INV2PAIR location(8860 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 6)
|
|
||||||
pin(4 12)
|
|
||||||
pin(5 11)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(5 INV2PAIR location(14140 -800)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 5)
|
|
||||||
pin(4 11)
|
|
||||||
pin(5 10)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Reference netlist
|
|
||||||
reference(
|
|
||||||
|
|
||||||
# Device class section
|
|
||||||
class(PMOS MOS4)
|
|
||||||
class(NMOS MOS4)
|
|
||||||
|
|
||||||
# Circuit section
|
|
||||||
# Circuits are the hierarchical building blocks of the netlist.
|
|
||||||
circuit(INV2
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('5'))
|
|
||||||
net(6 name('6'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
pin(5 name('5'))
|
|
||||||
pin(6 name('6'))
|
|
||||||
|
|
||||||
# Devices and their connections
|
|
||||||
device(1 PMOS
|
|
||||||
name($1)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 5)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 3)
|
|
||||||
terminal(B 1)
|
|
||||||
)
|
|
||||||
device(2 NMOS
|
|
||||||
name($3)
|
|
||||||
param(L 0.25)
|
|
||||||
param(W 3.5)
|
|
||||||
param(AS 1.4)
|
|
||||||
param(AD 1.4)
|
|
||||||
param(PS 6.85)
|
|
||||||
param(PD 6.85)
|
|
||||||
terminal(S 4)
|
|
||||||
terminal(G 2)
|
|
||||||
terminal(D 3)
|
|
||||||
terminal(B 6)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(INV2PAIR
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('5'))
|
|
||||||
net(6 name('6'))
|
|
||||||
net(7 name('7'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
pin(5 name('5'))
|
|
||||||
pin(6 name('6'))
|
|
||||||
pin(7 name('7'))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2 name($2)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 4)
|
|
||||||
pin(2 6)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(INV2PAIRX
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('5'))
|
|
||||||
net(6 name('6'))
|
|
||||||
net(7 name('7'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
pin(5 name('5'))
|
|
||||||
pin(6 name('6'))
|
|
||||||
pin(7 name('7'))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2 name($2)
|
|
||||||
pin(0 7)
|
|
||||||
pin(1 4)
|
|
||||||
pin(2 6)
|
|
||||||
pin(3 3)
|
|
||||||
pin(4 2)
|
|
||||||
pin(5 1)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
circuit(RINGO
|
|
||||||
|
|
||||||
# Nets
|
|
||||||
net(1 name('1'))
|
|
||||||
net(2 name('2'))
|
|
||||||
net(3 name('3'))
|
|
||||||
net(4 name('4'))
|
|
||||||
net(5 name('6'))
|
|
||||||
net(6 name('5'))
|
|
||||||
net(7 name('101'))
|
|
||||||
net(8 name('8'))
|
|
||||||
net(9 name('102'))
|
|
||||||
net(10 name('7'))
|
|
||||||
net(11 name('103'))
|
|
||||||
|
|
||||||
# Outgoing pins and their connections to nets
|
|
||||||
pin(1 name('1'))
|
|
||||||
pin(2 name('2'))
|
|
||||||
pin(3 name('3'))
|
|
||||||
pin(4 name('4'))
|
|
||||||
|
|
||||||
# Subcircuits and their connections
|
|
||||||
circuit(1 INV2PAIR name($1)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 1)
|
|
||||||
pin(4 5)
|
|
||||||
pin(5 2)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(2 INV2PAIR name($2)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 1)
|
|
||||||
pin(4 1)
|
|
||||||
pin(5 6)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(3 INV2PAIR name($3)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 7)
|
|
||||||
pin(4 6)
|
|
||||||
pin(5 8)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(4 INV2PAIR name($4)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 9)
|
|
||||||
pin(4 8)
|
|
||||||
pin(5 10)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
circuit(5 INV2PAIR name($5)
|
|
||||||
pin(0 4)
|
|
||||||
pin(1 3)
|
|
||||||
pin(2 4)
|
|
||||||
pin(3 11)
|
|
||||||
pin(4 10)
|
|
||||||
pin(5 5)
|
|
||||||
pin(6 3)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Cross reference
|
|
||||||
xref(
|
|
||||||
circuit(() INV2PAIRX mismatch
|
|
||||||
xref(
|
|
||||||
)
|
|
||||||
)
|
|
||||||
circuit(INV2 INV2 match
|
|
||||||
xref(
|
|
||||||
net(1 1 match)
|
|
||||||
net(6 6 match)
|
|
||||||
net(2 2 match)
|
|
||||||
net(3 3 match)
|
|
||||||
net(5 5 match)
|
|
||||||
net(4 4 match)
|
|
||||||
pin(0 0 match)
|
|
||||||
pin(5 5 match)
|
|
||||||
pin(1 1 match)
|
|
||||||
pin(2 2 match)
|
|
||||||
pin(4 4 match)
|
|
||||||
pin(3 3 match)
|
|
||||||
device(2 2 match)
|
|
||||||
device(1 1 match)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
circuit(INV2PAIR INV2PAIR nomatch
|
|
||||||
xref(
|
|
||||||
net(2 2 mismatch)
|
|
||||||
net(3 3 mismatch)
|
|
||||||
net(4 4 mismatch)
|
|
||||||
net(5 5 mismatch)
|
|
||||||
net(6 6 match)
|
|
||||||
net(7 7 mismatch)
|
|
||||||
net(1 1 mismatch)
|
|
||||||
pin(1 1 match)
|
|
||||||
pin(2 2 match)
|
|
||||||
pin(3 3 match)
|
|
||||||
pin(4 4 match)
|
|
||||||
pin(5 5 match)
|
|
||||||
pin(6 6 match)
|
|
||||||
pin(0 0 match)
|
|
||||||
circuit(1 () mismatch)
|
|
||||||
circuit(2 1 match)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
circuit(RINGO RINGO nomatch
|
|
||||||
log(
|
|
||||||
entry(error description('Net $I22 is not matching any net from reference netlist'))
|
|
||||||
entry(error description('Net FB is not matching any net from reference netlist'))
|
|
||||||
)
|
|
||||||
xref(
|
|
||||||
net(8 () mismatch)
|
|
||||||
net(7 7 match)
|
|
||||||
net(6 9 match)
|
|
||||||
net(5 11 match)
|
|
||||||
net(9 6 match)
|
|
||||||
net(10 5 match)
|
|
||||||
net(11 10 match)
|
|
||||||
net(12 8 match)
|
|
||||||
net(1 1 mismatch)
|
|
||||||
net(2 2 match)
|
|
||||||
net(3 3 match)
|
|
||||||
net(4 4 match)
|
|
||||||
pin(0 0 match)
|
|
||||||
pin(1 1 match)
|
|
||||||
pin(2 2 match)
|
|
||||||
pin(3 3 match)
|
|
||||||
circuit(() 2 mismatch)
|
|
||||||
circuit(2 () mismatch)
|
|
||||||
circuit(1 1 match)
|
|
||||||
circuit(3 3 match)
|
|
||||||
circuit(4 4 match)
|
|
||||||
circuit(5 5 match)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
Binary file not shown.
Loading…
Reference in New Issue