1089 lines
		
	
	
		
			59 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			1089 lines
		
	
	
		
			59 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| yosys -p "read_verilog -sv top.sv bram.sv; synth_ecp5 -top top -json top.json"
 | |
| 
 | |
|  /----------------------------------------------------------------------------\
 | |
|  |                                                                            |
 | |
|  |  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.13+28 (git sha1 fc40df091, gcc 11.2.0-7ubuntu2 -fPIC -Os)
 | |
| 
 | |
| 
 | |
| -- Running command `read_verilog -sv top.sv bram.sv; synth_ecp5 -top top -json top.json' --
 | |
| 
 | |
| 1. Executing Verilog-2005 frontend: top.sv
 | |
| Parsing SystemVerilog input from `top.sv' to AST representation.
 | |
| Generating RTLIL representation for module `\top'.
 | |
|  Model running...
 | |
| 
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 2. Executing Verilog-2005 frontend: bram.sv
 | |
| Parsing SystemVerilog input from `bram.sv' to AST representation.
 | |
| Generating RTLIL representation for module `\bram'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3. Executing SYNTH_ECP5 pass.
 | |
| 
 | |
| 3.1. Executing Verilog-2005 frontend: /usr/local/bin/../share/yosys/ecp5/cells_sim.v
 | |
| Parsing Verilog input from `/usr/local/bin/../share/yosys/ecp5/cells_sim.v' to AST representation.
 | |
| Generating RTLIL representation for module `\LUT4'.
 | |
| Generating RTLIL representation for module `\$__ABC9_LUT5'.
 | |
| Generating RTLIL representation for module `\$__ABC9_LUT6'.
 | |
| Generating RTLIL representation for module `\$__ABC9_LUT7'.
 | |
| Generating RTLIL representation for module `\L6MUX21'.
 | |
| Generating RTLIL representation for module `\CCU2C'.
 | |
| Generating RTLIL representation for module `\TRELLIS_RAM16X2'.
 | |
| Generating RTLIL representation for module `\PFUMX'.
 | |
| Generating RTLIL representation for module `\TRELLIS_DPR16X4'.
 | |
| Generating RTLIL representation for module `\DPR16X4C'.
 | |
| Generating RTLIL representation for module `\LUT2'.
 | |
| Generating RTLIL representation for module `\TRELLIS_FF'.
 | |
| Generating RTLIL representation for module `\TRELLIS_IO'.
 | |
| Generating RTLIL representation for module `\INV'.
 | |
| Generating RTLIL representation for module `\TRELLIS_SLICE'.
 | |
| Generating RTLIL representation for module `\DP16KD'.
 | |
| Generating RTLIL representation for module `\FD1P3AX'.
 | |
| Generating RTLIL representation for module `\FD1P3AY'.
 | |
| Generating RTLIL representation for module `\FD1P3BX'.
 | |
| Generating RTLIL representation for module `\FD1P3DX'.
 | |
| Generating RTLIL representation for module `\FD1P3IX'.
 | |
| Generating RTLIL representation for module `\FD1P3JX'.
 | |
| Generating RTLIL representation for module `\FD1S3AX'.
 | |
| Generating RTLIL representation for module `\FD1S3AY'.
 | |
| Generating RTLIL representation for module `\FD1S3BX'.
 | |
| Generating RTLIL representation for module `\FD1S3DX'.
 | |
| Generating RTLIL representation for module `\FD1S3IX'.
 | |
| Generating RTLIL representation for module `\FD1S3JX'.
 | |
| Generating RTLIL representation for module `\IFS1P3BX'.
 | |
| Generating RTLIL representation for module `\IFS1P3DX'.
 | |
| Generating RTLIL representation for module `\IFS1P3IX'.
 | |
| Generating RTLIL representation for module `\IFS1P3JX'.
 | |
| Generating RTLIL representation for module `\OFS1P3BX'.
 | |
| Generating RTLIL representation for module `\OFS1P3DX'.
 | |
| Generating RTLIL representation for module `\OFS1P3IX'.
 | |
| Generating RTLIL representation for module `\OFS1P3JX'.
 | |
| Generating RTLIL representation for module `\IB'.
 | |
| Generating RTLIL representation for module `\IBPU'.
 | |
| Generating RTLIL representation for module `\IBPD'.
 | |
| Generating RTLIL representation for module `\OB'.
 | |
| Generating RTLIL representation for module `\OBZ'.
 | |
| Generating RTLIL representation for module `\OBZPU'.
 | |
| Generating RTLIL representation for module `\OBZPD'.
 | |
| Generating RTLIL representation for module `\OBCO'.
 | |
| Generating RTLIL representation for module `\BB'.
 | |
| Generating RTLIL representation for module `\BBPU'.
 | |
| Generating RTLIL representation for module `\BBPD'.
 | |
| Generating RTLIL representation for module `\ILVDS'.
 | |
| Generating RTLIL representation for module `\OLVDS'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3.2. Executing Verilog-2005 frontend: /usr/local/bin/../share/yosys/ecp5/cells_bb.v
 | |
| Parsing Verilog input from `/usr/local/bin/../share/yosys/ecp5/cells_bb.v' to AST representation.
 | |
| Generating RTLIL representation for module `\MULT18X18D'.
 | |
| Generating RTLIL representation for module `\ALU54B'.
 | |
| Generating RTLIL representation for module `\EHXPLLL'.
 | |
| Generating RTLIL representation for module `\DTR'.
 | |
| Generating RTLIL representation for module `\OSCG'.
 | |
| Generating RTLIL representation for module `\USRMCLK'.
 | |
| Generating RTLIL representation for module `\JTAGG'.
 | |
| Generating RTLIL representation for module `\DELAYF'.
 | |
| Generating RTLIL representation for module `\DELAYG'.
 | |
| Generating RTLIL representation for module `\IDDRX1F'.
 | |
| Generating RTLIL representation for module `\IDDRX2F'.
 | |
| Generating RTLIL representation for module `\IDDR71B'.
 | |
| Generating RTLIL representation for module `\IDDRX2DQA'.
 | |
| Generating RTLIL representation for module `\ODDRX1F'.
 | |
| Generating RTLIL representation for module `\ODDRX2F'.
 | |
| Generating RTLIL representation for module `\ODDR71B'.
 | |
| Generating RTLIL representation for module `\OSHX2A'.
 | |
| Generating RTLIL representation for module `\ODDRX2DQA'.
 | |
| Generating RTLIL representation for module `\ODDRX2DQSB'.
 | |
| Generating RTLIL representation for module `\TSHX2DQA'.
 | |
| Generating RTLIL representation for module `\TSHX2DQSA'.
 | |
| Generating RTLIL representation for module `\DQSBUFM'.
 | |
| Generating RTLIL representation for module `\DDRDLLA'.
 | |
| Generating RTLIL representation for module `\DLLDELD'.
 | |
| Generating RTLIL representation for module `\CLKDIVF'.
 | |
| Generating RTLIL representation for module `\ECLKSYNCB'.
 | |
| Generating RTLIL representation for module `\ECLKBRIDGECS'.
 | |
| Generating RTLIL representation for module `\DCCA'.
 | |
| Generating RTLIL representation for module `\DCSC'.
 | |
| Generating RTLIL representation for module `\DCUA'.
 | |
| Generating RTLIL representation for module `\EXTREFB'.
 | |
| Generating RTLIL representation for module `\PCSCLKDIV'.
 | |
| Generating RTLIL representation for module `\PUR'.
 | |
| Generating RTLIL representation for module `\GSR'.
 | |
| Generating RTLIL representation for module `\SGSR'.
 | |
| Generating RTLIL representation for module `\PDPW16KD'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3.3. Executing HIERARCHY pass (managing design hierarchy).
 | |
| 
 | |
| 3.3.1. Analyzing design hierarchy..
 | |
| Top module:  \top
 | |
| Used module:     \bram
 | |
| Parameter \WIDTH = 8
 | |
| Parameter \DEPTH = 10
 | |
| Parameter \SIZE = 4096
 | |
| 
 | |
| 3.3.2. Executing AST frontend in derive mode using pre-parsed AST for module `\bram'.
 | |
| Parameter \WIDTH = 8
 | |
| Parameter \DEPTH = 10
 | |
| Parameter \SIZE = 4096
 | |
| Generating RTLIL representation for module `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram'.
 | |
| 
 | |
| 3.3.3. Analyzing design hierarchy..
 | |
| Top module:  \top
 | |
| Used module:     $paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram
 | |
| 
 | |
| 3.3.4. Analyzing design hierarchy..
 | |
| Top module:  \top
 | |
| Used module:     $paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram
 | |
| Removing unused module `\bram'.
 | |
| Removed 1 unused modules.
 | |
| 
 | |
| 3.4. Executing PROC pass (convert processes to netlists).
 | |
| 
 | |
| 3.4.1. Executing PROC_CLEAN pass (remove empty switches from decision trees).
 | |
| Found and cleaned up 1 empty switch in `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:213$135'.
 | |
| Removing empty process `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$proc$bram.sv:0$251'.
 | |
| Cleaned up 1 empty switch.
 | |
| 
 | |
| 3.4.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
 | |
| Marked 1 switch rules as full_case in process $proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:350$235 in module TRELLIS_FF.
 | |
| Marked 1 switch rules as full_case in process $proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:285$194 in module DPR16X4C.
 | |
| Marked 1 switch rules as full_case in process $proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:221$136 in module TRELLIS_DPR16X4.
 | |
| Marked 1 switch rules as full_case in process $proc$bram.sv:20$241 in module $paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.
 | |
| Removed a total of 0 dead cases.
 | |
| 
 | |
| 3.4.3. Executing PROC_PRUNE pass (remove redundant assignments in processes).
 | |
| Removed 0 redundant assignments.
 | |
| Promoted 52 assignments to connections.
 | |
| 
 | |
| 3.4.4. Executing PROC_INIT pass (extract init attributes).
 | |
| Found init rule in `\TRELLIS_FF.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$239'.
 | |
|   Set init value: \Q = 1'0
 | |
| Found init rule in `\top.$proc$top.sv:0$4'.
 | |
|   Set init value: \read_addr = 10'0000000000
 | |
|   Set init value: \write_addr = 10'0000000000
 | |
|   Set init value: \write_data = 8'00000000
 | |
| 
 | |
| 3.4.5. Executing PROC_ARST pass (detect async resets in processes).
 | |
| 
 | |
| 3.4.6. Executing PROC_MUX pass (convert decision trees to multiplexers).
 | |
| Creating decoders for process `\TRELLIS_FF.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$239'.
 | |
| Creating decoders for process `\TRELLIS_FF.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:350$235'.
 | |
|      1/1: $0\Q[0:0]
 | |
| Creating decoders for process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
| Creating decoders for process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:285$194'.
 | |
|      1/3: $1$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:287$193_EN[3:0]$200
 | |
|      2/3: $1$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:287$193_DATA[3:0]$199
 | |
|      3/3: $1$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:287$193_ADDR[3:0]$198
 | |
| Creating decoders for process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
| Creating decoders for process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:221$136'.
 | |
|      1/3: $1$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:223$134_EN[3:0]$142
 | |
|      2/3: $1$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:223$134_DATA[3:0]$141
 | |
|      3/3: $1$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:223$134_ADDR[3:0]$140
 | |
| Creating decoders for process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:213$135'.
 | |
| Creating decoders for process `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$proc$bram.sv:26$248'.
 | |
|      1/1: $0\data_rd[7:0]
 | |
| Creating decoders for process `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$proc$bram.sv:20$241'.
 | |
|      1/3: $1$memwr$\ram$bram.sv:22$240_EN[7:0]$247
 | |
|      2/3: $1$memwr$\ram$bram.sv:22$240_DATA[7:0]$246
 | |
|      3/3: $1$memwr$\ram$bram.sv:22$240_ADDR[11:0]$245
 | |
| Creating decoders for process `\top.$proc$top.sv:0$4'.
 | |
| Creating decoders for process `\top.$proc$top.sv:29$3'.
 | |
| 
 | |
| 3.4.7. Executing PROC_DLATCH pass (convert process syncs to latches).
 | |
| 
 | |
| 3.4.8. Executing PROC_DFF pass (convert process syncs to FFs).
 | |
| Creating register for signal `\TRELLIS_FF.\Q' using process `\TRELLIS_FF.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:350$235'.
 | |
|   created $dff cell `$procdff$286' with positive edge clock.
 | |
| Creating register for signal `\DPR16X4C.\i' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$178_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$179_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$180_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$181_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$182_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$183_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$184_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$185_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$186_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$187_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$188_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$189_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$190_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$191_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:281$192_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:287$193_ADDR' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:285$194'.
 | |
|   created $dff cell `$procdff$287' with positive edge clock.
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:287$193_DATA' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:285$194'.
 | |
|   created $dff cell `$procdff$288' with positive edge clock.
 | |
| Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:287$193_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:285$194'.
 | |
|   created $dff cell `$procdff$289' with positive edge clock.
 | |
| Creating register for signal `\TRELLIS_DPR16X4.\i' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$118_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$119_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$120_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$121_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$122_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$123_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$124_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$125_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$126_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$127_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$128_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$129_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$130_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$131_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$132_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:207$133_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:223$134_ADDR' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:221$136'.
 | |
|   created $dff cell `$procdff$290' with positive edge clock.
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:223$134_DATA' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:221$136'.
 | |
|   created $dff cell `$procdff$291' with positive edge clock.
 | |
| Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:223$134_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:221$136'.
 | |
|   created $dff cell `$procdff$292' with positive edge clock.
 | |
| Creating register for signal `\TRELLIS_DPR16X4.\muxwre' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:213$135'.
 | |
|   created direct connection (no actual register cell created).
 | |
| Creating register for signal `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.\data_rd' using process `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$proc$bram.sv:26$248'.
 | |
|   created $dff cell `$procdff$293' with positive edge clock.
 | |
| Creating register for signal `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$memwr$\ram$bram.sv:22$240_ADDR' using process `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$proc$bram.sv:20$241'.
 | |
|   created $dff cell `$procdff$294' with positive edge clock.
 | |
| Creating register for signal `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$memwr$\ram$bram.sv:22$240_DATA' using process `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$proc$bram.sv:20$241'.
 | |
|   created $dff cell `$procdff$295' with positive edge clock.
 | |
| Creating register for signal `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$memwr$\ram$bram.sv:22$240_EN' using process `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$proc$bram.sv:20$241'.
 | |
|   created $dff cell `$procdff$296' with positive edge clock.
 | |
| Creating register for signal `\top.\led_o' using process `\top.$proc$top.sv:29$3'.
 | |
|   created $dff cell `$procdff$297' with positive edge clock.
 | |
| Creating register for signal `\top.\read_addr' using process `\top.$proc$top.sv:29$3'.
 | |
|   created $dff cell `$procdff$298' with positive edge clock.
 | |
| Creating register for signal `\top.\write_addr' using process `\top.$proc$top.sv:29$3'.
 | |
|   created $dff cell `$procdff$299' with positive edge clock.
 | |
| Creating register for signal `\top.\write_data' using process `\top.$proc$top.sv:29$3'.
 | |
|   created $dff cell `$procdff$300' with positive edge clock.
 | |
| 
 | |
| 3.4.9. Executing PROC_MEMWR pass (convert process memory writes to cells).
 | |
| 
 | |
| 3.4.10. Executing PROC_CLEAN pass (remove empty switches from decision trees).
 | |
| Removing empty process `TRELLIS_FF.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$239'.
 | |
| Found and cleaned up 2 empty switches in `\TRELLIS_FF.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:350$235'.
 | |
| Removing empty process `TRELLIS_FF.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:350$235'.
 | |
| Removing empty process `DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$217'.
 | |
| Found and cleaned up 1 empty switch in `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:285$194'.
 | |
| Removing empty process `TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$160'.
 | |
| Found and cleaned up 1 empty switch in `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:221$136'.
 | |
| Removing empty process `TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:213$135'.
 | |
| Found and cleaned up 1 empty switch in `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$proc$bram.sv:26$248'.
 | |
| Removing empty process `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$proc$bram.sv:26$248'.
 | |
| Found and cleaned up 1 empty switch in `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$proc$bram.sv:20$241'.
 | |
| Removing empty process `$paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.$proc$bram.sv:20$241'.
 | |
| Removing empty process `top.$proc$top.sv:0$4'.
 | |
| Removing empty process `top.$proc$top.sv:29$3'.
 | |
| Cleaned up 6 empty switches.
 | |
| 
 | |
| 3.4.11. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module $paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.
 | |
| Optimizing module top.
 | |
| 
 | |
| 3.5. Executing FLATTEN pass (flatten design).
 | |
| Deleting now unused module $paramod$27c53d37c91ca9b8b077500dcff58f781e672cc9\bram.
 | |
| <suppressed ~1 debug messages>
 | |
| 
 | |
| 3.6. Executing TRIBUF pass.
 | |
| 
 | |
| 3.7. Executing DEMINOUT pass (demote inout ports to input or output).
 | |
| 
 | |
| 3.8. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| <suppressed ~4 debug messages>
 | |
| 
 | |
| 3.9. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| Removed 6 unused cells and 32 unused wires.
 | |
| <suppressed ~12 debug messages>
 | |
| 
 | |
| 3.10. Executing CHECK pass (checking for obvious problems).
 | |
| Checking module top...
 | |
| Found and reported 0 problems.
 | |
| 
 | |
| 3.11. Executing OPT pass (performing simple optimizations).
 | |
| 
 | |
| 3.11.1. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| 
 | |
| 3.11.2. Executing OPT_MERGE pass (detect identical cells).
 | |
| Finding identical cells in module `\top'.
 | |
| Removed a total of 0 cells.
 | |
| 
 | |
| 3.11.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
 | |
| Running muxtree optimizer on module \top..
 | |
|   Creating internal representation of mux trees.
 | |
|   No muxes found in this module.
 | |
| Removed 0 multiplexer ports.
 | |
| 
 | |
| 3.11.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
 | |
|   Optimizing cells in module \top.
 | |
| Performed a total of 0 changes.
 | |
| 
 | |
| 3.11.5. Executing OPT_MERGE pass (detect identical cells).
 | |
| Finding identical cells in module `\top'.
 | |
| Removed a total of 0 cells.
 | |
| 
 | |
| 3.11.6. Executing OPT_DFF pass (perform DFF optimizations).
 | |
| 
 | |
| 3.11.7. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| 
 | |
| 3.11.8. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| 
 | |
| 3.11.9. Finished OPT passes. (There is nothing left to do.)
 | |
| 
 | |
| 3.12. Executing FSM pass (extract and optimize FSM).
 | |
| 
 | |
| 3.12.1. Executing FSM_DETECT pass (finding FSMs in design).
 | |
| 
 | |
| 3.12.2. Executing FSM_EXTRACT pass (extracting FSM from design).
 | |
| 
 | |
| 3.12.3. Executing FSM_OPT pass (simple optimizations of FSMs).
 | |
| 
 | |
| 3.12.4. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| 
 | |
| 3.12.5. Executing FSM_OPT pass (simple optimizations of FSMs).
 | |
| 
 | |
| 3.12.6. Executing FSM_RECODE pass (re-assigning FSM state encoding).
 | |
| 
 | |
| 3.12.7. Executing FSM_INFO pass (dumping all available information on FSM cells).
 | |
| 
 | |
| 3.12.8. Executing FSM_MAP pass (mapping FSMs to basic logic).
 | |
| 
 | |
| 3.13. Executing OPT pass (performing simple optimizations).
 | |
| 
 | |
| 3.13.1. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| 
 | |
| 3.13.2. Executing OPT_MERGE pass (detect identical cells).
 | |
| Finding identical cells in module `\top'.
 | |
| Removed a total of 0 cells.
 | |
| 
 | |
| 3.13.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
 | |
| Running muxtree optimizer on module \top..
 | |
|   Creating internal representation of mux trees.
 | |
|   No muxes found in this module.
 | |
| Removed 0 multiplexer ports.
 | |
| 
 | |
| 3.13.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
 | |
|   Optimizing cells in module \top.
 | |
| Performed a total of 0 changes.
 | |
| 
 | |
| 3.13.5. Executing OPT_MERGE pass (detect identical cells).
 | |
| Finding identical cells in module `\top'.
 | |
| Removed a total of 0 cells.
 | |
| 
 | |
| 3.13.6. Executing OPT_DFF pass (perform DFF optimizations).
 | |
| 
 | |
| 3.13.7. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| 
 | |
| 3.13.8. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| 
 | |
| 3.13.9. Finished OPT passes. (There is nothing left to do.)
 | |
| 
 | |
| 3.14. Executing WREDUCE pass (reducing word size of cells).
 | |
| Removed top 20 address bits (of 32) from memory init port top.$flatten\bram_i.$meminit$\ram$bram.sv:0$250 (bram_i.ram).
 | |
| Removed top 7 bits (of 8) from FF cell top.$flatten\bram_i.$procdff$293 ($dff).
 | |
| Removed top 7 bits (of 8) from wire top.read_data.
 | |
| 
 | |
| 3.15. Executing PEEPOPT pass (run peephole optimizers).
 | |
| 
 | |
| 3.16. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| Removed 0 unused cells and 1 unused wires.
 | |
| <suppressed ~1 debug messages>
 | |
| 
 | |
| 3.17. Executing SHARE pass (SAT-based resource sharing).
 | |
| 
 | |
| 3.18. Executing TECHMAP pass (map to technology primitives).
 | |
| 
 | |
| 3.18.1. Executing Verilog-2005 frontend: /usr/local/bin/../share/yosys/cmp2lut.v
 | |
| Parsing Verilog input from `/usr/local/bin/../share/yosys/cmp2lut.v' to AST representation.
 | |
| Generating RTLIL representation for module `\_90_lut_cmp_'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3.18.2. Continuing TECHMAP pass.
 | |
| No more expansions possible.
 | |
| <suppressed ~6 debug messages>
 | |
| 
 | |
| 3.19. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| 
 | |
| 3.20. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| 
 | |
| 3.21. Executing TECHMAP pass (map to technology primitives).
 | |
| 
 | |
| 3.21.1. Executing Verilog-2005 frontend: /usr/local/bin/../share/yosys/mul2dsp.v
 | |
| Parsing Verilog input from `/usr/local/bin/../share/yosys/mul2dsp.v' to AST representation.
 | |
| Generating RTLIL representation for module `\_80_mul'.
 | |
| Generating RTLIL representation for module `\_90_soft_mul'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3.21.2. Executing Verilog-2005 frontend: /usr/local/bin/../share/yosys/ecp5/dsp_map.v
 | |
| Parsing Verilog input from `/usr/local/bin/../share/yosys/ecp5/dsp_map.v' to AST representation.
 | |
| Generating RTLIL representation for module `\$__MUL18X18'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3.21.3. Continuing TECHMAP pass.
 | |
| No more expansions possible.
 | |
| <suppressed ~5 debug messages>
 | |
| 
 | |
| 3.22. Executing ALUMACC pass (create $alu and $macc cells).
 | |
| Extracting $alu and $macc cells in module top:
 | |
|   creating $macc model for $add$top.sv:10$1 ($add).
 | |
|   creating $alu model for $macc $add$top.sv:10$1.
 | |
|   creating $alu cell for $add$top.sv:10$1: $auto$alumacc.cc:485:replace_alu$304
 | |
|   created 1 $alu and 0 $macc cells.
 | |
| 
 | |
| 3.23. Executing OPT pass (performing simple optimizations).
 | |
| 
 | |
| 3.23.1. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| 
 | |
| 3.23.2. Executing OPT_MERGE pass (detect identical cells).
 | |
| Finding identical cells in module `\top'.
 | |
| Removed a total of 0 cells.
 | |
| 
 | |
| 3.23.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
 | |
| Running muxtree optimizer on module \top..
 | |
|   Creating internal representation of mux trees.
 | |
|   No muxes found in this module.
 | |
| Removed 0 multiplexer ports.
 | |
| 
 | |
| 3.23.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
 | |
|   Optimizing cells in module \top.
 | |
| Performed a total of 0 changes.
 | |
| 
 | |
| 3.23.5. Executing OPT_MERGE pass (detect identical cells).
 | |
| Finding identical cells in module `\top'.
 | |
| Removed a total of 0 cells.
 | |
| 
 | |
| 3.23.6. Executing OPT_DFF pass (perform DFF optimizations).
 | |
| 
 | |
| 3.23.7. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| 
 | |
| 3.23.8. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| 
 | |
| 3.23.9. Finished OPT passes. (There is nothing left to do.)
 | |
| 
 | |
| 3.24. Executing MEMORY pass.
 | |
| 
 | |
| 3.24.1. Executing OPT_MEM pass (optimize memories).
 | |
| Performed a total of 1 transformations.
 | |
| 
 | |
| 3.24.2. Executing OPT_MEM_PRIORITY pass (removing unnecessary memory write priority relations).
 | |
| Performed a total of 0 transformations.
 | |
| 
 | |
| 3.24.3. Executing OPT_MEM_FEEDBACK pass (finding memory read-to-write feedback paths).
 | |
| 
 | |
| 3.24.4. Executing MEMORY_DFF pass (merging $dff cells to $memrd).
 | |
| Checking read port `\bram_i.ram'[0] in module `\top': merging output FF to cell.
 | |
| 
 | |
| 3.24.5. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| Removed 1 unused cells and 1 unused wires.
 | |
| <suppressed ~2 debug messages>
 | |
| 
 | |
| 3.24.6. Executing MEMORY_SHARE pass (consolidating $memrd/$memwr cells).
 | |
| 
 | |
| 3.24.7. Executing OPT_MEM_WIDEN pass (optimize memories where all ports are wide).
 | |
| Performed a total of 0 transformations.
 | |
| 
 | |
| 3.24.8. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| 
 | |
| 3.24.9. Executing MEMORY_COLLECT pass (generating $mem cells).
 | |
| 
 | |
| 3.25. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| 
 | |
| 3.26. Executing MEMORY_BRAM pass (mapping $mem cells to block memories).
 | |
| Processing top.bram_i.ram:
 | |
|   Properties: ports=1 bits=32768 rports=1 wports=0 dbits=8 abits=12 words=4096
 | |
|   Checking rule #1 for bram type $__ECP5_PDPW16KD (variant 1):
 | |
|     Bram geometry: abits=9 dbits=36 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_PDPW16KD: awaste=0 dwaste=28 bwaste=14336 waste=14336 efficiency=22
 | |
|     Rule #1 for bram type $__ECP5_PDPW16KD (variant 1) accepted.
 | |
|     Mapping to bram type $__ECP5_PDPW16KD (variant 1):
 | |
|       Read port #0 is in clock domain \clk.
 | |
|         Mapped to bram port B1.1.
 | |
|       Updated properties: dups=1 waste=14336 efficiency=22
 | |
|       Storing for later selection.
 | |
|   Checking rule #2 for bram type $__ECP5_PDPW16KD (variant 1):
 | |
|     Bram geometry: abits=9 dbits=36 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_PDPW16KD: awaste=0 dwaste=28 bwaste=14336 waste=14336 efficiency=22
 | |
|     Rule #2 for bram type $__ECP5_PDPW16KD (variant 1) rejected: requirement 'min wports 1' not met.
 | |
|   Checking rule #3 for bram type $__ECP5_PDPW16KD (variant 1):
 | |
|     Bram geometry: abits=9 dbits=36 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_PDPW16KD: awaste=0 dwaste=28 bwaste=14336 waste=14336 efficiency=22
 | |
|     Rule for bram type $__ECP5_PDPW16KD (variant 1) rejected: requirement 'attribute syn_romstyle="ebr" ...' not met.
 | |
|   Checking rule #4 for bram type $__ECP5_DP16KD (variant 1):
 | |
|     Bram geometry: abits=10 dbits=18 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=0 dwaste=10 bwaste=10240 waste=10240 efficiency=44
 | |
|     Rule #4 for bram type $__ECP5_DP16KD (variant 1) accepted.
 | |
|     Mapping to bram type $__ECP5_DP16KD (variant 1):
 | |
|       Read port #0 is in clock domain \clk.
 | |
|         Mapped to bram port B1.1.
 | |
|       Updated properties: dups=1 waste=10240 efficiency=44
 | |
|       Storing for later selection.
 | |
|   Checking rule #4 for bram type $__ECP5_DP16KD (variant 2):
 | |
|     Bram geometry: abits=11 dbits=9 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=0 dwaste=1 bwaste=2048 waste=2048 efficiency=88
 | |
|     Rule #4 for bram type $__ECP5_DP16KD (variant 2) accepted.
 | |
|     Mapping to bram type $__ECP5_DP16KD (variant 2):
 | |
|       Read port #0 is in clock domain \clk.
 | |
|         Mapped to bram port B1.1.
 | |
|       Updated properties: dups=1 waste=2048 efficiency=88
 | |
|       Storing for later selection.
 | |
|   Checking rule #4 for bram type $__ECP5_DP16KD (variant 3):
 | |
|     Bram geometry: abits=12 dbits=4 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=0 dwaste=0 bwaste=0 waste=0 efficiency=100
 | |
|     Rule #4 for bram type $__ECP5_DP16KD (variant 3) accepted.
 | |
|     Mapping to bram type $__ECP5_DP16KD (variant 3):
 | |
|       Read port #0 is in clock domain \clk.
 | |
|         Mapped to bram port B1.1.
 | |
|       Updated properties: dups=1 waste=0 efficiency=100
 | |
|       Storing for later selection.
 | |
|   Checking rule #4 for bram type $__ECP5_DP16KD (variant 4):
 | |
|     Bram geometry: abits=13 dbits=2 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=4096 dwaste=0 bwaste=8192 waste=8192 efficiency=50
 | |
|     Rule #4 for bram type $__ECP5_DP16KD (variant 4) accepted.
 | |
|     Mapping to bram type $__ECP5_DP16KD (variant 4):
 | |
|       Read port #0 is in clock domain \clk.
 | |
|         Mapped to bram port B1.1.
 | |
|       Updated properties: dups=1 waste=8192 efficiency=50
 | |
|       Storing for later selection.
 | |
|   Checking rule #4 for bram type $__ECP5_DP16KD (variant 5):
 | |
|     Bram geometry: abits=14 dbits=1 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=12288 dwaste=0 bwaste=12288 waste=12288 efficiency=25
 | |
|     Rule #4 for bram type $__ECP5_DP16KD (variant 5) accepted.
 | |
|     Mapping to bram type $__ECP5_DP16KD (variant 5):
 | |
|       Read port #0 is in clock domain \clk.
 | |
|         Mapped to bram port B1.1.
 | |
|       Updated properties: dups=1 waste=12288 efficiency=25
 | |
|       Storing for later selection.
 | |
|   Checking rule #5 for bram type $__ECP5_DP16KD (variant 1):
 | |
|     Bram geometry: abits=10 dbits=18 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=0 dwaste=10 bwaste=10240 waste=10240 efficiency=44
 | |
|     Rule #5 for bram type $__ECP5_DP16KD (variant 1) rejected: requirement 'min wports 1' not met.
 | |
|   Checking rule #5 for bram type $__ECP5_DP16KD (variant 2):
 | |
|     Bram geometry: abits=11 dbits=9 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=0 dwaste=1 bwaste=2048 waste=2048 efficiency=88
 | |
|     Rule #5 for bram type $__ECP5_DP16KD (variant 2) rejected: requirement 'min wports 1' not met.
 | |
|   Checking rule #5 for bram type $__ECP5_DP16KD (variant 3):
 | |
|     Bram geometry: abits=12 dbits=4 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=0 dwaste=0 bwaste=0 waste=0 efficiency=100
 | |
|     Rule #5 for bram type $__ECP5_DP16KD (variant 3) rejected: requirement 'min wports 1' not met.
 | |
|   Checking rule #5 for bram type $__ECP5_DP16KD (variant 4):
 | |
|     Bram geometry: abits=13 dbits=2 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=4096 dwaste=0 bwaste=8192 waste=8192 efficiency=50
 | |
|     Rule #5 for bram type $__ECP5_DP16KD (variant 4) rejected: requirement 'min wports 1' not met.
 | |
|   Checking rule #5 for bram type $__ECP5_DP16KD (variant 5):
 | |
|     Bram geometry: abits=14 dbits=1 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=12288 dwaste=0 bwaste=12288 waste=12288 efficiency=25
 | |
|     Rule #5 for bram type $__ECP5_DP16KD (variant 5) rejected: requirement 'min wports 1' not met.
 | |
|   Checking rule #6 for bram type $__ECP5_DP16KD (variant 1):
 | |
|     Bram geometry: abits=10 dbits=18 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=0 dwaste=10 bwaste=10240 waste=10240 efficiency=44
 | |
|     Rule for bram type $__ECP5_DP16KD (variant 1) rejected: requirement 'attribute syn_romstyle="ebr" ...' not met.
 | |
|   Checking rule #6 for bram type $__ECP5_DP16KD (variant 2):
 | |
|     Bram geometry: abits=11 dbits=9 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=0 dwaste=1 bwaste=2048 waste=2048 efficiency=88
 | |
|     Rule for bram type $__ECP5_DP16KD (variant 2) rejected: requirement 'attribute syn_romstyle="ebr" ...' not met.
 | |
|   Checking rule #6 for bram type $__ECP5_DP16KD (variant 3):
 | |
|     Bram geometry: abits=12 dbits=4 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=0 dwaste=0 bwaste=0 waste=0 efficiency=100
 | |
|     Rule for bram type $__ECP5_DP16KD (variant 3) rejected: requirement 'attribute syn_romstyle="ebr" ...' not met.
 | |
|   Checking rule #6 for bram type $__ECP5_DP16KD (variant 4):
 | |
|     Bram geometry: abits=13 dbits=2 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=4096 dwaste=0 bwaste=8192 waste=8192 efficiency=50
 | |
|     Rule for bram type $__ECP5_DP16KD (variant 4) rejected: requirement 'attribute syn_romstyle="ebr" ...' not met.
 | |
|   Checking rule #6 for bram type $__ECP5_DP16KD (variant 5):
 | |
|     Bram geometry: abits=14 dbits=1 wports=0 rports=0
 | |
|     Estimated number of duplicates for more read ports: dups=1
 | |
|     Metrics for $__ECP5_DP16KD: awaste=12288 dwaste=0 bwaste=12288 waste=12288 efficiency=25
 | |
|     Rule for bram type $__ECP5_DP16KD (variant 5) rejected: requirement 'attribute syn_romstyle="ebr" ...' not met.
 | |
|   Selecting best of 6 rules:
 | |
|     Efficiency for rule 4.5: efficiency=25, cells=8, acells=1
 | |
|     Efficiency for rule 4.4: efficiency=50, cells=4, acells=1
 | |
|     Efficiency for rule 4.3: efficiency=100, cells=2, acells=1
 | |
|     Efficiency for rule 4.2: efficiency=88, cells=2, acells=2
 | |
|     Efficiency for rule 4.1: efficiency=44, cells=4, acells=4
 | |
|     Efficiency for rule 1.1: efficiency=22, cells=8, acells=8
 | |
|     Selected rule 4.3 with efficiency 100.
 | |
|     Mapping to bram type $__ECP5_DP16KD (variant 3):
 | |
|       Read port #0 is in clock domain \clk.
 | |
|         Mapped to bram port B1.1.
 | |
|       Creating $__ECP5_DP16KD cell at grid position <0 0 0>: bram_i.ram.0.0.0
 | |
|       Creating $__ECP5_DP16KD cell at grid position <1 0 0>: bram_i.ram.1.0.0
 | |
| 
 | |
| 3.27. Executing TECHMAP pass (map to technology primitives).
 | |
| 
 | |
| 3.27.1. Executing Verilog-2005 frontend: /usr/local/bin/../share/yosys/ecp5/brams_map.v
 | |
| Parsing Verilog input from `/usr/local/bin/../share/yosys/ecp5/brams_map.v' to AST representation.
 | |
| Generating RTLIL representation for module `\$__ECP5_DP16KD'.
 | |
| Generating RTLIL representation for module `\$__ECP5_PDPW16KD'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3.27.2. Continuing TECHMAP pass.
 | |
| Using template $paramod$ba9148b1adcb2e75ad39c74e24db38e574379cd3\$__ECP5_DP16KD for cells of type $__ECP5_DP16KD.
 | |
| Using template $paramod$30fb7e36c476b971e3c7167d64eb66b5cf299a0d\$__ECP5_DP16KD for cells of type $__ECP5_DP16KD.
 | |
| No more expansions possible.
 | |
| <suppressed ~44 debug messages>
 | |
| 
 | |
| 3.28. Executing MEMORY_BRAM pass (mapping $mem cells to block memories).
 | |
| 
 | |
| 3.29. Executing TECHMAP pass (map to technology primitives).
 | |
| 
 | |
| 3.29.1. Executing Verilog-2005 frontend: /usr/local/bin/../share/yosys/ecp5/lutrams_map.v
 | |
| Parsing Verilog input from `/usr/local/bin/../share/yosys/ecp5/lutrams_map.v' to AST representation.
 | |
| Generating RTLIL representation for module `\$__TRELLIS_DPR16X4'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3.29.2. Continuing TECHMAP pass.
 | |
| No more expansions possible.
 | |
| <suppressed ~3 debug messages>
 | |
| 
 | |
| 3.30. Executing OPT pass (performing simple optimizations).
 | |
| 
 | |
| 3.30.1. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| <suppressed ~10 debug messages>
 | |
| 
 | |
| 3.30.2. Executing OPT_MERGE pass (detect identical cells).
 | |
| Finding identical cells in module `\top'.
 | |
| Removed a total of 0 cells.
 | |
| 
 | |
| 3.30.3. Executing OPT_DFF pass (perform DFF optimizations).
 | |
| 
 | |
| 3.30.4. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| Removed 1 unused cells and 21 unused wires.
 | |
| <suppressed ~2 debug messages>
 | |
| 
 | |
| 3.30.5. Finished fast OPT passes.
 | |
| 
 | |
| 3.31. Executing MEMORY_MAP pass (converting memories to logic and flip-flops).
 | |
| 
 | |
| 3.32. Executing OPT pass (performing simple optimizations).
 | |
| 
 | |
| 3.32.1. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| 
 | |
| 3.32.2. Executing OPT_MERGE pass (detect identical cells).
 | |
| Finding identical cells in module `\top'.
 | |
| Removed a total of 0 cells.
 | |
| 
 | |
| 3.32.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
 | |
| Running muxtree optimizer on module \top..
 | |
|   Creating internal representation of mux trees.
 | |
|   No muxes found in this module.
 | |
| Removed 0 multiplexer ports.
 | |
| 
 | |
| 3.32.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
 | |
|   Optimizing cells in module \top.
 | |
| Performed a total of 0 changes.
 | |
| 
 | |
| 3.32.5. Executing OPT_MERGE pass (detect identical cells).
 | |
| Finding identical cells in module `\top'.
 | |
| Removed a total of 0 cells.
 | |
| 
 | |
| 3.32.6. Executing OPT_DFF pass (perform DFF optimizations).
 | |
| 
 | |
| 3.32.7. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| 
 | |
| 3.32.8. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| 
 | |
| 3.32.9. Finished OPT passes. (There is nothing left to do.)
 | |
| 
 | |
| 3.33. Executing TECHMAP pass (map to technology primitives).
 | |
| 
 | |
| 3.33.1. Executing Verilog-2005 frontend: /usr/local/bin/../share/yosys/techmap.v
 | |
| Parsing Verilog input from `/usr/local/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_demux'.
 | |
| Generating RTLIL representation for module `\_90_lut'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3.33.2. Executing Verilog-2005 frontend: /usr/local/bin/../share/yosys/ecp5/arith_map.v
 | |
| Parsing Verilog input from `/usr/local/bin/../share/yosys/ecp5/arith_map.v' to AST representation.
 | |
| Generating RTLIL representation for module `\_80_ecp5_alu'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3.33.3. Continuing TECHMAP pass.
 | |
| Using extmapper simplemap for cells of type $dff.
 | |
| Using template $paramod$754650b284649a026620fc6856e5b6886cbfe794\_80_ecp5_alu for cells of type $alu.
 | |
| Using extmapper simplemap for cells of type $logic_or.
 | |
| Using extmapper simplemap for cells of type $logic_and.
 | |
| Using extmapper simplemap for cells of type $xor.
 | |
| Using extmapper simplemap for cells of type $mux.
 | |
| Using extmapper simplemap for cells of type $not.
 | |
| Using extmapper simplemap for cells of type $pos.
 | |
| No more expansions possible.
 | |
| <suppressed ~118 debug messages>
 | |
| 
 | |
| 3.34. Executing OPT pass (performing simple optimizations).
 | |
| 
 | |
| 3.34.1. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| <suppressed ~36 debug messages>
 | |
| 
 | |
| 3.34.2. Executing OPT_MERGE pass (detect identical cells).
 | |
| Finding identical cells in module `\top'.
 | |
| <suppressed ~3 debug messages>
 | |
| Removed a total of 1 cells.
 | |
| 
 | |
| 3.34.3. Executing OPT_DFF pass (perform DFF optimizations).
 | |
| 
 | |
| 3.34.4. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| Removed 14 unused cells and 40 unused wires.
 | |
| <suppressed ~15 debug messages>
 | |
| 
 | |
| 3.34.5. Finished fast OPT passes.
 | |
| 
 | |
| 3.35. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| 
 | |
| 3.36. Executing DFFLEGALIZE pass (convert FFs to types supported by the target).
 | |
| 
 | |
| 3.37. Executing TECHMAP pass (map to technology primitives).
 | |
| 
 | |
| 3.37.1. Executing Verilog-2005 frontend: /usr/local/bin/../share/yosys/ecp5/cells_map.v
 | |
| Parsing Verilog input from `/usr/local/bin/../share/yosys/ecp5/cells_map.v' to AST representation.
 | |
| Generating RTLIL representation for module `\$_DFF_N_'.
 | |
| Generating RTLIL representation for module `\$_DFF_P_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_NN_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_PN_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_NP_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_PP_'.
 | |
| Generating RTLIL representation for module `\$_DFF_NP0_'.
 | |
| Generating RTLIL representation for module `\$_DFF_NP1_'.
 | |
| Generating RTLIL representation for module `\$_DFF_PP0_'.
 | |
| Generating RTLIL representation for module `\$_DFF_PP1_'.
 | |
| Generating RTLIL representation for module `\$_SDFF_NP0_'.
 | |
| Generating RTLIL representation for module `\$_SDFF_NP1_'.
 | |
| Generating RTLIL representation for module `\$_SDFF_PP0_'.
 | |
| Generating RTLIL representation for module `\$_SDFF_PP1_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_NP0P_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_NP1P_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_PP0P_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_PP1P_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_NP0N_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_NP1N_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_PP0N_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_PP1N_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_NP0P_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_NP1P_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_PP0P_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_PP1P_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_NP0N_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_NP1N_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_PP0N_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_PP1N_'.
 | |
| Generating RTLIL representation for module `\$_ALDFF_NP_'.
 | |
| Generating RTLIL representation for module `\$_ALDFF_PP_'.
 | |
| Generating RTLIL representation for module `\$_ALDFFE_NPN_'.
 | |
| Generating RTLIL representation for module `\$_ALDFFE_NPP_'.
 | |
| Generating RTLIL representation for module `\$_ALDFFE_PPN_'.
 | |
| Generating RTLIL representation for module `\$_ALDFFE_PPP_'.
 | |
| Generating RTLIL representation for module `\FD1P3AX'.
 | |
| Generating RTLIL representation for module `\FD1P3AY'.
 | |
| Generating RTLIL representation for module `\FD1P3BX'.
 | |
| Generating RTLIL representation for module `\FD1P3DX'.
 | |
| Generating RTLIL representation for module `\FD1P3IX'.
 | |
| Generating RTLIL representation for module `\FD1P3JX'.
 | |
| Generating RTLIL representation for module `\FD1S3AX'.
 | |
| Generating RTLIL representation for module `\FD1S3AY'.
 | |
| Generating RTLIL representation for module `\FD1S3BX'.
 | |
| Generating RTLIL representation for module `\FD1S3DX'.
 | |
| Generating RTLIL representation for module `\FD1S3IX'.
 | |
| Generating RTLIL representation for module `\FD1S3JX'.
 | |
| Generating RTLIL representation for module `\IFS1P3BX'.
 | |
| Generating RTLIL representation for module `\IFS1P3DX'.
 | |
| Generating RTLIL representation for module `\IFS1P3IX'.
 | |
| Generating RTLIL representation for module `\IFS1P3JX'.
 | |
| Generating RTLIL representation for module `\OFS1P3BX'.
 | |
| Generating RTLIL representation for module `\OFS1P3DX'.
 | |
| Generating RTLIL representation for module `\OFS1P3IX'.
 | |
| Generating RTLIL representation for module `\OFS1P3JX'.
 | |
| Generating RTLIL representation for module `\IB'.
 | |
| Generating RTLIL representation for module `\IBPU'.
 | |
| Generating RTLIL representation for module `\IBPD'.
 | |
| Generating RTLIL representation for module `\OB'.
 | |
| Generating RTLIL representation for module `\OBZ'.
 | |
| Generating RTLIL representation for module `\OBZPU'.
 | |
| Generating RTLIL representation for module `\OBZPD'.
 | |
| Generating RTLIL representation for module `\OBCO'.
 | |
| Generating RTLIL representation for module `\BB'.
 | |
| Generating RTLIL representation for module `\BBPU'.
 | |
| Generating RTLIL representation for module `\BBPD'.
 | |
| Generating RTLIL representation for module `\ILVDS'.
 | |
| Generating RTLIL representation for module `\OLVDS'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3.37.2. Continuing TECHMAP pass.
 | |
| Using template $paramod\$_DFF_P_\_TECHMAP_WIREINIT_Q_=1'0 for cells of type $_DFF_P_.
 | |
| Using template $paramod\$_DFF_P_\_TECHMAP_WIREINIT_Q_=1'x for cells of type $_DFF_P_.
 | |
| No more expansions possible.
 | |
| <suppressed ~104 debug messages>
 | |
| 
 | |
| 3.38. Executing OPT_EXPR pass (perform const folding).
 | |
| Optimizing module top.
 | |
| 
 | |
| 3.39. Executing SIMPLEMAP pass (map simple cells to gate primitives).
 | |
| 
 | |
| 3.40. Executing ECP5_GSR pass (implement FF init values).
 | |
| Handling GSR in top.
 | |
| 
 | |
| 3.41. Executing ATTRMVCP pass (move or copy attributes).
 | |
| 
 | |
| 3.42. Executing OPT_CLEAN pass (remove unused cells and wires).
 | |
| Finding unused cells or wires in module \top..
 | |
| Removed 0 unused cells and 44 unused wires.
 | |
| <suppressed ~1 debug messages>
 | |
| 
 | |
| 3.43. Executing TECHMAP pass (map to technology primitives).
 | |
| 
 | |
| 3.43.1. Executing Verilog-2005 frontend: /usr/local/bin/../share/yosys/ecp5/latches_map.v
 | |
| Parsing Verilog input from `/usr/local/bin/../share/yosys/ecp5/latches_map.v' to AST representation.
 | |
| Generating RTLIL representation for module `\$_DLATCH_N_'.
 | |
| Generating RTLIL representation for module `\$_DLATCH_P_'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3.43.2. Continuing TECHMAP pass.
 | |
| No more expansions possible.
 | |
| <suppressed ~4 debug messages>
 | |
| 
 | |
| 3.44. Executing ABC pass (technology mapping using ABC).
 | |
| 
 | |
| 3.44.1. Extracting gate netlist of module `\top' 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.
 | |
| 
 | |
| 3.45. Executing TECHMAP pass (map to technology primitives).
 | |
| 
 | |
| 3.45.1. Executing Verilog-2005 frontend: /usr/local/bin/../share/yosys/ecp5/cells_map.v
 | |
| Parsing Verilog input from `/usr/local/bin/../share/yosys/ecp5/cells_map.v' to AST representation.
 | |
| Generating RTLIL representation for module `\$_DFF_N_'.
 | |
| Generating RTLIL representation for module `\$_DFF_P_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_NN_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_PN_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_NP_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_PP_'.
 | |
| Generating RTLIL representation for module `\$_DFF_NP0_'.
 | |
| Generating RTLIL representation for module `\$_DFF_NP1_'.
 | |
| Generating RTLIL representation for module `\$_DFF_PP0_'.
 | |
| Generating RTLIL representation for module `\$_DFF_PP1_'.
 | |
| Generating RTLIL representation for module `\$_SDFF_NP0_'.
 | |
| Generating RTLIL representation for module `\$_SDFF_NP1_'.
 | |
| Generating RTLIL representation for module `\$_SDFF_PP0_'.
 | |
| Generating RTLIL representation for module `\$_SDFF_PP1_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_NP0P_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_NP1P_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_PP0P_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_PP1P_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_NP0N_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_NP1N_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_PP0N_'.
 | |
| Generating RTLIL representation for module `\$_DFFE_PP1N_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_NP0P_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_NP1P_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_PP0P_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_PP1P_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_NP0N_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_NP1N_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_PP0N_'.
 | |
| Generating RTLIL representation for module `\$_SDFFE_PP1N_'.
 | |
| Generating RTLIL representation for module `\$_ALDFF_NP_'.
 | |
| Generating RTLIL representation for module `\$_ALDFF_PP_'.
 | |
| Generating RTLIL representation for module `\$_ALDFFE_NPN_'.
 | |
| Generating RTLIL representation for module `\$_ALDFFE_NPP_'.
 | |
| Generating RTLIL representation for module `\$_ALDFFE_PPN_'.
 | |
| Generating RTLIL representation for module `\$_ALDFFE_PPP_'.
 | |
| Generating RTLIL representation for module `\FD1P3AX'.
 | |
| Generating RTLIL representation for module `\FD1P3AY'.
 | |
| Generating RTLIL representation for module `\FD1P3BX'.
 | |
| Generating RTLIL representation for module `\FD1P3DX'.
 | |
| Generating RTLIL representation for module `\FD1P3IX'.
 | |
| Generating RTLIL representation for module `\FD1P3JX'.
 | |
| Generating RTLIL representation for module `\FD1S3AX'.
 | |
| Generating RTLIL representation for module `\FD1S3AY'.
 | |
| Generating RTLIL representation for module `\FD1S3BX'.
 | |
| Generating RTLIL representation for module `\FD1S3DX'.
 | |
| Generating RTLIL representation for module `\FD1S3IX'.
 | |
| Generating RTLIL representation for module `\FD1S3JX'.
 | |
| Generating RTLIL representation for module `\IFS1P3BX'.
 | |
| Generating RTLIL representation for module `\IFS1P3DX'.
 | |
| Generating RTLIL representation for module `\IFS1P3IX'.
 | |
| Generating RTLIL representation for module `\IFS1P3JX'.
 | |
| Generating RTLIL representation for module `\OFS1P3BX'.
 | |
| Generating RTLIL representation for module `\OFS1P3DX'.
 | |
| Generating RTLIL representation for module `\OFS1P3IX'.
 | |
| Generating RTLIL representation for module `\OFS1P3JX'.
 | |
| Generating RTLIL representation for module `\IB'.
 | |
| Generating RTLIL representation for module `\IBPU'.
 | |
| Generating RTLIL representation for module `\IBPD'.
 | |
| Generating RTLIL representation for module `\OB'.
 | |
| Generating RTLIL representation for module `\OBZ'.
 | |
| Generating RTLIL representation for module `\OBZPU'.
 | |
| Generating RTLIL representation for module `\OBZPD'.
 | |
| Generating RTLIL representation for module `\OBCO'.
 | |
| Generating RTLIL representation for module `\BB'.
 | |
| Generating RTLIL representation for module `\BBPU'.
 | |
| Generating RTLIL representation for module `\BBPD'.
 | |
| Generating RTLIL representation for module `\ILVDS'.
 | |
| Generating RTLIL representation for module `\OLVDS'.
 | |
| Generating RTLIL representation for module `\$lut'.
 | |
| Successfully finished Verilog frontend.
 | |
| 
 | |
| 3.45.2. Continuing TECHMAP pass.
 | |
| No more expansions possible.
 | |
| <suppressed ~72 debug messages>
 | |
| 
 | |
| 3.46. Executing OPT_LUT_INS pass (discard unused LUT inputs).
 | |
| Optimizing LUTs in top.
 | |
| 
 | |
| 3.47. Executing AUTONAME pass.
 | |
| Renamed 19 objects in module top (3 iterations).
 | |
| <suppressed ~19 debug messages>
 | |
| 
 | |
| 3.48. Executing HIERARCHY pass (managing design hierarchy).
 | |
| 
 | |
| 3.48.1. Analyzing design hierarchy..
 | |
| Top module:  \top
 | |
| 
 | |
| 3.48.2. Analyzing design hierarchy..
 | |
| Top module:  \top
 | |
| Removed 0 unused modules.
 | |
| 
 | |
| 3.49. Printing statistics.
 | |
| 
 | |
| === top ===
 | |
| 
 | |
|    Number of wires:                 13
 | |
|    Number of wire bits:             72
 | |
|    Number of public wires:          13
 | |
|    Number of public wire bits:      72
 | |
|    Number of memories:               0
 | |
|    Number of memory bits:            0
 | |
|    Number of processes:              0
 | |
|    Number of cells:                 17
 | |
|      CCU2C                           5
 | |
|      DP16KD                          1
 | |
|      TRELLIS_FF                     11
 | |
| 
 | |
| 3.50. Executing CHECK pass (checking for obvious problems).
 | |
| Checking module top...
 | |
| Found and reported 0 problems.
 | |
| 
 | |
| 3.51. Executing JSON backend.
 | |
| 
 | |
| End of script. Logfile hash: 190f20a9ac, CPU: user 0.98s system 0.04s, MEM: 374.53 MB peak
 | |
| Yosys 0.13+28 (git sha1 fc40df091, gcc 11.2.0-7ubuntu2 -fPIC -Os)
 | |
| Time spent: 42% 8x techmap (0 sec), 40% 16x read_verilog (0 sec), ...
 | |
| nextpnr-ecp5 --25k --package CABGA381 --speed 6 --json top.json --textcfg top.config --lpf top.lpf --freq 65
 |