
 /----------------------------------------------------------------------------\
 |                                                                            |
 |  yosys -- Yosys Open SYnthesis Suite                                       |
 |                                                                            |
 |  Copyright (C) 2012 - 2020  Claire Wolf <claire@symbioticeda.com>          |
 |                                                                            |
 |  Permission to use, copy, modify, and/or distribute this software for any  |
 |  purpose with or without fee is hereby granted, provided that the above    |
 |  copyright notice and this permission notice appear in all copies.         |
 |                                                                            |
 |  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES  |
 |  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF          |
 |  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR   |
 |  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    |
 |  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN     |
 |  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF   |
 |  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.            |
 |                                                                            |
 \----------------------------------------------------------------------------/

 Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os)

[TCL: yosys -import] Command name collision: found pre-existing command `cd' -> skip.
[TCL: yosys -import] Command name collision: found pre-existing command `eval' -> skip.
[TCL: yosys -import] Command name collision: found pre-existing command `exec' -> skip.
[TCL: yosys -import] Command name collision: found pre-existing command `read' -> skip.
[TCL: yosys -import] Command name collision: found pre-existing command `trace' -> skip.

1. Executing Liberty frontend.
Imported 428 cell types from liberty file.

2. Executing Verilog-2005 frontend: /project/openlane/user_id_programming/../../verilog/rtl/user_id_programming.v
Parsing SystemVerilog input from `/project/openlane/user_id_programming/../../verilog/rtl/user_id_programming.v' to AST representation.
Generating RTLIL representation for module `\user_id_programming'.
Successfully finished Verilog frontend.

3. Generating Graphviz representation of design.
Writing dot description to `/project/openlane/user_id_programming/runs/user_id_programming/tmp/synthesis/hierarchy.dot'.
Dumping module user_id_programming to page 1.

4. Executing HIERARCHY pass (managing design hierarchy).

4.1. Analyzing design hierarchy..
Top module:  \user_id_programming

4.2. Analyzing design hierarchy..
Top module:  \user_id_programming
Removed 0 unused modules.

5. Executing SYNTH pass.

5.1. Executing HIERARCHY pass (managing design hierarchy).

5.1.1. Analyzing design hierarchy..
Top module:  \user_id_programming

5.1.2. Analyzing design hierarchy..
Top module:  \user_id_programming
Removed 0 unused modules.

5.2. Executing PROC pass (convert processes to netlists).

5.2.1. Executing PROC_CLEAN pass (remove empty switches from decision trees).
Cleaned up 0 empty switches.

5.2.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
Removed a total of 0 dead cases.

5.2.3. Executing PROC_PRUNE pass (remove redundant assignments in processes).
Removed 0 redundant assignments.
Promoted 0 assignments to connections.

5.2.4. Executing PROC_INIT pass (extract init attributes).

5.2.5. Executing PROC_ARST pass (detect async resets in processes).

5.2.6. Executing PROC_MUX pass (convert decision trees to multiplexers).

5.2.7. Executing PROC_DLATCH pass (convert process syncs to latches).

5.2.8. Executing PROC_DFF pass (convert process syncs to FFs).

5.2.9. Executing PROC_CLEAN pass (remove empty switches from decision trees).
Cleaned up 0 empty switches.

5.3. Executing FLATTEN pass (flatten design).

5.4. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

5.5. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.6. Executing CHECK pass (checking for obvious problems).
checking module user_id_programming..
found and reported 0 problems.

5.7. Executing OPT pass (performing simple optimizations).

5.7.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

5.7.2. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

5.7.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
Running muxtree optimizer on module \user_id_programming..
  Creating internal representation of mux trees.
  No muxes found in this module.
Removed 0 multiplexer ports.

5.7.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
  Optimizing cells in module \user_id_programming.
Performed a total of 0 changes.

5.7.5. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

5.7.6. Executing OPT_DFF pass (perform DFF optimizations).

5.7.7. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.7.8. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

5.7.9. Finished OPT passes. (There is nothing left to do.)

5.8. Executing FSM pass (extract and optimize FSM).

5.8.1. Executing FSM_DETECT pass (finding FSMs in design).

5.8.2. Executing FSM_EXTRACT pass (extracting FSM from design).

5.8.3. Executing FSM_OPT pass (simple optimizations of FSMs).

5.8.4. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.8.5. Executing FSM_OPT pass (simple optimizations of FSMs).

5.8.6. Executing FSM_RECODE pass (re-assigning FSM state encoding).

5.8.7. Executing FSM_INFO pass (dumping all available information on FSM cells).

5.8.8. Executing FSM_MAP pass (mapping FSMs to basic logic).

5.9. Executing OPT pass (performing simple optimizations).

5.9.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

5.9.2. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

5.9.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
Running muxtree optimizer on module \user_id_programming..
  Creating internal representation of mux trees.
  No muxes found in this module.
Removed 0 multiplexer ports.

5.9.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
  Optimizing cells in module \user_id_programming.
Performed a total of 0 changes.

5.9.5. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

5.9.6. Executing OPT_DFF pass (perform DFF optimizations).

5.9.7. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.9.8. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

5.9.9. Finished OPT passes. (There is nothing left to do.)

5.10. Executing WREDUCE pass (reducing word size of cells).

5.11. Executing PEEPOPT pass (run peephole optimizers).

5.12. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.13. Executing ALUMACC pass (create $alu and $macc cells).
Extracting $alu and $macc cells in module user_id_programming:
  created 0 $alu and 0 $macc cells.

5.14. Executing SHARE pass (SAT-based resource sharing).

5.15. Executing OPT pass (performing simple optimizations).

5.15.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

5.15.2. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

5.15.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
Running muxtree optimizer on module \user_id_programming..
  Creating internal representation of mux trees.
  No muxes found in this module.
Removed 0 multiplexer ports.

5.15.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
  Optimizing cells in module \user_id_programming.
Performed a total of 0 changes.

5.15.5. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

5.15.6. Executing OPT_DFF pass (perform DFF optimizations).

5.15.7. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.15.8. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

5.15.9. Finished OPT passes. (There is nothing left to do.)

5.16. Executing MEMORY pass.

5.16.1. Executing OPT_MEM pass (optimize memories).
Performed a total of 0 transformations.

5.16.2. Executing MEMORY_DFF pass (merging $dff cells to $memrd and $memwr).

5.16.3. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.16.4. Executing MEMORY_SHARE pass (consolidating $memrd/$memwr cells).

5.16.5. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.16.6. Executing MEMORY_COLLECT pass (generating $mem cells).

5.17. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.18. Executing OPT pass (performing simple optimizations).

5.18.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

5.18.2. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

5.18.3. Executing OPT_DFF pass (perform DFF optimizations).

5.18.4. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.18.5. Finished fast OPT passes.

5.19. Executing MEMORY_MAP pass (converting $mem cells to logic and flip-flops).

5.20. Executing OPT pass (performing simple optimizations).

5.20.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

5.20.2. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

5.20.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
Running muxtree optimizer on module \user_id_programming..
  Creating internal representation of mux trees.
  No muxes found in this module.
Removed 0 multiplexer ports.

5.20.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
  Optimizing cells in module \user_id_programming.
Performed a total of 0 changes.

5.20.5. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

5.20.6. Executing OPT_SHARE pass.

5.20.7. Executing OPT_DFF pass (perform DFF optimizations).

5.20.8. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.20.9. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

5.20.10. Finished OPT passes. (There is nothing left to do.)

5.21. Executing TECHMAP pass (map to technology primitives).

5.21.1. Executing Verilog-2005 frontend: /build/bin/../share/yosys/techmap.v
Parsing Verilog input from `/build/bin/../share/yosys/techmap.v' to AST representation.
Generating RTLIL representation for module `\_90_simplemap_bool_ops'.
Generating RTLIL representation for module `\_90_simplemap_reduce_ops'.
Generating RTLIL representation for module `\_90_simplemap_logic_ops'.
Generating RTLIL representation for module `\_90_simplemap_compare_ops'.
Generating RTLIL representation for module `\_90_simplemap_various'.
Generating RTLIL representation for module `\_90_simplemap_registers'.
Generating RTLIL representation for module `\_90_shift_ops_shr_shl_sshl_sshr'.
Generating RTLIL representation for module `\_90_shift_shiftx'.
Generating RTLIL representation for module `\_90_fa'.
Generating RTLIL representation for module `\_90_lcu'.
Generating RTLIL representation for module `\_90_alu'.
Generating RTLIL representation for module `\_90_macc'.
Generating RTLIL representation for module `\_90_alumacc'.
Generating RTLIL representation for module `\$__div_mod_u'.
Generating RTLIL representation for module `\$__div_mod_trunc'.
Generating RTLIL representation for module `\_90_div'.
Generating RTLIL representation for module `\_90_mod'.
Generating RTLIL representation for module `\$__div_mod_floor'.
Generating RTLIL representation for module `\_90_divfloor'.
Generating RTLIL representation for module `\_90_modfloor'.
Generating RTLIL representation for module `\_90_pow'.
Generating RTLIL representation for module `\_90_pmux'.
Generating RTLIL representation for module `\_90_lut'.
Successfully finished Verilog frontend.

5.21.2. Continuing TECHMAP pass.
No more expansions possible.
<suppressed ~67 debug messages>

5.22. Executing OPT pass (performing simple optimizations).

5.22.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

5.22.2. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

5.22.3. Executing OPT_DFF pass (perform DFF optimizations).

5.22.4. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.22.5. Finished fast OPT passes.

5.23. Executing ABC pass (technology mapping using ABC).

5.23.1. Extracting gate netlist of module `\user_id_programming' to `<abc-temp-dir>/input.blif'..
Extracted 0 gates and 0 wires to a netlist network with 0 inputs and 0 outputs.
Don't call ABC as there is nothing to map.
Removing temp directory.

5.24. Executing OPT pass (performing simple optimizations).

5.24.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

5.24.2. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

5.24.3. Executing OPT_DFF pass (perform DFF optimizations).

5.24.4. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

5.24.5. Finished fast OPT passes.

5.25. Executing HIERARCHY pass (managing design hierarchy).

5.25.1. Analyzing design hierarchy..
Top module:  \user_id_programming

5.25.2. Analyzing design hierarchy..
Top module:  \user_id_programming
Removed 0 unused modules.

5.26. Printing statistics.

=== user_id_programming ===

   Number of wires:                  3
   Number of wire bits:             96
   Number of public wires:           3
   Number of public wire bits:      96
   Number of memories:               0
   Number of memory bits:            0
   Number of processes:              0
   Number of cells:                 32
     sky130_fd_sc_hd__conb_1        32

5.27. Executing CHECK pass (checking for obvious problems).
checking module user_id_programming..
found and reported 0 problems.

6. Executing SHARE pass (SAT-based resource sharing).

7. Executing OPT pass (performing simple optimizations).

7.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

7.2. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

7.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
Running muxtree optimizer on module \user_id_programming..
  Creating internal representation of mux trees.
  No muxes found in this module.
Removed 0 multiplexer ports.

7.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
  Optimizing cells in module \user_id_programming.
Performed a total of 0 changes.

7.5. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\user_id_programming'.
Removed a total of 0 cells.

7.6. Executing OPT_DFF pass (perform DFF optimizations).

7.7. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

7.8. Executing OPT_EXPR pass (perform const folding).
Optimizing module user_id_programming.

7.9. Finished OPT passes. (There is nothing left to do.)

8. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..
Removed 0 unused cells and 1 unused wires.
<suppressed ~1 debug messages>

9. Printing statistics.

=== user_id_programming ===

   Number of wires:                  2
   Number of wire bits:             64
   Number of public wires:           2
   Number of public wire bits:      64
   Number of memories:               0
   Number of memory bits:            0
   Number of processes:              0
   Number of cells:                 32
     sky130_fd_sc_hd__conb_1        32

10. Executing DFFLIBMAP pass (mapping DFF cells to sequential cells from liberty file).
  cell sky130_fd_sc_hd__dfxtp_4 (noninv, pins=3, area=23.77) is a direct match for cell type $_DFF_P_.
  cell sky130_fd_sc_hd__dfrtp_4 (noninv, pins=4, area=28.78) is a direct match for cell type $_DFF_PN0_.
  cell sky130_fd_sc_hd__dfstp_4 (noninv, pins=4, area=30.03) is a direct match for cell type $_DFF_PN1_.
  cell sky130_fd_sc_hd__dfbbn_2 (noninv, pins=6, area=35.03) is a direct match for cell type $_DFFSR_NNN_.
  final dff cell mappings:
    unmapped dff cell: $_DFF_N_
    \sky130_fd_sc_hd__dfxtp_4 _DFF_P_ (.CLK( C), .D( D), .Q( Q));
    unmapped dff cell: $_DFF_NN0_
    unmapped dff cell: $_DFF_NN1_
    unmapped dff cell: $_DFF_NP0_
    unmapped dff cell: $_DFF_NP1_
    \sky130_fd_sc_hd__dfrtp_4 _DFF_PN0_ (.CLK( C), .D( D), .Q( Q), .RESET_B( R));
    \sky130_fd_sc_hd__dfstp_4 _DFF_PN1_ (.CLK( C), .D( D), .Q( Q), .SET_B( R));
    unmapped dff cell: $_DFF_PP0_
    unmapped dff cell: $_DFF_PP1_
    \sky130_fd_sc_hd__dfbbn_2 _DFFSR_NNN_ (.CLK_N( C), .D( D), .Q( Q), .Q_N(~Q), .RESET_B( R), .SET_B( S));
    unmapped dff cell: $_DFFSR_NNP_
    unmapped dff cell: $_DFFSR_NPN_
    unmapped dff cell: $_DFFSR_NPP_
    unmapped dff cell: $_DFFSR_PNN_
    unmapped dff cell: $_DFFSR_PNP_
    unmapped dff cell: $_DFFSR_PPN_
    unmapped dff cell: $_DFFSR_PPP_

10.1. Executing DFFLEGALIZE pass (convert FFs to types supported by the target).
Mapping DFF cells in module `\user_id_programming':

11. Printing statistics.

=== user_id_programming ===

   Number of wires:                  2
   Number of wire bits:             64
   Number of public wires:           2
   Number of public wire bits:      64
   Number of memories:               0
   Number of memory bits:            0
   Number of processes:              0
   Number of cells:                 32
     sky130_fd_sc_hd__conb_1        32

12. Executing ABC pass (technology mapping using ABC).

12.1. Extracting gate netlist of module `\user_id_programming' to `/tmp/yosys-abc-O7MXe7/input.blif'..
Extracted 0 gates and 0 wires to a netlist network with 0 inputs and 0 outputs.
Don't call ABC as there is nothing to map.
Removing temp directory.

13. Executing SETUNDEF pass (replace undef values with defined constants).

14. Executing HILOMAP pass (mapping to constant drivers).

15. Executing SPLITNETS pass (splitting up multi-bit signals).

16. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \user_id_programming..

17. Executing INSBUF pass (insert buffer cells for connected wires).

18. Executing CHECK pass (checking for obvious problems).
checking module user_id_programming..
found and reported 0 problems.

19. Printing statistics.

=== user_id_programming ===

   Number of wires:                 33
   Number of wire bits:             64
   Number of public wires:          33
   Number of public wire bits:      64
   Number of memories:               0
   Number of memory bits:            0
   Number of processes:              0
   Number of cells:                 32
     sky130_fd_sc_hd__conb_1        32

   Chip area for module '\user_id_programming': 120.115200

20. Executing Verilog backend.
Dumping module `\user_id_programming'.

End of script. Logfile hash: 235bb5ed9f, CPU: user 0.85s system 0.03s, MEM: 43.77 MB peak
Yosys 0.9+3621 (git sha1 84e9fa7, gcc 8.3.1 -fPIC -Os)
Time spent: 37% 2x read_liberty (0 sec), 36% 4x stat (0 sec), ...
