1090 lines
59 KiB
Plaintext
1090 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.97s system 0.03s, MEM: 374.43 MB peak
|
||
|
Yosys 0.13+28 (git sha1 fc40df091, gcc 11.2.0-7ubuntu2 -fPIC -Os)
|
||
|
Time spent: 43% 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
|
||
|
make: Nothing to be done for 'grep'.
|