NEXT CELL: OAI22X1 NEXT STEP: Running cell2spice NEXT STEP: Running lclayout 2020-07-20 16:23:03 tech_util INFO: Loading tech file: ../Tech/librecell_tech.py 2020-07-20 16:23:03 standalone INFO: Placement algorithm: EulerPlacer 2020-07-20 16:23:03 standalone INFO: Signal routing algorithm: DijkstraRouter 2020-07-20 16:23:03 standalone INFO: Load netlist: libresilicon.sp 2020-07-20 16:23:03 standalone INFO: Supply net: VDD 2020-07-20 16:23:03 standalone INFO: Ground net: GND 2020-07-20 16:23:03 standalone DEBUG: Rescale transistors. 2020-07-20 16:23:03 standalone DEBUG: Setup layout. 2020-07-20 16:23:03 standalone INFO: Find transistor placement 2020-07-20 16:23:03 euler_placer DEBUG: Find eulerian tours. 2020-07-20 16:23:03 euler_placer DEBUG: Number of even-degree graphs: 1 2020-07-20 16:23:03 euler_placer DEBUG: Number of eulertours: 8 2020-07-20 16:23:03 euler_placer DEBUG: Number of deduplicated eulertours: 8 2020-07-20 16:23:03 euler_placer DEBUG: Number of even-degree graphs: 1 2020-07-20 16:23:03 euler_placer DEBUG: Number of eulertours: 2 2020-07-20 16:23:03 euler_placer DEBUG: Number of deduplicated eulertours: 2 2020-07-20 16:23:03 euler_placer DEBUG: Number of NMOS placements with cyclic shifts: 16 2020-07-20 16:23:03 euler_placer DEBUG: Number of PMOS placements with cyclic shifts: 8 2020-07-20 16:23:03 euler_placer INFO: Found multiple optimal placements: 2. Take the first. 2020-07-20 16:23:03 standalone INFO: Cell placement: (Y, B, 1) | (1, A, VDD) | (VDD, C, 2) | (2, D, Y) (3, B, GND) | (GND, A, 3) | (3, C, Y) | (Y, D, 3) 2020-07-20 16:23:03 standalone DEBUG: Draw transistors. 2020-07-20 16:23:03 standalone DEBUG: Draw cell template. 2020-07-20 16:23:03 routing_graph DEBUG: Create routing graph. 2020-07-20 16:23:04 routing_graph INFO: Terminal node A poly ('poly', (2080, 1230)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node A poly ('poly', (2080, 480)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node A poly ('poly', (2080, 3680)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node A poly ('poly', (2080, 2930)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node B poly ('poly', (1040, 3680)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node B poly ('poly', (1040, 2930)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node D poly ('poly', (4160, 1230)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node D poly ('poly', (4160, 480)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node B poly ('poly', (1040, 1230)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node B poly ('poly', (1040, 480)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node C poly ('poly', (3120, 3680)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node C poly ('poly', (3120, 2930)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node C poly ('poly', (3120, 1230)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node C poly ('poly', (3120, 480)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node D poly ('poly', (4160, 3680)) 2020-07-20 16:23:04 routing_graph INFO: Terminal node D poly ('poly', (4160, 2930)) 2020-07-20 16:23:04 standalone INFO: Start routing 2020-07-20 16:23:04 standalone DEBUG: Find conflicting nodes. 2020-07-20 16:23:11 hv_router DEBUG: Start global routing with corner avoidance. 2020-07-20 16:23:11 pathfinder INFO: Start global routing. 2020-07-20 16:23:11 pathfinder DEBUG: Mean edge cost (without virtual edges): 725783.30 2020-07-20 16:23:11 pathfinder DEBUG: Pre-scaling factor for edge costs: 1/725783.30 2020-07-20 16:23:19 pathfinder INFO: Routing iteration 0 2020-07-20 16:23:19 pathfinder DEBUG: Routing order: ['Y', 'VDD', 'GND', 'D', 'C', 'B', 'A', '3', '2', '1'] 2020-07-20 16:23:20 pathfinder DEBUG: weight of GND: 248252.00 2020-07-20 16:23:20 pathfinder DEBUG: weight of 3: 1021003.00 2020-07-20 16:23:20 pathfinder DEBUG: weight of Y: 1459755.00 2020-07-20 16:23:20 pathfinder DEBUG: weight of 1: 0.00 2020-07-20 16:23:20 pathfinder DEBUG: weight of VDD: 248252.00 2020-07-20 16:23:20 pathfinder DEBUG: weight of 2: 0.00 2020-07-20 16:23:20 pathfinder DEBUG: weight of A: 547252.00 2020-07-20 16:23:20 pathfinder DEBUG: weight of B: 547252.00 2020-07-20 16:23:20 pathfinder DEBUG: weight of D: 547252.00 2020-07-20 16:23:20 pathfinder DEBUG: weight of C: 547252.00 2020-07-20 16:23:20 pathfinder INFO: Routing iteration 1 2020-07-20 16:23:20 pathfinder DEBUG: Routing order: ['Y', '3', 'D', 'C', 'B', 'A', 'VDD', 'GND', '2', '1'] 2020-07-20 16:23:21 pathfinder DEBUG: weight of GND: 5191504.00 2020-07-20 16:23:21 pathfinder DEBUG: weight of 3: 761002.00 2020-07-20 16:23:21 pathfinder DEBUG: weight of Y: 501000.00 2020-07-20 16:23:21 pathfinder DEBUG: weight of 1: 0.00 2020-07-20 16:23:21 pathfinder DEBUG: weight of VDD: 248252.00 2020-07-20 16:23:21 pathfinder DEBUG: weight of 2: 0.00 2020-07-20 16:23:21 pathfinder DEBUG: weight of A: 547252.00 2020-07-20 16:23:21 pathfinder DEBUG: weight of B: 336000.00 2020-07-20 16:23:21 pathfinder DEBUG: weight of D: 336000.00 2020-07-20 16:23:21 pathfinder DEBUG: weight of C: 336000.00 2020-07-20 16:23:21 pathfinder INFO: Routing iteration 2 2020-07-20 16:23:21 pathfinder DEBUG: Routing order: ['GND', '3', 'A', 'Y', 'D', 'C', 'B', 'VDD', '2', '1'] 2020-07-20 16:23:22 pathfinder DEBUG: weight of GND: 248252.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of 3: 761002.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of Y: 5493002.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of 1: 0.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of VDD: 248252.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of 2: 0.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of A: 336000.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of B: 547252.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of D: 336000.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of C: 336000.00 2020-07-20 16:23:22 pathfinder INFO: Routing iteration 3 2020-07-20 16:23:22 pathfinder DEBUG: Routing order: ['Y', '3', 'B', 'D', 'C', 'A', 'VDD', 'GND', '2', '1'] 2020-07-20 16:23:22 pathfinder DEBUG: weight of GND: 5191504.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of 3: 761002.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of Y: 501000.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of 1: 0.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of VDD: 248252.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of 2: 0.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of A: 547252.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of B: 336000.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of D: 336000.00 2020-07-20 16:23:22 pathfinder DEBUG: weight of C: 336000.00 2020-07-20 16:23:22 pathfinder INFO: Routing iteration 4 2020-07-20 16:23:22 pathfinder DEBUG: Routing order: ['GND', '3', 'A', 'Y', 'D', 'C', 'B', 'VDD', '2', '1'] 2020-07-20 16:23:23 pathfinder DEBUG: weight of GND: 248252.00 2020-07-20 16:23:23 pathfinder DEBUG: weight of 3: 761002.00 2020-07-20 16:23:23 pathfinder DEBUG: weight of Y: 5493002.00 2020-07-20 16:23:23 pathfinder DEBUG: weight of 1: 0.00 2020-07-20 16:23:23 pathfinder DEBUG: weight of VDD: 248252.00 2020-07-20 16:23:23 pathfinder DEBUG: weight of 2: 0.00 2020-07-20 16:23:23 pathfinder DEBUG: weight of A: 336000.00 2020-07-20 16:23:23 pathfinder DEBUG: weight of B: 336000.00 2020-07-20 16:23:23 pathfinder DEBUG: weight of D: 336000.00 2020-07-20 16:23:23 pathfinder DEBUG: weight of C: 336000.00 2020-07-20 16:23:23 pathfinder INFO: Routing iteration 5 2020-07-20 16:23:23 pathfinder DEBUG: Routing order: ['Y', '3', 'D', 'C', 'B', 'A', 'VDD', 'GND', '2', '1'] 2020-07-20 16:23:24 pathfinder DEBUG: weight of GND: 5191504.00 2020-07-20 16:23:24 pathfinder DEBUG: weight of 3: 761002.00 2020-07-20 16:23:24 pathfinder DEBUG: weight of Y: 501000.00 2020-07-20 16:23:24 pathfinder DEBUG: weight of 1: 0.00 2020-07-20 16:23:24 pathfinder DEBUG: weight of VDD: 248252.00 2020-07-20 16:23:24 pathfinder DEBUG: weight of 2: 0.00 2020-07-20 16:23:24 pathfinder DEBUG: weight of A: 336000.00 2020-07-20 16:23:24 pathfinder DEBUG: weight of B: 336000.00 2020-07-20 16:23:24 pathfinder DEBUG: weight of D: 547252.00 2020-07-20 16:23:24 pathfinder DEBUG: weight of C: 336000.00 2020-07-20 16:23:24 pathfinder INFO: Routing iteration 6 2020-07-20 16:23:24 pathfinder DEBUG: Routing order: ['GND', '3', 'D', 'Y', 'C', 'B', 'A', 'VDD', '2', '1'] 2020-07-20 16:23:25 pathfinder DEBUG: weight of GND: 248252.00 2020-07-20 16:23:25 pathfinder DEBUG: weight of 3: 1118506.00 2020-07-20 16:23:25 pathfinder DEBUG: weight of Y: 5493002.00 2020-07-20 16:23:25 pathfinder DEBUG: weight of 1: 0.00 2020-07-20 16:23:25 pathfinder DEBUG: weight of VDD: 248252.00 2020-07-20 16:23:25 pathfinder DEBUG: weight of 2: 0.00 2020-07-20 16:23:25 pathfinder DEBUG: weight of A: 2000002.00 2020-07-20 16:23:25 pathfinder DEBUG: weight of B: 2000002.00 2020-07-20 16:23:25 pathfinder DEBUG: weight of D: 336000.00 2020-07-20 16:23:25 pathfinder DEBUG: weight of C: 336000.00 2020-07-20 16:23:25 pathfinder INFO: Global routing done in 6 iterations 2020-07-20 16:23:25 pathfinder INFO: Run single-net optimizations. 2020-07-20 16:23:25 pathfinder DEBUG: Single-net optimization: GND 2020-07-20 16:23:25 pathfinder DEBUG: Old weight for GND: 0.34204699771209307 2020-07-20 16:23:25 pathfinder DEBUG: New weight for GND: 0.34204699771209307 2020-07-20 16:23:25 pathfinder DEBUG: Single-net optimization: 3 2020-07-20 16:23:25 pathfinder DEBUG: Old weight for 3: 1.5411018611046934 2020-07-20 16:23:25 pathfinder DEBUG: New weight for 3: 1.5411018611046934 2020-07-20 16:23:25 pathfinder DEBUG: Single-net optimization: Y 2020-07-20 16:23:25 pathfinder DEBUG: Old weight for Y: 7.568377465343774 2020-07-20 16:23:25 pathfinder DEBUG: New weight for Y: 8.777424291852107 2020-07-20 16:23:25 pathfinder DEBUG: Single-net optimization: 1 2020-07-20 16:23:25 pathfinder DEBUG: Old weight for 1: 0 2020-07-20 16:23:25 pathfinder DEBUG: New weight for 1: 0 2020-07-20 16:23:25 pathfinder DEBUG: Single-net optimization: VDD 2020-07-20 16:23:25 pathfinder DEBUG: Old weight for VDD: 0.34204699771209307 2020-07-20 16:23:25 pathfinder DEBUG: New weight for VDD: 0.34204699771209307 2020-07-20 16:23:25 pathfinder DEBUG: Single-net optimization: 2 2020-07-20 16:23:25 pathfinder DEBUG: Old weight for 2: 0 2020-07-20 16:23:25 pathfinder DEBUG: New weight for 2: 0 2020-07-20 16:23:25 pathfinder DEBUG: Single-net optimization: A 2020-07-20 16:23:26 pathfinder DEBUG: Old weight for A: 2.7556461962770955 2020-07-20 16:23:26 pathfinder DEBUG: New weight for A: 2.7556461962770955 2020-07-20 16:23:26 pathfinder DEBUG: Single-net optimization: B 2020-07-20 16:23:26 pathfinder DEBUG: Old weight for B: 2.755646196277095 2020-07-20 16:23:26 pathfinder DEBUG: New weight for B: 2.755646196277095 2020-07-20 16:23:26 pathfinder DEBUG: Single-net optimization: D 2020-07-20 16:23:26 pathfinder DEBUG: Old weight for D: 0.4629480980264538 2020-07-20 16:23:26 pathfinder DEBUG: New weight for D: 0.7540156920868246 2020-07-20 16:23:26 pathfinder DEBUG: Single-net optimization: C 2020-07-20 16:23:26 pathfinder DEBUG: Old weight for C: 0.4629480980264538 2020-07-20 16:23:26 pathfinder DEBUG: New weight for C: 0.4629480980264538 2020-07-20 16:23:26 standalone DEBUG: Drawing wires 2020-07-20 16:23:26 standalone DEBUG: Draw via: diff_contact (1560, 845) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (1560, 845) 2020-07-20 16:23:26 standalone DEBUG: Drawing wires 2020-07-20 16:23:26 standalone DEBUG: Draw via: diff_contact (2600, 845) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (2600, 845) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (4680, 845) 2020-07-20 16:23:26 standalone DEBUG: Draw via: diff_contact (4680, 845) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (520, 845) 2020-07-20 16:23:26 standalone DEBUG: Draw via: diff_contact (520, 845) 2020-07-20 16:23:26 standalone DEBUG: Drawing wires 2020-07-20 16:23:26 standalone DEBUG: Draw via: diff_contact (3640, 845) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (3640, 1235) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (4680, 3315) 2020-07-20 16:23:26 standalone DEBUG: Draw via: diff_contact (4680, 3315) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (520, 3315) 2020-07-20 16:23:26 standalone DEBUG: Draw via: diff_contact (520, 3315) 2020-07-20 16:23:26 standalone DEBUG: Drawing wires 2020-07-20 16:23:26 standalone DEBUG: Drawing wires 2020-07-20 16:23:26 standalone DEBUG: Draw via: diff_contact (2600, 3315) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (2600, 3315) 2020-07-20 16:23:26 standalone DEBUG: Drawing wires 2020-07-20 16:23:26 standalone DEBUG: Drawing wires 2020-07-20 16:23:26 standalone DEBUG: Draw via: poly_contact (2080, 455) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (2080, 585) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (2080, 2925) 2020-07-20 16:23:26 standalone DEBUG: Draw via: poly_contact (2080, 2925) 2020-07-20 16:23:26 standalone DEBUG: Drawing wires 2020-07-20 16:23:26 standalone DEBUG: Draw via: poly_contact (1040, 2925) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (1040, 2925) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (1040, 585) 2020-07-20 16:23:26 standalone DEBUG: Draw via: poly_contact (1040, 455) 2020-07-20 16:23:26 standalone DEBUG: Drawing wires 2020-07-20 16:23:26 standalone DEBUG: Draw via: poly_contact (4160, 1235) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (4160, 1235) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (4160, 2925) 2020-07-20 16:23:26 standalone DEBUG: Draw via: poly_contact (4160, 2925) 2020-07-20 16:23:26 standalone DEBUG: Drawing wires 2020-07-20 16:23:26 standalone DEBUG: Draw via: poly_contact (3120, 2925) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (3120, 2925) 2020-07-20 16:23:26 standalone DEBUG: Draw via: via1 (3120, 1235) 2020-07-20 16:23:26 standalone DEBUG: Draw via: poly_contact (3120, 1235) 2020-07-20 16:23:26 drc_cleaner DEBUG: Convert polygons into symbolic polygons. 2020-07-20 16:23:26 drc_cleaner INFO: SMT solver: Z3Solver 2020-07-20 16:23:26 drc_cleaner DEBUG: Fixed polygons: 68 2020-07-20 16:23:26 drc_cleaner DEBUG: Free polygons: 6 2020-07-20 16:23:26 drc_cleaner DEBUG: Assuming immutable via shapes. Traceback (most recent call last): File "/usr/local/bin/lclayout", line 11, in load_entry_point('librecell-layout==0.0.5', 'console_scripts', 'lclayout')() File "/usr/local/lib/python3.8/dist-packages/librecell_layout-0.0.5-py3.8.egg/lclayout/standalone.py", line 736, in main cell, pin_geometries = layouter.create_cell_layout(cell_name, netlist_path) File "/usr/local/lib/python3.8/dist-packages/librecell_layout-0.0.5-py3.8.egg/lclayout/standalone.py", line 627, in create_cell_layout self._09_post_process() File "/usr/local/lib/python3.8/dist-packages/librecell_layout-0.0.5-py3.8.egg/lclayout/standalone.py", line 571, in _09_post_process fix_min_area(tech, self.shapes, debug=self.debug_smt_solver) File "/usr/local/lib/python3.8/dist-packages/librecell_layout-0.0.5-py3.8.egg/lclayout/standalone.py", line 802, in fix_min_area success = drc_cleaner.clean(tech, File "/usr/local/lib/python3.8/dist-packages/librecell_layout-0.0.5-py3.8.egg/lclayout/drc_cleaner/drc_cleaner.py", line 257, in clean via_layers = set(tech.via_layers.values()) AttributeError: 'Graph' object has no attribute 'values' Cannot open outputlib/OAI22X1.gds, outputlib/OAI22X1.strm or outputlib/OAI22X1 to read GDS-II stream input. NEXT STEP: magic2 Total Nets: 1 Nets extracted: 0 (0.000000) Nets output: 0 (0.000000) Total Nets: 1 Nets extracted: 0 (0.000000) Nets output: 0 (0.000000) NEXT STEP: magic3 NEXT STEP: Generating Liberty Template ERROR: A cell without an input! NEXT STEP: Characterization Traceback (most recent call last): File "/usr/local/bin/lctime", line 11, in load_entry_point('librecell-lib==0.0.3.post0', 'console_scripts', 'lctime')() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 490, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2854, in load_entry_point return ep.load() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2445, in load return self.resolve() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2451, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) ModuleNotFoundError: No module named 'lclib.characterization.standalone' NEXT STEP: Visualisation NEXT STEP: gds2mag NEXT STEP: mag2svg