| |
| /----------------------------------------------------------------------------\ |
| | | |
| | yosys -- Yosys Open SYnthesis Suite | |
| | | |
| | Copyright (C) 2012 - 2020 Claire Xenia Wolf <claire@yosyshq.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.15+11 (git sha1 cbece4af0, clang 10.0.0-4ubuntu1 -fPIC -Os) |
| |
| |
| -- Executing script file `../model/design.ys' -- |
| |
| 1. Executing Verilog-2005 frontend: hyperram.v |
| Parsing formal SystemVerilog input from `hyperram.v' to AST representation. |
| Warning: Yosys has only limited support for tri-state logic at the moment. (hyperram.v:51) |
| Warning: Yosys has only limited support for tri-state logic at the moment. (hyperram.v:52) |
| Warning: Yosys has only limited support for tri-state logic at the moment. (hyperram.v:96) |
| Warning: Yosys has only limited support for tri-state logic at the moment. (hyperram.v:97) |
| Storing AST representation for module `$abstract\hyperram'. |
| Successfully finished Verilog frontend. |
| |
| 2. Executing PREP pass. |
| |
| 2.1. Executing HIERARCHY pass (managing design hierarchy). |
| |
| 2.2. Executing AST frontend in derive mode using pre-parsed AST for module `\hyperram'. |
| Generating RTLIL representation for module `\hyperram'. |
| Warning: wire '\transaction_end' is assigned in a block at hyperram.v:98.3-98.22. |
| Warning: wire '\transaction_end' is assigned in a block at hyperram.v:106.5-106.24. |
| Warning: wire '\rst' is assigned in a block at hyperram.v:281.4-281.11. |
| Warning: wire '\address' is assigned in a block at hyperram.v:282.4-282.24. |
| Warning: wire '\data_in' is assigned in a block at hyperram.v:287.4-287.24. |
| Warning: wire '\data_out' is assigned in a block at hyperram.v:288.4-288.25. |
| Warning: wire '\rst' is assigned in a block at hyperram.v:292.4-292.11. |
| |
| 2.2.1. Analyzing design hierarchy.. |
| Top module: \hyperram |
| |
| 2.2.2. Analyzing design hierarchy.. |
| Top module: \hyperram |
| Removing unused module `$abstract\hyperram'. |
| Removed 1 unused modules. |
| Module hyperram directly or indirectly contains formal properties -> setting "keep" attribute. |
| |
| 2.3. Executing PROC pass (convert processes to netlists). |
| |
| 2.3.1. Executing PROC_CLEAN pass (remove empty switches from decision trees). |
| Cleaned up 0 empty switches. |
| |
| 2.3.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees). |
| Marked 6 switch rules as full_case in process $proc$hyperram.v:0$22 in module hyperram. |
| Marked 1 switch rules as full_case in process $proc$hyperram.v:72$21 in module hyperram. |
| Marked 1 switch rules as full_case in process $proc$hyperram.v:32$10 in module hyperram. |
| Removed a total of 0 dead cases. |
| |
| 2.3.3. Executing PROC_PRUNE pass (remove redundant assignments in processes). |
| Removed 5 redundant assignments. |
| Promoted 53 assignments to connections. |
| |
| 2.3.4. Executing PROC_INIT pass (extract init attributes). |
| Found init rule in `\hyperram.$proc$hyperram.v:0$97'. |
| Set init value: $formal$hyperram.v:304$9_EN = 1'0 |
| Found init rule in `\hyperram.$proc$hyperram.v:0$95'. |
| Set init value: $formal$hyperram.v:303$8_EN = 1'0 |
| Found init rule in `\hyperram.$proc$hyperram.v:0$93'. |
| Set init value: $formal$hyperram.v:302$7_EN = 1'0 |
| Found init rule in `\hyperram.$proc$hyperram.v:0$91'. |
| Set init value: $formal$hyperram.v:301$6_EN = 1'0 |
| Found init rule in `\hyperram.$proc$hyperram.v:0$89'. |
| Set init value: $formal$hyperram.v:300$5_EN = 1'0 |
| Found init rule in `\hyperram.$proc$hyperram.v:0$87'. |
| Set init value: $formal$hyperram.v:299$4_EN = 1'0 |
| Found init rule in `\hyperram.$proc$hyperram.v:0$85'. |
| Set init value: $formal$hyperram.v:298$3_EN = 1'0 |
| Found init rule in `\hyperram.$proc$hyperram.v:0$83'. |
| Set init value: $formal$hyperram.v:297$2_EN = 1'0 |
| Found init rule in `\hyperram.$proc$hyperram.v:0$81'. |
| Set init value: $formal$hyperram.v:296$1_EN = 1'0 |
| Found init rule in `\hyperram.$proc$hyperram.v:0$80'. |
| Set init value: \wait_counter = 8'00000000 |
| Set init value: \done_counter = 8'00000000 |
| Set init value: \control_state = 7'0000000 |
| Set init value: \read_count = 6'000000 |
| Set init value: \write_count = 6'000000 |
| |
| 2.3.5. Executing PROC_ARST pass (detect async resets in processes). |
| |
| 2.3.6. Executing PROC_MUX pass (convert decision trees to multiplexers). |
| Creating decoders for process `\hyperram.$proc$hyperram.v:0$97'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:0$95'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:0$93'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:0$91'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:0$89'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:0$87'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:0$85'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:0$83'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:0$81'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:0$80'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:295$50'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:268$45'. |
| 1/2: $0\write_count[5:0] |
| 2/2: $0\read_count[5:0] |
| Creating decoders for process `\hyperram.$proc$hyperram.v:0$43'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:245$42'. |
| Creating decoders for process `\hyperram.$proc$hyperram.v:0$22'. |
| 1/22: $1\next_data_in[31:0] [31:24] |
| 2/22: $6\next_control_state[6:0] |
| 3/22: $1\next_data_in[31:0] [23:16] |
| 4/22: $2\next_done_counter[7:0] |
| 5/22: $1\next_data_in[31:0] [15:8] |
| 6/22: $2\next_data_in[7:0] |
| 7/22: $1\next_data_in[31:0] [7:0] |
| 8/22: $5\next_control_state[6:0] |
| 9/22: $3\next_control_state[6:0] |
| 10/22: $2\next_wait_counter[7:0] |
| 11/22: $2\next_control_state[6:0] |
| 12/22: $1\next_control_state[6:0] |
| 13/22: $1\transaction_end[0:0] |
| 14/22: $1\ck_gate[0:0] |
| 15/22: $1\cs_bar[0:0] |
| 16/22: $4\next_control_state[6:0] |
| 17/22: $1\next_done_counter[7:0] |
| 18/22: $1\next_wait_counter[7:0] |
| 19/22: $1\rwds_oe[0:0] |
| 20/22: $1\rwds_out[0:0] |
| 21/22: $1\dq_oe[0:0] |
| 22/22: $1\dq_out[7:0] |
| Creating decoders for process `\hyperram.$proc$hyperram.v:72$21'. |
| 1/4: $0\done_counter[7:0] |
| 2/4: $0\wait_counter[7:0] |
| 3/4: $0\data_in_register[31:0] |
| 4/4: $0\control_state[6:0] |
| Creating decoders for process `\hyperram.$proc$hyperram.v:32$10'. |
| 1/1: $0\ck[0:0] |
| |
| 2.3.7. Executing PROC_DLATCH pass (convert process syncs to latches). |
| No latch inferred for signal `\hyperram.\rst' from process `\hyperram.$proc$hyperram.v:0$80'. |
| No latch inferred for signal `\hyperram.\address' from process `\hyperram.$proc$hyperram.v:0$80'. |
| No latch inferred for signal `\hyperram.\data_out' from process `\hyperram.$proc$hyperram.v:0$80'. |
| No latch inferred for signal `\hyperram.\data_in_register' from process `\hyperram.$proc$hyperram.v:0$80'. |
| No latch inferred for signal `\hyperram.\next_command_address' from process `\hyperram.$proc$hyperram.v:0$43'. |
| No latch inferred for signal `\hyperram.\next_write_mask_register' from process `\hyperram.$proc$hyperram.v:0$43'. |
| No latch inferred for signal `\hyperram.\next_data_out_register' from process `\hyperram.$proc$hyperram.v:0$43'. |
| No latch inferred for signal `\hyperram.\transaction_end' from process `\hyperram.$proc$hyperram.v:0$22'. |
| No latch inferred for signal `\hyperram.\cs_bar' from process `\hyperram.$proc$hyperram.v:0$22'. |
| No latch inferred for signal `\hyperram.\ck_gate' from process `\hyperram.$proc$hyperram.v:0$22'. |
| No latch inferred for signal `\hyperram.\dq_out' from process `\hyperram.$proc$hyperram.v:0$22'. |
| No latch inferred for signal `\hyperram.\dq_oe' from process `\hyperram.$proc$hyperram.v:0$22'. |
| No latch inferred for signal `\hyperram.\rwds_out' from process `\hyperram.$proc$hyperram.v:0$22'. |
| No latch inferred for signal `\hyperram.\rwds_oe' from process `\hyperram.$proc$hyperram.v:0$22'. |
| No latch inferred for signal `\hyperram.\next_wait_counter' from process `\hyperram.$proc$hyperram.v:0$22'. |
| No latch inferred for signal `\hyperram.\next_done_counter' from process `\hyperram.$proc$hyperram.v:0$22'. |
| No latch inferred for signal `\hyperram.\next_control_state' from process `\hyperram.$proc$hyperram.v:0$22'. |
| No latch inferred for signal `\hyperram.\next_data_in' from process `\hyperram.$proc$hyperram.v:0$22'. |
| |
| 2.3.8. Executing PROC_DFF pass (convert process syncs to FFs). |
| Creating register for signal `\hyperram.$formal$hyperram.v:296$1_CHECK' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$389' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:296$1_EN' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$390' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:297$2_CHECK' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$391' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:297$2_EN' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$392' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:298$3_CHECK' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$393' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:298$3_EN' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$394' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:299$4_CHECK' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$395' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:299$4_EN' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$396' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:300$5_CHECK' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$397' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:300$5_EN' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$398' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:301$6_CHECK' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$399' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:301$6_EN' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$400' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:302$7_CHECK' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$401' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:302$7_EN' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$402' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:303$8_CHECK' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$403' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:303$8_EN' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$404' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:304$9_CHECK' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$405' with positive edge clock. |
| Creating register for signal `\hyperram.$formal$hyperram.v:304$9_EN' using process `\hyperram.$proc$hyperram.v:295$50'. |
| created $dff cell `$procdff$406' with positive edge clock. |
| Creating register for signal `\hyperram.\read_count' using process `\hyperram.$proc$hyperram.v:268$45'. |
| created $dff cell `$procdff$407' with positive edge clock. |
| Creating register for signal `\hyperram.\write_count' using process `\hyperram.$proc$hyperram.v:268$45'. |
| created $dff cell `$procdff$408' with positive edge clock. |
| Creating register for signal `\hyperram.\command_address' using process `\hyperram.$proc$hyperram.v:245$42'. |
| created $dff cell `$procdff$409' with positive edge clock. |
| Creating register for signal `\hyperram.\write_mask_register' using process `\hyperram.$proc$hyperram.v:245$42'. |
| created $dff cell `$procdff$410' with positive edge clock. |
| Creating register for signal `\hyperram.\data_out_register' using process `\hyperram.$proc$hyperram.v:245$42'. |
| created $dff cell `$procdff$411' with positive edge clock. |
| Creating register for signal `\hyperram.\wait_counter' using process `\hyperram.$proc$hyperram.v:72$21'. |
| created $dff cell `$procdff$412' with positive edge clock. |
| Creating register for signal `\hyperram.\done_counter' using process `\hyperram.$proc$hyperram.v:72$21'. |
| created $dff cell `$procdff$413' with positive edge clock. |
| Creating register for signal `\hyperram.\control_state' using process `\hyperram.$proc$hyperram.v:72$21'. |
| created $dff cell `$procdff$414' with positive edge clock. |
| Creating register for signal `\hyperram.\data_in_register' using process `\hyperram.$proc$hyperram.v:72$21'. |
| created $dff cell `$procdff$415' with positive edge clock. |
| Creating register for signal `\hyperram.\ck' using process `\hyperram.$proc$hyperram.v:32$10'. |
| created $dff cell `$procdff$416' with positive edge clock. |
| |
| 2.3.9. Executing PROC_MEMWR pass (convert process memory writes to cells). |
| |
| 2.3.10. Executing PROC_CLEAN pass (remove empty switches from decision trees). |
| Removing empty process `hyperram.$proc$hyperram.v:0$97'. |
| Removing empty process `hyperram.$proc$hyperram.v:0$95'. |
| Removing empty process `hyperram.$proc$hyperram.v:0$93'. |
| Removing empty process `hyperram.$proc$hyperram.v:0$91'. |
| Removing empty process `hyperram.$proc$hyperram.v:0$89'. |
| Removing empty process `hyperram.$proc$hyperram.v:0$87'. |
| Removing empty process `hyperram.$proc$hyperram.v:0$85'. |
| Removing empty process `hyperram.$proc$hyperram.v:0$83'. |
| Removing empty process `hyperram.$proc$hyperram.v:0$81'. |
| Removing empty process `hyperram.$proc$hyperram.v:0$80'. |
| Removing empty process `hyperram.$proc$hyperram.v:295$50'. |
| Found and cleaned up 2 empty switches in `\hyperram.$proc$hyperram.v:268$45'. |
| Removing empty process `hyperram.$proc$hyperram.v:268$45'. |
| Removing empty process `hyperram.$proc$hyperram.v:0$43'. |
| Removing empty process `hyperram.$proc$hyperram.v:245$42'. |
| Found and cleaned up 6 empty switches in `\hyperram.$proc$hyperram.v:0$22'. |
| Removing empty process `hyperram.$proc$hyperram.v:0$22'. |
| Found and cleaned up 1 empty switch in `\hyperram.$proc$hyperram.v:72$21'. |
| Removing empty process `hyperram.$proc$hyperram.v:72$21'. |
| Found and cleaned up 1 empty switch in `\hyperram.$proc$hyperram.v:32$10'. |
| Removing empty process `hyperram.$proc$hyperram.v:32$10'. |
| Cleaned up 10 empty switches. |
| |
| 2.3.11. Executing OPT_EXPR pass (perform const folding). |
| Optimizing module hyperram. |
| <suppressed ~14 debug messages> |
| |
| 2.4. Executing OPT_EXPR pass (perform const folding). |
| Optimizing module hyperram. |
| |
| 2.5. Executing OPT_CLEAN pass (remove unused cells and wires). |
| Finding unused cells or wires in module \hyperram.. |
| Removed 16 unused cells and 131 unused wires. |
| <suppressed ~22 debug messages> |
| |
| 2.6. Executing CHECK pass (checking for obvious problems). |
| Checking module hyperram... |
| Found and reported 0 problems. |
| |
| 2.7. Executing OPT pass (performing simple optimizations). |
| |
| 2.7.1. Executing OPT_EXPR pass (perform const folding). |
| Optimizing module hyperram. |
| |
| 2.7.2. Executing OPT_MERGE pass (detect identical cells). |
| Finding identical cells in module `\hyperram'. |
| <suppressed ~210 debug messages> |
| Removed a total of 70 cells. |
| |
| 2.7.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees). |
| Running muxtree optimizer on module \hyperram.. |
| Creating internal representation of mux trees. |
| Evaluating internal representation of mux trees. |
| Analyzing evaluation results. |
| dead port 2/2 on $mux $procmux$155. |
| dead port 2/2 on $mux $procmux$170. |
| dead port 2/2 on $mux $procmux$185. |
| dead port 2/2 on $mux $procmux$207. |
| dead port 2/2 on $mux $procmux$299. |
| dead port 2/2 on $mux $procmux$301. |
| dead port 2/2 on $mux $procmux$111. |
| dead port 2/2 on $mux $procmux$122. |
| Removed 8 multiplexer ports. |
| <suppressed ~12 debug messages> |
| |
| 2.7.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs). |
| Optimizing cells in module \hyperram. |
| New ctrl vector for $pmux cell $procmux$210: { $0$formal$hyperram.v:296$1_CHECK[0:0]$51 $0$formal$hyperram.v:298$3_CHECK[0:0]$55 $eq$hyperram.v:272$48_Y $0$formal$hyperram.v:300$5_CHECK[0:0]$59 $auto$opt_reduce.cc:134:opt_pmux$418 $0$formal$hyperram.v:301$6_CHECK[0:0]$61 } |
| New ctrl vector for $pmux cell $procmux$324: $auto$opt_reduce.cc:134:opt_pmux$420 |
| New ctrl vector for $pmux cell $procmux$346: $auto$opt_reduce.cc:134:opt_pmux$422 |
| Optimizing cells in module \hyperram. |
| Performed a total of 3 changes. |
| |
| 2.7.5. Executing OPT_MERGE pass (detect identical cells). |
| Finding identical cells in module `\hyperram'. |
| <suppressed ~3 debug messages> |
| Removed a total of 1 cells. |
| |
| 2.7.6. Executing OPT_CLEAN pass (remove unused cells and wires). |
| Finding unused cells or wires in module \hyperram.. |
| Removed 0 unused cells and 78 unused wires. |
| <suppressed ~1 debug messages> |
| |
| 2.7.7. Executing OPT_EXPR pass (perform const folding). |
| Optimizing module hyperram. |
| |
| 2.7.8. Rerunning OPT passes. (Maybe there is more to do..) |
| |
| 2.7.9. Executing OPT_MUXTREE pass (detect dead branches in mux trees). |
| Running muxtree optimizer on module \hyperram.. |
| Creating internal representation of mux trees. |
| Evaluating internal representation of mux trees. |
| Analyzing evaluation results. |
| Removed 0 multiplexer ports. |
| <suppressed ~11 debug messages> |
| |
| 2.7.10. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs). |
| Optimizing cells in module \hyperram. |
| Performed a total of 0 changes. |
| |
| 2.7.11. Executing OPT_MERGE pass (detect identical cells). |
| Finding identical cells in module `\hyperram'. |
| Removed a total of 0 cells. |
| |
| 2.7.12. Executing OPT_CLEAN pass (remove unused cells and wires). |
| Finding unused cells or wires in module \hyperram.. |
| |
| 2.7.13. Executing OPT_EXPR pass (perform const folding). |
| Optimizing module hyperram. |
| |
| 2.7.14. Finished OPT passes. (There is nothing left to do.) |
| |
| 2.8. Executing WREDUCE pass (reducing word size of cells). |
| Removed top 24 bits (of 32) from mux cell hyperram.$ternary$hyperram.v:51$16 ($mux). |
| Removed top 31 bits (of 32) from mux cell hyperram.$ternary$hyperram.v:52$19 ($mux). |
| Removed top 31 bits (of 32) from port B of cell hyperram.$add$hyperram.v:109$23 ($add). |
| Removed top 25 bits (of 32) from port Y of cell hyperram.$add$hyperram.v:109$23 ($add). |
| Removed top 31 bits (of 32) from port B of cell hyperram.$add$hyperram.v:152$30 ($add). |
| Removed top 24 bits (of 32) from port Y of cell hyperram.$add$hyperram.v:152$30 ($add). |
| Removed top 5 bits (of 8) from port B of cell hyperram.$eq$hyperram.v:154$31 ($eq). |
| Removed top 31 bits (of 32) from port B of cell hyperram.$add$hyperram.v:225$40 ($add). |
| Removed top 24 bits (of 32) from port Y of cell hyperram.$add$hyperram.v:225$40 ($add). |
| Removed top 5 bits (of 8) from port B of cell hyperram.$eq$hyperram.v:227$41 ($eq). |
| Removed top 3 bits (of 7) from port B of cell hyperram.$eq$hyperram.v:269$46 ($eq). |
| Removed top 31 bits (of 32) from port B of cell hyperram.$add$hyperram.v:270$47 ($add). |
| Removed top 26 bits (of 32) from port Y of cell hyperram.$add$hyperram.v:270$47 ($add). |
| Removed top 3 bits (of 7) from port B of cell hyperram.$eq$hyperram.v:272$48 ($eq). |
| Removed top 31 bits (of 32) from port B of cell hyperram.$add$hyperram.v:273$49 ($add). |
| Removed top 26 bits (of 32) from port Y of cell hyperram.$add$hyperram.v:273$49 ($add). |
| Removed top 4 bits (of 7) from port B of cell hyperram.$eq$hyperram.v:297$70 ($eq). |
| Removed top 4 bits (of 7) from port B of cell hyperram.$eq$hyperram.v:298$71 ($eq). |
| Removed top 3 bits (of 7) from port B of cell hyperram.$eq$hyperram.v:299$72 ($eq). |
| Removed top 3 bits (of 7) from port B of cell hyperram.$eq$hyperram.v:300$73 ($eq). |
| Removed top 2 bits (of 7) from port B of cell hyperram.$eq$hyperram.v:301$74 ($eq). |
| Removed top 4 bits (of 6) from port B of cell hyperram.$eq$hyperram.v:302$75 ($eq). |
| Removed top 4 bits (of 6) from port B of cell hyperram.$eq$hyperram.v:303$76 ($eq). |
| Removed top 5 bits (of 6) from port B of cell hyperram.$eq$hyperram.v:304$77 ($eq). |
| Removed top 5 bits (of 6) from port B of cell hyperram.$eq$hyperram.v:304$78 ($eq). |
| Removed top 3 bits (of 7) from port B of cell hyperram.$procmux$213_CMP0 ($eq). |
| Removed top 3 bits (of 7) from port B of cell hyperram.$procmux$214_CMP0 ($eq). |
| Removed top 3 bits (of 7) from port B of cell hyperram.$procmux$217_CMP0 ($eq). |
| Removed top 3 bits (of 7) from port B of cell hyperram.$procmux$218_CMP0 ($eq). |
| Removed top 4 bits (of 7) from port B of cell hyperram.$procmux$222_CMP0 ($eq). |
| Removed top 4 bits (of 7) from port B of cell hyperram.$procmux$223_CMP0 ($eq). |
| Removed top 5 bits (of 7) from port B of cell hyperram.$procmux$224_CMP0 ($eq). |
| Removed top 5 bits (of 7) from port B of cell hyperram.$procmux$225_CMP0 ($eq). |
| Removed top 6 bits (of 7) from port B of cell hyperram.$procmux$226_CMP0 ($eq). |
| Removed top 4 bits (of 7) from mux cell hyperram.$procmux$297 ($mux). |
| Removed top 1 bits (of 32) from FF cell hyperram.$procdff$411 ($dff). |
| Removed top 4 bits (of 7) from wire hyperram.$4\next_control_state[6:0]. |
| Removed top 25 bits (of 32) from wire hyperram.$add$hyperram.v:109$23_Y. |
| Removed top 24 bits (of 32) from wire hyperram.$add$hyperram.v:152$30_Y. |
| Removed top 24 bits (of 32) from wire hyperram.$add$hyperram.v:225$40_Y. |
| Removed top 26 bits (of 32) from wire hyperram.$add$hyperram.v:270$47_Y. |
| Removed top 26 bits (of 32) from wire hyperram.$add$hyperram.v:273$49_Y. |
| |
| 2.9. Executing OPT_CLEAN pass (remove unused cells and wires). |
| Finding unused cells or wires in module \hyperram.. |
| Removed 0 unused cells and 8 unused wires. |
| <suppressed ~1 debug messages> |
| |
| 2.10. Executing MEMORY_COLLECT pass (generating $mem cells). |
| |
| 2.11. Executing OPT pass (performing simple optimizations). |
| |
| 2.11.1. Executing OPT_EXPR pass (perform const folding). |
| Optimizing module hyperram. |
| |
| 2.11.2. Executing OPT_MERGE pass (detect identical cells). |
| Finding identical cells in module `\hyperram'. |
| Removed a total of 0 cells. |
| |
| 2.11.3. Executing OPT_CLEAN pass (remove unused cells and wires). |
| Finding unused cells or wires in module \hyperram.. |
| |
| 2.11.4. Finished fast OPT passes. |
| |
| 2.12. Printing statistics. |
| |
| === hyperram === |
| |
| Number of wires: 89 |
| Number of wire bits: 532 |
| Number of public wires: 36 |
| Number of public wire bits: 399 |
| Number of memories: 0 |
| Number of memory bits: 0 |
| Number of processes: 0 |
| Number of cells: 83 |
| $add 5 |
| $cover 9 |
| $dff 19 |
| $eq 22 |
| $logic_and 1 |
| $logic_not 3 |
| $logic_or 1 |
| $mux 17 |
| $pmux 3 |
| $reduce_or 3 |
| |
| 2.13. Executing CHECK pass (checking for obvious problems). |
| Checking module hyperram... |
| Found and reported 0 problems. |
| |
| 3. Executing HIERARCHY pass (managing design hierarchy). |
| |
| 3.1. Analyzing design hierarchy.. |
| Top module: \hyperram |
| |
| 3.2. Analyzing design hierarchy.. |
| Top module: \hyperram |
| Removed 0 unused modules. |
| Module hyperram directly or indirectly contains formal properties -> setting "keep" attribute. |
| |
| 4. Executing JSON backend. |
| |
| 5. Executing RTLIL backend. |
| Output filename: ../model/design.il |
| |
| Warnings: 11 unique messages, 11 total |
| End of script. Logfile hash: 207fb7cd4a, CPU: user 0.11s system 0.00s, MEM: 13.46 MB peak |
| Yosys 0.15+11 (git sha1 cbece4af0, clang 10.0.0-4ubuntu1 -fPIC -Os) |
| Time spent: 21% 5x opt_clean (0 sec), 17% 6x opt_expr (0 sec), ... |