Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- rm -fr lib work *.json *.svf *.config *-report.txt
- mkdir lib
- ghdl -i --workdir=lib/ --work=ecp5um ../../library/ecp5u/components.vhdl
- yosys -m ghdl -p \
- "ghdl -Plib -gCLK_FREQUENCY=25000000 versa_ecp5_top.vhdl pll_mac.vhd soc_iomap_pkg.vhdl uart.vhdl uart_tx.vhdl uart_rx.vhdl fifobuf.vhdl -e versa_ecp5_top; \
- read_verilog ../../library/wrapper/primitives.v ../../library/wrapper/bram.v; \
- synth_ecp5 \
- -top versa_ecp5_top -json versa_ecp5_top.json" 2>&1 | tee versa_ecp5_top-report.txt
- /----------------------------------------------------------------------------\
- | |
- | 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.28+1 (git sha1 a9c792dce, clang 14.0.0-1ubuntu1 -fPIC -Os)
- -- Running command `ghdl -Plib -gCLK_FREQUENCY=25000000 versa_ecp5_top.vhdl pll_mac.vhd soc_iomap_pkg.vhdl uart.vhdl uart_tx.vhdl uart_rx.vhdl fifobuf.vhdl -e versa_ecp5_top; read_verilog ../../library/wrapper/primitives.v ../../library/wrapper/bram.v; synth_ecp5 -top versa_ecp5_top -json versa_ecp5_top.json' --
- 1. Executing GHDL.
- pll_mac.vhd:53:5:warning: instance "scuba_vhi_inst" of component "vhi" is not bound [-Wbinding]
- scuba_vhi_inst: VHI
- ^
- pll_mac.vhd:22:14:warning: (in default configuration of pll_mac(structure))
- pll_mac.vhd:56:5:warning: instance "scuba_vlo_inst" of component "vlo" is not bound [-Wbinding]
- scuba_vlo_inst: VLO
- ^
- pll_mac.vhd:22:14:warning: (in default configuration of pll_mac(structure))
- pll_mac.vhd:59:5:warning: instance "pllinst_0" of component "ehxplll" is not bound [-Wbinding]
- PLLInst_0: EHXPLLL
- ^
- pll_mac.vhd:22:14:warning: (in default configuration of pll_mac(structure))
- fifobuf.vhdl:160:1:warning: instance "ram" of component "bram_2psync" is not bound [-Wbinding]
- ram:
- ^
- fifobuf.vhdl:34:14:warning: (in default configuration of fifobuffer(behaviour))
- pll_mac.vhd:49:15:warning: attribute "ngd_drc_mask" for architecture "structure" of "pll_mac" is not kept in the netlist [-Wunkept-attribute]
- attribute NGD_DRC_MASK of Structure : architecture is 1;
- ^
- pll_mac.vhd:49:15:warning: unhandled attribute "ngd_drc_mask" [-Wunhandled-attribute]
- attribute NGD_DRC_MASK of Structure : architecture is 1;
- ^
- pll_mac.vhd:46:15:warning: unhandled attribute "lpf_resistor" [-Wunhandled-attribute]
- attribute LPF_RESISTOR of PLLInst_0 : label is "16";
- ^
- pll_mac.vhd:45:15:warning: unhandled attribute "icp_current" [-Wunhandled-attribute]
- attribute ICP_CURRENT of PLLInst_0 : label is "7";
- ^
- pll_mac.vhd:44:15:warning: unhandled attribute "frequency_pin_clki" [-Wunhandled-attribute]
- attribute FREQUENCY_PIN_CLKI of PLLInst_0 : label is "100.000000";
- ^
- pll_mac.vhd:43:15:warning: unhandled attribute "frequency_pin_clkop" [-Wunhandled-attribute]
- attribute FREQUENCY_PIN_CLKOP of PLLInst_0 : label is "125.000000";
- ^
- pll_mac.vhd:42:15:warning: unhandled attribute "frequency_pin_clkos" [-Wunhandled-attribute]
- attribute FREQUENCY_PIN_CLKOS of PLLInst_0 : label is "25.000000";
- ^
- pll_mac.vhd:41:15:warning: unhandled attribute "frequency_pin_clkos2" [-Wunhandled-attribute]
- attribute FREQUENCY_PIN_CLKOS2 of PLLInst_0 : label is "50.000000";
- ^
- pll_mac.vhd:40:15:warning: unhandled attribute "frequency_pin_clkos3" [-Wunhandled-attribute]
- attribute FREQUENCY_PIN_CLKOS3 of PLLInst_0 : label is "75.000000";
- ^
- Importing module versa_ecp5_top.
- Importing module pll_mac.
- Importing module uart_core_6_c575f3e383df5c81fb057f50806caf1436554d70.
- Importing module VHI.
- Importing module VLO.
- Importing module EHXPLLL.
- Importing module uartrx_3.
- Importing module uarttx.
- Importing module fifobuffer_6_8_904fcba6bac2ff7d8e3cafd7c89647b407aa349b.
- Importing module bram_2psync.
- 2. Executing Verilog-2005 frontend: ../../library/wrapper/primitives.v
- Parsing Verilog input from `../../library/wrapper/primitives.v' to AST representation.
- Generating RTLIL representation for module `\vhi'.
- Generating RTLIL representation for module `\vlo'.
- Successfully finished Verilog frontend.
- 3. Executing Verilog-2005 frontend: ../../library/wrapper/bram.v
- Parsing Verilog input from `../../library/wrapper/bram.v' to AST representation.
- Replacing existing blackbox module `\bram_2psync' at ../../library/wrapper/bram.v:4.1-46.10.
- Generating RTLIL representation for module `\bram_2psync'.
- Warning: reg '\a_read' is assigned in a continuous assignment at ../../library/wrapper/bram.v:30.8-30.28.
- Successfully finished Verilog frontend.
- 4. Executing SYNTH_ECP5 pass.
- 4.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_COMB'.
- 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.
- 4.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'.
- Replacing existing blackbox module `\EHXPLLL' at /usr/local/bin/../share/yosys/ecp5/cells_bb.v:120.1-165.10.
- 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.
- 4.3. Executing HIERARCHY pass (managing design hierarchy).
- 4.3.1. Analyzing design hierarchy..
- Top module: \versa_ecp5_top
- Used module: \uart_core_6_c575f3e383df5c81fb057f50806caf1436554d70
- Used module: \fifobuffer_6_8_904fcba6bac2ff7d8e3cafd7c89647b407aa349b
- Used module: \bram_2psync
- Used module: \uarttx
- Used module: \uartrx_3
- Used module: \pll_mac
- Parameter \DATA = 31'0000000000000000000000000001000
- Parameter \ADDR = 31'0000000000000000000000000000110
- 4.3.2. Executing AST frontend in derive mode using pre-parsed AST for module `\bram_2psync'.
- Parameter \DATA = 31'0000000000000000000000000001000
- Parameter \ADDR = 31'0000000000000000000000000000110
- Generating RTLIL representation for module `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync'.
- Warning: reg '\a_read' is assigned in a continuous assignment at ../../library/wrapper/bram.v:30.8-30.28.
- 4.3.3. Analyzing design hierarchy..
- Top module: \versa_ecp5_top
- Used module: \uart_core_6_c575f3e383df5c81fb057f50806caf1436554d70
- Used module: \fifobuffer_6_8_904fcba6bac2ff7d8e3cafd7c89647b407aa349b
- Used module: $paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync
- Used module: \uarttx
- Used module: \uartrx_3
- Used module: \pll_mac
- 4.3.4. Analyzing design hierarchy..
- Top module: \versa_ecp5_top
- Used module: \uart_core_6_c575f3e383df5c81fb057f50806caf1436554d70
- Used module: \fifobuffer_6_8_904fcba6bac2ff7d8e3cafd7c89647b407aa349b
- Used module: $paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync
- Used module: \uarttx
- Used module: \uartrx_3
- Used module: \pll_mac
- Removing unused module `\bram_2psync'.
- Removing unused module `\vhi'.
- Removing unused module `\vlo'.
- Removed 3 unused modules.
- 4.4. Executing PROC pass (convert processes to netlists).
- 4.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$340'.
- Cleaned up 1 empty switch.
- 4.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$447 in module TRELLIS_FF.
- Marked 1 switch rules as full_case in process $proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:285$399 in module DPR16X4C.
- Marked 1 switch rules as full_case in process $proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:221$341 in module TRELLIS_DPR16X4.
- Marked 1 switch rules as full_case in process $proc$../../library/wrapper/bram.v:38$452 in module $paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.
- Removed a total of 0 dead cases.
- 4.4.3. Executing PROC_PRUNE pass (remove redundant assignments in processes).
- Removed 0 redundant assignments.
- Promoted 47 assignments to connections.
- 4.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$448'.
- Set init value: \Q = 1'0
- 4.4.5. Executing PROC_ARST pass (detect async resets in processes).
- 4.4.6. Executing PROC_ROM pass (convert switches to ROMs).
- Converted 0 switches.
- <suppressed ~5 debug messages>
- 4.4.7. 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$448'.
- Creating decoders for process `\TRELLIS_FF.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:350$447'.
- 1/1: $0\Q[0:0]
- Creating decoders for process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- Creating decoders for process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:285$399'.
- 1/3: $1$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:287$398_EN[3:0]$405
- 2/3: $1$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:287$398_DATA[3:0]$404
- 3/3: $1$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:287$398_ADDR[3:0]$403
- Creating decoders for process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- Creating decoders for process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:221$341'.
- 1/3: $1$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:223$339_EN[3:0]$347
- 2/3: $1$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:223$339_DATA[3:0]$346
- 3/3: $1$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:223$339_ADDR[3:0]$345
- Creating decoders for process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:213$340'.
- Creating decoders for process `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$proc$../../library/wrapper/bram.v:38$452'.
- 1/3: $1$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$458
- 2/3: $1$memwr$\mem$../../library/wrapper/bram.v:41$449_DATA[7:0]$457
- 3/3: $1$memwr$\mem$../../library/wrapper/bram.v:41$449_ADDR[5:0]$456
- Creating decoders for process `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$proc$../../library/wrapper/bram.v:33$451'.
- 4.4.8. Executing PROC_DLATCH pass (convert process syncs to latches).
- 4.4.9. 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$447'.
- created $dff cell `$procdff$491' with positive edge clock.
- Creating register for signal `\DPR16X4C.\i' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$383_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$384_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$385_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$386_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$387_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$388_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$389_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$390_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$391_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$392_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$393_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$394_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$395_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$396_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$397_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- 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$398_ADDR' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:285$399'.
- created $dff cell `$procdff$492' with positive edge clock.
- Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:287$398_DATA' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:285$399'.
- created $dff cell `$procdff$493' with positive edge clock.
- Creating register for signal `\DPR16X4C.$memwr$\ram$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:287$398_EN' using process `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:285$399'.
- created $dff cell `$procdff$494' 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$365'.
- 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$323_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$324_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$325_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$326_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$327_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$328_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$329_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$330_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$331_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$332_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$333_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$334_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$335_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$336_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$337_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$338_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- 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$339_ADDR' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:221$341'.
- created $dff cell `$procdff$495' with positive edge clock.
- Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:223$339_DATA' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:221$341'.
- created $dff cell `$procdff$496' with positive edge clock.
- Creating register for signal `\TRELLIS_DPR16X4.$memwr$\mem$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:223$339_EN' using process `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:221$341'.
- created $dff cell `$procdff$497' 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$340'.
- created direct connection (no actual register cell created).
- Creating register for signal `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.\addr_b' using process `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$proc$../../library/wrapper/bram.v:38$452'.
- created $dff cell `$procdff$498' with positive edge clock.
- Creating register for signal `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$memwr$\mem$../../library/wrapper/bram.v:41$449_ADDR' using process `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$proc$../../library/wrapper/bram.v:38$452'.
- created $dff cell `$procdff$499' with positive edge clock.
- Creating register for signal `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$memwr$\mem$../../library/wrapper/bram.v:41$449_DATA' using process `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$proc$../../library/wrapper/bram.v:38$452'.
- created $dff cell `$procdff$500' with positive edge clock.
- Creating register for signal `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$memwr$\mem$../../library/wrapper/bram.v:41$449_EN' using process `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$proc$../../library/wrapper/bram.v:38$452'.
- created $dff cell `$procdff$501' with positive edge clock.
- Creating register for signal `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.\addr_a' using process `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$proc$../../library/wrapper/bram.v:33$451'.
- created $dff cell `$procdff$502' with positive edge clock.
- 4.4.10. Executing PROC_MEMWR pass (convert process memory writes to cells).
- 4.4.11. 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$448'.
- Found and cleaned up 2 empty switches in `\TRELLIS_FF.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:350$447'.
- Removing empty process `TRELLIS_FF.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:350$447'.
- Removing empty process `DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$422'.
- Found and cleaned up 1 empty switch in `\DPR16X4C.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:285$399'.
- Removing empty process `TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:0$365'.
- Found and cleaned up 1 empty switch in `\TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:221$341'.
- Removing empty process `TRELLIS_DPR16X4.$proc$/usr/local/bin/../share/yosys/ecp5/cells_sim.v:213$340'.
- Found and cleaned up 1 empty switch in `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$proc$../../library/wrapper/bram.v:38$452'.
- Removing empty process `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$proc$../../library/wrapper/bram.v:38$452'.
- Removing empty process `$paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.$proc$../../library/wrapper/bram.v:33$451'.
- Cleaned up 5 empty switches.
- 4.4.12. Executing OPT_EXPR pass (perform const folding).
- Optimizing module $paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.
- Optimizing module fifobuffer_6_8_904fcba6bac2ff7d8e3cafd7c89647b407aa349b.
- <suppressed ~2 debug messages>
- Optimizing module uarttx.
- <suppressed ~3 debug messages>
- Optimizing module uartrx_3.
- <suppressed ~2 debug messages>
- Optimizing module uart_core_6_c575f3e383df5c81fb057f50806caf1436554d70.
- Optimizing module pll_mac.
- Optimizing module versa_ecp5_top.
- <suppressed ~1 debug messages>
- 4.5. Executing FLATTEN pass (flatten design).
- Deleting now unused module $paramod$3692047ea82e69e8d302bfe6cd77aeb89ef9392c\bram_2psync.
- Deleting now unused module fifobuffer_6_8_904fcba6bac2ff7d8e3cafd7c89647b407aa349b.
- Deleting now unused module uarttx.
- Deleting now unused module uartrx_3.
- Deleting now unused module uart_core_6_c575f3e383df5c81fb057f50806caf1436554d70.
- Deleting now unused module pll_mac.
- <suppressed ~7 debug messages>
- 4.6. Executing TRIBUF pass.
- 4.7. Executing DEMINOUT pass (demote inout ports to input or output).
- 4.8. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- <suppressed ~1 debug messages>
- 4.9. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- Removed 28 unused cells and 161 unused wires.
- <suppressed ~48 debug messages>
- 4.10. Executing CHECK pass (checking for obvious problems).
- Checking module versa_ecp5_top...
- Found and reported 0 problems.
- 4.11. Executing OPT pass (performing simple optimizations).
- 4.11.1. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.11.2. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- <suppressed ~39 debug messages>
- Removed a total of 13 cells.
- 4.11.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
- Running muxtree optimizer on module \versa_ecp5_top..
- Creating internal representation of mux trees.
- Evaluating internal representation of mux trees.
- Replacing known input bits on port A of cell \59: \uart_idle -> 1'0
- Analyzing evaluation results.
- Removed 0 multiplexer ports.
- <suppressed ~42 debug messages>
- 4.11.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
- Optimizing cells in module \versa_ecp5_top.
- Consolidated identical input bits for $mux cell $flatten\uart_inst.\rxfifo.\ram.$procmux$483:
- Old ports: A=8'00000000, B=8'11111111, Y=$flatten\uart_inst.\rxfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455
- New ports: A=1'0, B=1'1, Y=$flatten\uart_inst.\rxfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0]
- New connections: $flatten\uart_inst.\rxfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [7:1] = { $flatten\uart_inst.\rxfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] $flatten\uart_inst.\rxfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] $flatten\uart_inst.\rxfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] $flatten\uart_inst.\rxfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] $flatten\uart_inst.\rxfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] $flatten\uart_inst.\rxfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] $flatten\uart_inst.\rxfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] }
- New ctrl vector for $pmux cell \uart_inst.uart_rx.238: $flatten\uart_inst.\uart_rx.$auto$ghdl.cc:806:import_module$92
- Consolidated identical input bits for $mux cell $flatten\uart_inst.\txfifo.\ram.$procmux$483:
- Old ports: A=8'00000000, B=8'11111111, Y=$flatten\uart_inst.\txfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455
- New ports: A=1'0, B=1'1, Y=$flatten\uart_inst.\txfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0]
- New connections: $flatten\uart_inst.\txfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [7:1] = { $flatten\uart_inst.\txfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] $flatten\uart_inst.\txfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] $flatten\uart_inst.\txfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] $flatten\uart_inst.\txfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] $flatten\uart_inst.\txfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] $flatten\uart_inst.\txfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] $flatten\uart_inst.\txfifo.\ram.$0$memwr$\mem$../../library/wrapper/bram.v:41$449_EN[7:0]$455 [0] }
- New ctrl vector for $pmux cell \uart_inst.uart_rx.312: $flatten\uart_inst.\uart_rx.$auto$ghdl.cc:806:import_module$108
- New ctrl vector for $pmux cell \uart_inst.uart_tx.388: $flatten\uart_inst.\uart_tx.$auto$ghdl.cc:806:import_module$151
- New ctrl vector for $pmux cell \uart_inst.uart_tx.405: $flatten\uart_inst.\uart_tx.$auto$ghdl.cc:806:import_module$148
- Optimizing cells in module \versa_ecp5_top.
- Performed a total of 6 changes.
- 4.11.5. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- <suppressed ~6 debug messages>
- Removed a total of 2 cells.
- 4.11.6. Executing OPT_DFF pass (perform DFF optimizations).
- 4.11.7. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- Removed 0 unused cells and 15 unused wires.
- <suppressed ~1 debug messages>
- 4.11.8. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.11.9. Rerunning OPT passes. (Maybe there is more to do..)
- 4.11.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
- Running muxtree optimizer on module \versa_ecp5_top..
- Creating internal representation of mux trees.
- Evaluating internal representation of mux trees.
- Analyzing evaluation results.
- Removed 0 multiplexer ports.
- <suppressed ~43 debug messages>
- 4.11.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
- Optimizing cells in module \versa_ecp5_top.
- New ctrl vector for $pmux cell \uart_inst.uart_tx.379: { $flatten\uart_inst.\uart_tx.$auto$ghdl.cc:806:import_module$151 $flatten\uart_inst.\uart_tx.$auto$ghdl.cc:806:import_module$148 $auto$opt_reduce.cc:134:opt_pmux$505 }
- Optimizing cells in module \versa_ecp5_top.
- Performed a total of 1 changes.
- 4.11.12. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- Removed a total of 0 cells.
- 4.11.13. Executing OPT_DFF pass (perform DFF optimizations).
- 4.11.14. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- 4.11.15. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.11.16. Rerunning OPT passes. (Maybe there is more to do..)
- 4.11.17. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
- Running muxtree optimizer on module \versa_ecp5_top..
- Creating internal representation of mux trees.
- Evaluating internal representation of mux trees.
- Analyzing evaluation results.
- Removed 0 multiplexer ports.
- <suppressed ~43 debug messages>
- 4.11.18. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
- Optimizing cells in module \versa_ecp5_top.
- Performed a total of 0 changes.
- 4.11.19. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- Removed a total of 0 cells.
- 4.11.20. Executing OPT_DFF pass (perform DFF optimizations).
- 4.11.21. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- 4.11.22. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.11.23. Finished OPT passes. (There is nothing left to do.)
- 4.12. Executing FSM pass (extract and optimize FSM).
- 4.12.1. Executing FSM_DETECT pass (finding FSMs in design).
- Not marking versa_ecp5_top.uart_inst.rxfifo.state as FSM state register:
- Register has an initialization value.
- Not marking versa_ecp5_top.uart_inst.txfifo.state as FSM state register:
- Register has an initialization value.
- Not marking versa_ecp5_top.uart_inst.uart_rx.state as FSM state register:
- Register has an initialization value.
- Not marking versa_ecp5_top.uart_inst.uart_tx.state as FSM state register:
- Register has an initialization value.
- 4.12.2. Executing FSM_EXTRACT pass (extracting FSM from design).
- 4.12.3. Executing FSM_OPT pass (simple optimizations of FSMs).
- 4.12.4. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- 4.12.5. Executing FSM_OPT pass (simple optimizations of FSMs).
- 4.12.6. Executing FSM_RECODE pass (re-assigning FSM state encoding).
- 4.12.7. Executing FSM_INFO pass (dumping all available information on FSM cells).
- 4.12.8. Executing FSM_MAP pass (mapping FSMs to basic logic).
- 4.13. Executing OPT pass (performing simple optimizations).
- 4.13.1. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.13.2. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- Removed a total of 0 cells.
- 4.13.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
- Running muxtree optimizer on module \versa_ecp5_top..
- Creating internal representation of mux trees.
- Evaluating internal representation of mux trees.
- Analyzing evaluation results.
- Removed 0 multiplexer ports.
- <suppressed ~43 debug messages>
- 4.13.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
- Optimizing cells in module \versa_ecp5_top.
- Performed a total of 0 changes.
- 4.13.5. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- Removed a total of 0 cells.
- 4.13.6. Executing OPT_DFF pass (perform DFF optimizations).
- Adding EN signal on uart_inst.uart_tx.432 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_tx.$auto$ghdl.cc:806:import_module$159, Q = \txd_uart).
- Adding SRST signal on uart_inst.uart_tx.430 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_tx.$auto$ghdl.cc:806:import_module$158, Q = \uart_inst.txfifo.int_rden, rval = 1'0).
- Adding EN signal on uart_inst.uart_tx.429 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_tx.$auto$ghdl.cc:806:import_module$155, Q = \uart_inst.uart_tx.bitcount).
- Adding SRST signal on $auto$ff.cc:266:slice$508 ($dffe) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_tx.$auto$ghdl.cc:806:import_module$153, Q = \uart_inst.uart_tx.bitcount, rval = 3'000).
- Adding EN signal on uart_inst.uart_tx.427 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_tx.$auto$ghdl.cc:806:import_module$160, Q = \uart_inst.uart_tx.dsr).
- Adding EN signal on uart_inst.uart_tx.425 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_tx.$auto$ghdl.cc:806:import_module$143, Q = \uart_inst.uart_tx.state).
- Adding SRST signal on $auto$ff.cc:266:slice$515 ($dffe) from module versa_ecp5_top (D = \uart_inst.uart_tx.nextstate, Q = \uart_inst.uart_tx.state, rval = 2'00).
- Adding EN signal on uart_inst.uart_rx.341 ($dff) from module versa_ecp5_top (D = { \rxd_uart \uart_inst.uart_rx.dsr [7:1] }, Q = \uart_inst.uart_rx.dsr).
- Adding EN signal on uart_inst.uart_rx.339 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_rx.$auto$ghdl.cc:806:import_module$94, Q = \uart_inst.uart_rx.count).
- Adding SRST signal on $auto$ff.cc:266:slice$518 ($dffe) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_rx.$auto$ghdl.cc:806:import_module$93, Q = \uart_inst.uart_rx.count, rval = 4'0000).
- Adding EN signal on uart_inst.uart_rx.337 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_rx.$auto$ghdl.cc:806:import_module$122, Q = \uart_inst.uart_rx.bitcount).
- Adding SRST signal on $auto$ff.cc:266:slice$520 ($dffe) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_rx.$auto$ghdl.cc:806:import_module$120, Q = \uart_inst.uart_rx.bitcount, rval = 3'000).
- Adding EN signal on uart_inst.uart_rx.334 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_rx.$auto$ghdl.cc:806:import_module$91, Q = \uart_inst.uart_rx.rxtrigger).
- Adding EN signal on uart_inst.uart_rx.331 ($dff) from module versa_ecp5_top (D = \rxd_uart, Q = \uart_inst.uart_rx.rxd).
- Adding SRST signal on uart_inst.uart_rx.329 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_rx.$auto$ghdl.cc:806:import_module$110, Q = \uart_inst.uart_rx.state, rval = 2'00).
- Adding EN signal on $auto$ff.cc:266:slice$524 ($sdff) from module versa_ecp5_top (D = $flatten\uart_inst.\uart_rx.$auto$ghdl.cc:806:import_module$109, Q = \uart_inst.uart_rx.state).
- Adding SRST signal on uart_inst.txfifo.526 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\txfifo.$auto$ghdl.cc:806:import_module$202, Q = \uart_inst.txfifo.state, rval = 2'00).
- Adding EN signal on $auto$ff.cc:266:slice$532 ($sdff) from module versa_ecp5_top (D = $flatten\uart_inst.\txfifo.$auto$ghdl.cc:806:import_module$202, Q = \uart_inst.txfifo.state).
- Adding SRST signal on uart_inst.txfifo.525 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\txfifo.$auto$ghdl.cc:806:import_module$174, Q = \uart_inst.txfifo.optr, rval = 6'000000).
- Adding EN signal on $auto$ff.cc:266:slice$542 ($sdff) from module versa_ecp5_top (D = \uart_inst.txfifo.next_optr, Q = \uart_inst.txfifo.optr).
- Adding SRST signal on uart_inst.txfifo.524 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\txfifo.$auto$ghdl.cc:806:import_module$173, Q = \uart_inst.txfifo.iptr, rval = 6'000000).
- Adding EN signal on $auto$ff.cc:266:slice$544 ($sdff) from module versa_ecp5_top (D = \uart_inst.txfifo.next_iptr, Q = \uart_inst.txfifo.iptr).
- Adding SRST signal on uart_inst.rxfifo.526 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\rxfifo.$auto$ghdl.cc:806:import_module$202, Q = \uart_inst.rxfifo.state, rval = 2'00).
- Adding EN signal on $auto$ff.cc:266:slice$546 ($sdff) from module versa_ecp5_top (D = $flatten\uart_inst.\rxfifo.$auto$ghdl.cc:806:import_module$202, Q = \uart_inst.rxfifo.state).
- Adding SRST signal on uart_inst.rxfifo.525 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\rxfifo.$auto$ghdl.cc:806:import_module$174, Q = \uart_inst.rxfifo.optr, rval = 6'000000).
- Adding EN signal on $auto$ff.cc:266:slice$556 ($sdff) from module versa_ecp5_top (D = \uart_inst.rxfifo.next_optr, Q = \uart_inst.rxfifo.optr).
- Adding SRST signal on uart_inst.rxfifo.524 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.\rxfifo.$auto$ghdl.cc:806:import_module$173, Q = \uart_inst.rxfifo.iptr, rval = 6'000000).
- Adding EN signal on $auto$ff.cc:266:slice$558 ($sdff) from module versa_ecp5_top (D = \uart_inst.rxfifo.next_iptr, Q = \uart_inst.rxfifo.iptr).
- Adding SRST signal on uart_inst.211 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.$auto$ghdl.cc:806:import_module$59, Q = \uart_inst.uart_tx.txclken, rval = 1'0).
- Adding SRST signal on uart_inst.210 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.$auto$ghdl.cc:806:import_module$63, Q = \uart_inst.uart_rx.clk16en, rval = 1'0).
- Adding SRST signal on uart_inst.209 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.$auto$ghdl.cc:806:import_module$60, Q = \uart_inst.counter, rval = 16'0000000000000000).
- Adding EN signal on uart_inst.208 ($dff) from module versa_ecp5_top (D = $flatten\uart_inst.$auto$ghdl.cc:806:import_module$57, Q = \uart_inst.count16).
- Adding SRST signal on \98 ($dff) from module versa_ecp5_top (D = { $auto$ghdl.cc:806:import_module$19 $auto$ghdl.cc:806:import_module$20 }, Q = { \uart_inst.txfifo.wren \uart_inst.ctrl.select_uart_rxr }, rval = 2'00).
- Adding EN signal on \98 ($dff) from module versa_ecp5_top (D = $auto$ghdl.cc:806:import_module$17, Q = \uart_inst.txfifo.ram.b_write).
- Adding SRST signal on $auto$ff.cc:266:slice$576 ($dffe) from module versa_ecp5_top (D = { \uart_data [7] \uart_data [5] }, Q = { \uart_inst.txfifo.ram.b_write [7] \uart_inst.txfifo.ram.b_write [5] }, rval = 2'00).
- Adding EN signal on \97 ($dff) from module versa_ecp5_top (D = $auto$ghdl.cc:806:import_module$6, Q = \toggle_led).
- Adding SRST signal on \95 ($dff) from module versa_ecp5_top (D = $auto$ghdl.cc:806:import_module$4 [23:0], Q = \counter, rval = 24'000000000000000000000000).
- Adding EN signal on \102 ($dff) from module versa_ecp5_top (D = \uart_inst.rxfifo.odata, Q = \uart_data).
- Adding SRST signal on \100 ($dff) from module versa_ecp5_top (D = $auto$ghdl.cc:806:import_module$20, Q = \uart_idle, rval = 1'0).
- 4.13.7. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- Removed 40 unused cells and 40 unused wires.
- <suppressed ~41 debug messages>
- 4.13.8. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- <suppressed ~3 debug messages>
- 4.13.9. Rerunning OPT passes. (Maybe there is more to do..)
- 4.13.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
- Running muxtree optimizer on module \versa_ecp5_top..
- Creating internal representation of mux trees.
- Evaluating internal representation of mux trees.
- Analyzing evaluation results.
- Removed 0 multiplexer ports.
- <suppressed ~28 debug messages>
- 4.13.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
- Optimizing cells in module \versa_ecp5_top.
- New ctrl vector for $pmux cell \uart_inst.rxfifo.505: { $flatten\uart_inst.\rxfifo.$auto$ghdl.cc:806:import_module$184 $flatten\uart_inst.\rxfifo.$auto$ghdl.cc:806:import_module$183 $flatten\uart_inst.\rxfifo.$auto$ghdl.cc:806:import_module$188 }
- New ctrl vector for $pmux cell \uart_inst.txfifo.505: { $flatten\uart_inst.\txfifo.$auto$ghdl.cc:806:import_module$184 $flatten\uart_inst.\txfifo.$auto$ghdl.cc:806:import_module$183 $flatten\uart_inst.\txfifo.$auto$ghdl.cc:806:import_module$188 }
- Optimizing cells in module \versa_ecp5_top.
- Performed a total of 2 changes.
- 4.13.12. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- <suppressed ~3 debug messages>
- Removed a total of 1 cells.
- 4.13.13. Executing OPT_DFF pass (perform DFF optimizations).
- 4.13.14. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- Removed 0 unused cells and 1 unused wires.
- <suppressed ~1 debug messages>
- 4.13.15. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.13.16. Rerunning OPT passes. (Maybe there is more to do..)
- 4.13.17. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
- Running muxtree optimizer on module \versa_ecp5_top..
- Creating internal representation of mux trees.
- Evaluating internal representation of mux trees.
- Analyzing evaluation results.
- Removed 0 multiplexer ports.
- <suppressed ~28 debug messages>
- 4.13.18. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
- Optimizing cells in module \versa_ecp5_top.
- Performed a total of 0 changes.
- 4.13.19. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- Removed a total of 0 cells.
- 4.13.20. Executing OPT_DFF pass (perform DFF optimizations).
- 4.13.21. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- 4.13.22. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.13.23. Finished OPT passes. (There is nothing left to do.)
- 4.14. Executing WREDUCE pass (reducing word size of cells).
- Removed top 8 bits (of 32) from port A of cell versa_ecp5_top.\19 ($add).
- Removed top 31 bits (of 32) from port B of cell versa_ecp5_top.\19 ($add).
- Removed top 8 bits (of 32) from port Y of cell versa_ecp5_top.\19 ($add).
- Removed top 1 bits (of 8) from port B of cell versa_ecp5_top.\43 ($gt).
- Removed cell versa_ecp5_top.\49 ($mux).
- Removed top 1 bits (of 3) from port B of cell versa_ecp5_top.$auto$opt_dff.cc:195:make_patterns_logic$537 ($ne).
- Removed top 1 bits (of 3) from port B of cell versa_ecp5_top.$auto$opt_dff.cc:195:make_patterns_logic$535 ($ne).
- Removed top 5 bits (of 6) from port B of cell versa_ecp5_top.uart_inst.txfifo.455 ($add).
- Removed top 5 bits (of 6) from port B of cell versa_ecp5_top.uart_inst.txfifo.457 ($add).
- Removed top 1 bits (of 2) from port B of cell versa_ecp5_top.uart_inst.txfifo.468 ($eq).
- Removed top 1 bits (of 2) from mux cell versa_ecp5_top.uart_inst.txfifo.478 ($mux).
- Removed top 1 bits (of 2) from mux cell versa_ecp5_top.uart_inst.txfifo.494 ($mux).
- Removed top 5 bits (of 6) from port B of cell versa_ecp5_top.uart_inst.rxfifo.455 ($add).
- Removed top 5 bits (of 6) from port B of cell versa_ecp5_top.uart_inst.rxfifo.457 ($add).
- Removed top 1 bits (of 2) from port B of cell versa_ecp5_top.uart_inst.rxfifo.468 ($eq).
- Removed top 1 bits (of 2) from mux cell versa_ecp5_top.uart_inst.rxfifo.478 ($mux).
- Removed top 1 bits (of 2) from mux cell versa_ecp5_top.uart_inst.rxfifo.494 ($mux).
- Removed top 1 bits (of 2) from mux cell versa_ecp5_top.uart_inst.uart_tx.359 ($mux).
- Removed top 1 bits (of 2) from port B of cell versa_ecp5_top.uart_inst.uart_tx.368 ($eq).
- Removed top 1 bits (of 2) from mux cell versa_ecp5_top.uart_inst.uart_tx.373 ($mux).
- Removed top 2 bits (of 3) from port B of cell versa_ecp5_top.uart_inst.uart_tx.384 ($add).
- Removed top 3 bits (of 4) from port B of cell versa_ecp5_top.uart_inst.uart_rx.236 ($add).
- Removed top 1 bits (of 4) from port B of cell versa_ecp5_top.uart_inst.uart_rx.249 ($eq).
- Removed top 1 bits (of 2) from mux cell versa_ecp5_top.uart_inst.uart_rx.256 ($mux).
- Removed top 1 bits (of 2) from port B of cell versa_ecp5_top.uart_inst.uart_rx.265 ($eq).
- Removed top 1 bits (of 3) from port B of cell versa_ecp5_top.$auto$opt_dff.cc:195:make_patterns_logic$549 ($ne).
- Removed top 2 bits (of 3) from port B of cell versa_ecp5_top.uart_inst.uart_rx.308 ($add).
- Removed top 1 bits (of 3) from port B of cell versa_ecp5_top.$auto$opt_dff.cc:195:make_patterns_logic$551 ($ne).
- Removed top 15 bits (of 16) from port B of cell versa_ecp5_top.uart_inst.145 ($add).
- Removed top 3 bits (of 4) from port B of cell versa_ecp5_top.uart_inst.138 ($add).
- Removed top 12 bits (of 16) from port B of cell versa_ecp5_top.uart_inst.136 ($eq).
- Removed top 1 bits (of 8) from wire versa_ecp5_top.$auto$ghdl.cc:806:import_module$17.
- Removed top 8 bits (of 32) from wire versa_ecp5_top.$auto$ghdl.cc:806:import_module$4.
- Removed top 1 bits (of 2) from wire versa_ecp5_top.$flatten\uart_inst.\rxfifo.$auto$ghdl.cc:806:import_module$187.
- Removed top 1 bits (of 2) from wire versa_ecp5_top.$flatten\uart_inst.\rxfifo.$auto$ghdl.cc:806:import_module$197.
- Removed top 1 bits (of 2) from wire versa_ecp5_top.$flatten\uart_inst.\txfifo.$auto$ghdl.cc:806:import_module$187.
- Removed top 1 bits (of 2) from wire versa_ecp5_top.$flatten\uart_inst.\txfifo.$auto$ghdl.cc:806:import_module$197.
- Removed top 1 bits (of 2) from wire versa_ecp5_top.$flatten\uart_inst.\uart_rx.$auto$ghdl.cc:806:import_module$99.
- Removed top 1 bits (of 2) from wire versa_ecp5_top.$flatten\uart_inst.\uart_tx.$auto$ghdl.cc:806:import_module$144.
- Removed top 1 bits (of 2) from wire versa_ecp5_top.$flatten\uart_inst.\uart_tx.$auto$ghdl.cc:806:import_module$150.
- 4.15. Executing PEEPOPT pass (run peephole optimizers).
- 4.16. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- Removed 0 unused cells and 10 unused wires.
- <suppressed ~1 debug messages>
- 4.17. Executing SHARE pass (SAT-based resource sharing).
- 4.18. Executing TECHMAP pass (map to technology primitives).
- 4.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.
- 4.18.2. Continuing TECHMAP pass.
- No more expansions possible.
- <suppressed ~62 debug messages>
- 4.19. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.20. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- 4.21. Executing TECHMAP pass (map to technology primitives).
- 4.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.
- 4.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.
- 4.21.3. Continuing TECHMAP pass.
- No more expansions possible.
- <suppressed ~5 debug messages>
- 4.22. Executing ALUMACC pass (create $alu and $macc cells).
- Extracting $alu and $macc cells in module versa_ecp5_top:
- creating $macc model for \19 ($add).
- creating $macc model for uart_inst.138 ($add).
- creating $macc model for uart_inst.145 ($add).
- creating $macc model for uart_inst.rxfifo.455 ($add).
- creating $macc model for uart_inst.rxfifo.457 ($add).
- creating $macc model for uart_inst.txfifo.455 ($add).
- creating $macc model for uart_inst.txfifo.457 ($add).
- creating $macc model for uart_inst.uart_rx.236 ($add).
- creating $macc model for uart_inst.uart_rx.308 ($add).
- creating $macc model for uart_inst.uart_tx.384 ($add).
- creating $alu model for $macc uart_inst.uart_tx.384.
- creating $alu model for $macc uart_inst.uart_rx.308.
- creating $alu model for $macc uart_inst.uart_rx.236.
- creating $alu model for $macc uart_inst.txfifo.457.
- creating $alu model for $macc uart_inst.txfifo.455.
- creating $alu model for $macc uart_inst.rxfifo.457.
- creating $alu model for $macc uart_inst.rxfifo.455.
- creating $alu model for $macc uart_inst.145.
- creating $alu model for $macc uart_inst.138.
- creating $alu model for $macc \19.
- creating $alu model for \43 ($gt): new $alu
- creating $alu model for \45 ($lt): new $alu
- creating $alu cell for \45: $auto$alumacc.cc:485:replace_alu$603
- creating $alu cell for \43: $auto$alumacc.cc:485:replace_alu$608
- creating $alu cell for \19: $auto$alumacc.cc:485:replace_alu$613
- creating $alu cell for uart_inst.138: $auto$alumacc.cc:485:replace_alu$616
- creating $alu cell for uart_inst.145: $auto$alumacc.cc:485:replace_alu$619
- creating $alu cell for uart_inst.rxfifo.455: $auto$alumacc.cc:485:replace_alu$622
- creating $alu cell for uart_inst.rxfifo.457: $auto$alumacc.cc:485:replace_alu$625
- creating $alu cell for uart_inst.txfifo.455: $auto$alumacc.cc:485:replace_alu$628
- creating $alu cell for uart_inst.txfifo.457: $auto$alumacc.cc:485:replace_alu$631
- creating $alu cell for uart_inst.uart_rx.236: $auto$alumacc.cc:485:replace_alu$634
- creating $alu cell for uart_inst.uart_rx.308: $auto$alumacc.cc:485:replace_alu$637
- creating $alu cell for uart_inst.uart_tx.384: $auto$alumacc.cc:485:replace_alu$640
- created 12 $alu and 0 $macc cells.
- 4.23. Executing OPT pass (performing simple optimizations).
- 4.23.1. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.23.2. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- Removed a total of 0 cells.
- 4.23.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
- Running muxtree optimizer on module \versa_ecp5_top..
- Creating internal representation of mux trees.
- Evaluating internal representation of mux trees.
- Analyzing evaluation results.
- Removed 0 multiplexer ports.
- <suppressed ~27 debug messages>
- 4.23.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
- Optimizing cells in module \versa_ecp5_top.
- Performed a total of 0 changes.
- 4.23.5. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- <suppressed ~6 debug messages>
- Removed a total of 2 cells.
- 4.23.6. Executing OPT_DFF pass (perform DFF optimizations).
- 4.23.7. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- Removed 0 unused cells and 4 unused wires.
- <suppressed ~1 debug messages>
- 4.23.8. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.23.9. Rerunning OPT passes. (Maybe there is more to do..)
- 4.23.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
- Running muxtree optimizer on module \versa_ecp5_top..
- Creating internal representation of mux trees.
- Evaluating internal representation of mux trees.
- Analyzing evaluation results.
- Removed 0 multiplexer ports.
- <suppressed ~27 debug messages>
- 4.23.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
- Optimizing cells in module \versa_ecp5_top.
- Performed a total of 0 changes.
- 4.23.12. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- Removed a total of 0 cells.
- 4.23.13. Executing OPT_DFF pass (perform DFF optimizations).
- 4.23.14. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- 4.23.15. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.23.16. Finished OPT passes. (There is nothing left to do.)
- 4.24. Executing MEMORY pass.
- 4.24.1. Executing OPT_MEM pass (optimize memories).
- Performed a total of 0 transformations.
- 4.24.2. Executing OPT_MEM_PRIORITY pass (removing unnecessary memory write priority relations).
- Performed a total of 0 transformations.
- 4.24.3. Executing OPT_MEM_FEEDBACK pass (finding memory read-to-write feedback paths).
- Analyzing versa_ecp5_top.uart_inst.rxfifo.ram.mem write port 0.
- Analyzing versa_ecp5_top.uart_inst.txfifo.ram.mem write port 0.
- 4.24.4. Executing MEMORY_BMUX2ROM pass (converting muxes to ROMs).
- 4.24.5. Executing MEMORY_DFF pass (merging $dff cells to $memrd).
- Checking read port `\uart_inst.rxfifo.ram.mem'[0] in module `\versa_ecp5_top': merging output FF to cell.
- Write port 0: non-transparent.
- Checking read port `\uart_inst.txfifo.ram.mem'[0] in module `\versa_ecp5_top': no output FF found.
- Checking read port address `\uart_inst.txfifo.ram.mem'[0] in module `\versa_ecp5_top': merged address FF to cell.
- 4.24.6. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- Removed 2 unused cells and 15 unused wires.
- <suppressed ~10 debug messages>
- 4.24.7. Executing MEMORY_SHARE pass (consolidating $memrd/$memwr cells).
- 4.24.8. Executing OPT_MEM_WIDEN pass (optimize memories where all ports are wide).
- Performed a total of 0 transformations.
- 4.24.9. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- 4.24.10. Executing MEMORY_COLLECT pass (generating $mem cells).
- 4.25. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- 4.26. Executing MEMORY_LIBMAP pass (mapping memories to cells).
- mapping memory versa_ecp5_top.uart_inst.rxfifo.ram.mem via $__TRELLIS_DPR16X4_
- Extracted data FF from read port 0 of versa_ecp5_top.uart_inst.rxfifo.ram.mem: $\uart_inst.rxfifo.ram.mem$rdreg[0]
- mapping memory versa_ecp5_top.uart_inst.txfifo.ram.mem via $__TRELLIS_DPR16X4_
- Extracted addr FF from read port 0 of versa_ecp5_top.uart_inst.txfifo.ram.mem: $\uart_inst.txfifo.ram.mem$rdreg[0]
- <suppressed ~892 debug messages>
- 4.27. Executing TECHMAP pass (map to technology primitives).
- 4.27.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.
- 4.27.2. 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.
- 4.27.3. Continuing TECHMAP pass.
- Using template $paramod$04778961cc1285a5efea28f98f28381eb2862208\$__TRELLIS_DPR16X4_ for cells of type $__TRELLIS_DPR16X4_.
- No more expansions possible.
- <suppressed ~34 debug messages>
- 4.28. Executing OPT pass (performing simple optimizations).
- 4.28.1. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- <suppressed ~49 debug messages>
- 4.28.2. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- Removed a total of 0 cells.
- 4.28.3. Executing OPT_DFF pass (perform DFF optimizations).
- Adding SRST signal on $auto$ff.cc:266:slice$510 ($dffe) from module versa_ecp5_top (D = \uart_inst.uart_tx.data [7], Q = \uart_inst.uart_tx.dsr [7], rval = 1'1).
- 4.28.4. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- Removed 0 unused cells and 143 unused wires.
- <suppressed ~1 debug messages>
- 4.28.5. Rerunning OPT passes. (Removed registers in this run.)
- 4.28.6. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.28.7. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- Removed a total of 0 cells.
- 4.28.8. Executing OPT_DFF pass (perform DFF optimizations).
- 4.28.9. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- 4.28.10. Finished fast OPT passes.
- 4.29. Executing MEMORY_MAP pass (converting memories to logic and flip-flops).
- 4.30. Executing OPT pass (performing simple optimizations).
- 4.30.1. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.30.2. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- Removed a total of 0 cells.
- 4.30.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
- Running muxtree optimizer on module \versa_ecp5_top..
- Creating internal representation of mux trees.
- Evaluating internal representation of mux trees.
- Analyzing evaluation results.
- Removed 0 multiplexer ports.
- <suppressed ~7 debug messages>
- 4.30.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
- Optimizing cells in module \versa_ecp5_top.
- Consolidated identical input bits for $mux cell \uart_inst.rxfifo.488:
- Old ports: A=2'00, B=2'10, Y=$flatten\uart_inst.\rxfifo.$auto$ghdl.cc:806:import_module$194
- New ports: A=1'0, B=1'1, Y=$flatten\uart_inst.\rxfifo.$auto$ghdl.cc:806:import_module$194 [1]
- New connections: $flatten\uart_inst.\rxfifo.$auto$ghdl.cc:806:import_module$194 [0] = 1'0
- Consolidated identical input bits for $mux cell \uart_inst.txfifo.488:
- Old ports: A=2'00, B=2'10, Y=$flatten\uart_inst.\txfifo.$auto$ghdl.cc:806:import_module$194
- New ports: A=1'0, B=1'1, Y=$flatten\uart_inst.\txfifo.$auto$ghdl.cc:806:import_module$194 [1]
- New connections: $flatten\uart_inst.\txfifo.$auto$ghdl.cc:806:import_module$194 [0] = 1'0
- Optimizing cells in module \versa_ecp5_top.
- Performed a total of 2 changes.
- 4.30.5. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- Removed a total of 0 cells.
- 4.30.6. Executing OPT_DFF pass (perform DFF optimizations).
- 4.30.7. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- 4.30.8. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.30.9. Rerunning OPT passes. (Maybe there is more to do..)
- 4.30.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
- Running muxtree optimizer on module \versa_ecp5_top..
- Creating internal representation of mux trees.
- Evaluating internal representation of mux trees.
- Analyzing evaluation results.
- Removed 0 multiplexer ports.
- <suppressed ~7 debug messages>
- 4.30.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
- Optimizing cells in module \versa_ecp5_top.
- Performed a total of 0 changes.
- 4.30.12. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- Removed a total of 0 cells.
- 4.30.13. Executing OPT_DFF pass (perform DFF optimizations).
- 4.30.14. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- 4.30.15. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- 4.30.16. Finished OPT passes. (There is nothing left to do.)
- 4.31. Executing TECHMAP pass (map to technology primitives).
- 4.31.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.
- 4.31.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.
- 4.31.3. Continuing TECHMAP pass.
- Using template $paramod$a1bc51c02ce12ac21eb18988e83292af48ed7d72\_80_ecp5_alu for cells of type $alu.
- Using extmapper simplemap for cells of type $reduce_or.
- Using extmapper simplemap for cells of type $not.
- Using extmapper simplemap for cells of type $or.
- Using template $paramod$32a7b7b86c07519b7537abc18e96f0331f97914d\_90_alu for cells of type $alu.
- Using extmapper simplemap for cells of type $eq.
- Using template $paramod$79aa992f2eb7f354d4aaf651790713cf239111fa\_80_ecp5_alu for cells of type $alu.
- Using template $paramod$dfca81329cbbac01700318224209a5f2318c7128\_80_ecp5_alu for cells of type $alu.
- Using extmapper simplemap for cells of type $and.
- Using extmapper simplemap for cells of type $ne.
- Using extmapper simplemap for cells of type $sdff.
- Using extmapper simplemap for cells of type $dffe.
- Using extmapper simplemap for cells of type $dff.
- Using extmapper simplemap for cells of type $reduce_bool.
- Using template $paramod$c5c783b17ab1d780abfad8cfe6563a0a7b47a3b0\_90_demux for cells of type $demux.
- Using extmapper simplemap for cells of type $reduce_and.
- Using extmapper simplemap for cells of type $sdffce.
- Using extmapper simplemap for cells of type $bmux.
- Using template $paramod$32efbfac1c4dc57230cf86180788fdfd12e3b511\_80_ecp5_alu for cells of type $alu.
- Using extmapper simplemap for cells of type $logic_not.
- Using extmapper simplemap for cells of type $mux.
- Using template $paramod$521ce43182eecb9f60c72393a788160d2c356bf5\_90_pmux for cells of type $pmux.
- Using extmapper simplemap for cells of type $sdffe.
- Using template $paramod$97565c3687be688407d1272a293bd9d0ae6852dc\_90_pmux for cells of type $pmux.
- Using template $paramod$c5c783b17ab1d780abfad8cfe6563a0a7b47a3b0\_90_pmux for cells of type $pmux.
- Using template $paramod$3ef7d3dd227da7627a99c5e5a6a4deb817573e39\_90_alu for cells of type $alu.
- Using template $paramod$2af30114e9bd4ccb04dad757b3f0a8f6bf0615b0\_80_ecp5_alu for cells of type $alu.
- Using extmapper simplemap for cells of type $logic_and.
- Using extmapper simplemap for cells of type $logic_or.
- Using extmapper simplemap for cells of type $pos.
- Using template $paramod$5d1d2614b24accd0f9d06c4779fd9ef771faf494\_90_demux for cells of type $demux.
- Using extmapper simplemap for cells of type $xor.
- Using template $paramod\_90_lcu\WIDTH=32'00000000000000000000000000000100 for cells of type $lcu.
- Using template $paramod\_90_lcu\WIDTH=32'00000000000000000000000000000011 for cells of type $lcu.
- No more expansions possible.
- <suppressed ~1001 debug messages>
- 4.32. Executing OPT pass (performing simple optimizations).
- 4.32.1. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- <suppressed ~1048 debug messages>
- 4.32.2. Executing OPT_MERGE pass (detect identical cells).
- Finding identical cells in module `\versa_ecp5_top'.
- <suppressed ~177 debug messages>
- Removed a total of 59 cells.
- 4.32.3. Executing OPT_DFF pass (perform DFF optimizations).
- 4.32.4. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- Removed 97 unused cells and 655 unused wires.
- <suppressed ~98 debug messages>
- 4.32.5. Finished fast OPT passes.
- 4.33. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- 4.34. Executing DFFLEGALIZE pass (convert FFs to types supported by the target).
- 4.35. Executing TECHMAP pass (map to technology primitives).
- 4.35.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.
- 4.35.2. Continuing TECHMAP pass.
- Using template \$_SDFF_PP0_ for cells of type $_SDFF_PP0_.
- Using template $paramod\$_DFFE_PP_\_TECHMAP_WIREINIT_Q_=1'x for cells of type $_DFFE_PP_.
- Using template $paramod\$_DFF_P_\_TECHMAP_WIREINIT_Q_=1'0 for cells of type $_DFF_P_.
- Using template \$_SDFFE_PP0P_ for cells of type $_SDFFE_PP0P_.
- Using template \$_SDFF_NP0_ for cells of type $_SDFF_NP0_.
- Using template $paramod\$_DFFE_NP_\_TECHMAP_WIREINIT_Q_=1'x for cells of type $_DFFE_NP_.
- Using template $paramod\$_DFFE_PN_\_TECHMAP_WIREINIT_Q_=1'0 for cells of type $_DFFE_PN_.
- Using template $paramod\$_DFFE_NP_\_TECHMAP_WIREINIT_Q_=1'0 for cells of type $_DFFE_NP_.
- Using template $paramod\$_DFF_P_\_TECHMAP_WIREINIT_Q_=1'x for cells of type $_DFF_P_.
- Using template \$_SDFFE_NP0P_ for cells of type $_SDFFE_NP0P_.
- Using template $paramod\$_DFFE_PP_\_TECHMAP_WIREINIT_Q_=1'0 for cells of type $_DFFE_PP_.
- No more expansions possible.
- <suppressed ~298 debug messages>
- 4.36. Executing OPT_EXPR pass (perform const folding).
- Optimizing module versa_ecp5_top.
- <suppressed ~1 debug messages>
- 4.37. Executing SIMPLEMAP pass (map simple cells to gate primitives).
- 4.38. Executing ECP5_GSR pass (implement FF init values).
- Handling GSR in versa_ecp5_top.
- 4.39. Executing ATTRMVCP pass (move or copy attributes).
- 4.40. Executing OPT_CLEAN pass (remove unused cells and wires).
- Finding unused cells or wires in module \versa_ecp5_top..
- Removed 0 unused cells and 772 unused wires.
- <suppressed ~1 debug messages>
- 4.41. Executing TECHMAP pass (map to technology primitives).
- 4.41.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.
- 4.41.2. Continuing TECHMAP pass.
- No more expansions possible.
- <suppressed ~4 debug messages>
- 4.42. Executing ABC pass (technology mapping using ABC).
- 4.42.1. Extracting gate netlist of module `\versa_ecp5_top' to `<abc-temp-dir>/input.blif'..
- Extracted 387 gates and 591 wires to a netlist network with 202 inputs and 109 outputs.
- 4.42.1.1. Executing ABC.
- Running ABC command: "<yosys-exe-dir>/yosys-abc" -s -f <abc-temp-dir>/abc.script 2>&1
- ABC: ABC command line: "source <abc-temp-dir>/abc.script".
- ABC:
- ABC: + read_blif <abc-temp-dir>/input.blif
- ABC: + read_lut <abc-temp-dir>/lutdefs.txt
- ABC: + strash
- ABC: + &get -n
- ABC: + &fraig -x
- ABC: + &put
- ABC: + scorr
- ABC: Warning: The network is combinational (run "fraig" or "fraig_sweep").
- ABC: + dc2
- ABC: + dretime
- ABC: + strash
- ABC: + dch -f
- ABC: + if
- ABC: + mfs2
- ABC: + dress <abc-temp-dir>/input.blif
- ABC: Total number of equiv classes = 87.
- ABC: Participating nodes from both networks = 262.
- ABC: Participating nodes from the first network = 120. ( 70.59 % of nodes)
- ABC: Participating nodes from the second network = 142. ( 83.53 % of nodes)
- ABC: Node pairs (any polarity) = 120. ( 70.59 % of names can be moved)
- ABC: Node pairs (same polarity) = 112. ( 65.88 % of names can be moved)
- ABC: Total runtime = 0.03 sec
- ABC: + write_blif <abc-temp-dir>/output.blif
- 4.42.1.2. Re-integrating ABC results.
- ABC RESULTS: $lut cells: 169
- ABC RESULTS: internal signals: 280
- ABC RESULTS: input signals: 202
- ABC RESULTS: output signals: 109
- Removing temp directory.
- Removed 0 unused cells and 424 unused wires.
- 4.43. Executing TECHMAP pass (map to technology primitives).
- 4.43.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.
- 4.43.2. Continuing TECHMAP pass.
- Using template $paramod$571404c0889eaf57f492cb5e37f8acb5df5852f9\$lut for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000010\LUT=4'0100 for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'00010000 for cells of type $lut.
- Using template $paramod$8b24407096beec47292ddeb1567a058197a320b9\$lut for cells of type $lut.
- Using template $paramod$6e238df02989b317f10820a22773676e71120644\$lut for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000010\LUT=4'0110 for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000010\LUT=4'1000 for cells of type $lut.
- Using template $paramod$2d07c1a6c53c7b878509360922c4fa5ebedc3011\$lut for cells of type $lut.
- Using template $paramod$ee4b98bad07bc0ced6d708127af2144fc9ba3e00\$lut for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'00001011 for cells of type $lut.
- Using template $paramod$43779580bfffd5d5a9f321249a174febf1dac288\$lut for cells of type $lut.
- Using template $paramod$df196ed0a1da5c4a58c5e08a1dac304fd3fccaab\$lut for cells of type $lut.
- Using template $paramod$272652f6c6fbe9a75eff76e45cc7e2788835518b\$lut for cells of type $lut.
- Using template $paramod$658b9ed803f0d3d335616d3858b53e0a2522f1e8\$lut for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'10000000 for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000001\LUT=2'01 for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000010\LUT=4'0111 for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000010\LUT=4'1011 for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'01010011 for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'01111000 for cells of type $lut.
- Using template $paramod$c9c145a3c6d085b43407e8d146c4cb593e0f20bb\$lut for cells of type $lut.
- Using template $paramod$415b9dd3a15783ae56c103f189fd8e182f997441\$lut for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'01111111 for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'10010000 for cells of type $lut.
- Using template $paramod$fedcddf7a4357754b8c2c1b3c873f3560b924a39\$lut for cells of type $lut.
- Using template $paramod$2ea69c779d6c1b79ac5a87b0d1523c67d5628dba\$lut for cells of type $lut.
- Using template $paramod$c1a19a87ccbbb03d43a72335db63f692ddf82cc1\$lut for cells of type $lut.
- Using template $paramod$e053a22d78e6bd5ea33183ea69976f0db741be0e\$lut for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'01000000 for cells of type $lut.
- Using template $paramod$3d4f386a402395482bb3a56159e7ad913d874bd8\$lut for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'00110101 for cells of type $lut.
- Using template $paramod$c89a9a9957c39e979dc74d6b6568a6e2c8127b19\$lut for cells of type $lut.
- Using template $paramod$70e260b11d61c2beb07d1dff789df1caf45cc3d9\$lut for cells of type $lut.
- Using template $paramod$ba05b8a1a425003df083aea0e69541f5cbdc68f2\$lut for cells of type $lut.
- Using template $paramod$5685833deb7a1113d516d214d6ae4bd4024ab19f\$lut for cells of type $lut.
- Using template $paramod$251994398653c4cf8de320f1e306e535d5d2d624\$lut for cells of type $lut.
- Using template $paramod$71cb81cd7ec213b39129c5f3867d1aa22dffde1b\$lut for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'11010100 for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'11100011 for cells of type $lut.
- Using template $paramod$06b5f7e5a17024622a77ecd9b5b6f113e0b34c96\$lut for cells of type $lut.
- Using template $paramod$8505fb0f515c3c5732d5f3e31f6468a2a13b0230\$lut for cells of type $lut.
- Using template $paramod$973818279bc95792902f3c09371fd2407d04a2a5\$lut for cells of type $lut.
- Using template $paramod$1a73a09a6e092620145558f2f06f2243b658a28f\$lut for cells of type $lut.
- Using template $paramod$0b3372659570d45902474f8e8fd36c71f42c226d\$lut for cells of type $lut.
- Using template $paramod$a21a3d8f63cd41ec182698f6bdd24857b57e32ff\$lut for cells of type $lut.
- Using template $paramod$38f9bf4dd2329347b8471f0a98443dd323386889\$lut for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'00011111 for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000011\LUT=8'10110000 for cells of type $lut.
- Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000010\LUT=4'1110 for cells of type $lut.
- No more expansions possible.
- <suppressed ~871 debug messages>
- 4.44. Executing OPT_LUT_INS pass (discard unused LUT inputs).
- Optimizing LUTs in versa_ecp5_top.
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3451.genblk1.genblk1.genblk1.genblk1.genblk1.lut1 (4 -> 3)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3373.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 0)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3380.genblk1.genblk1.genblk1.genblk1.genblk1.lut1 (4 -> 1)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3385.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 0)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3391.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 0)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3397.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 0)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3398.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 0)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3449.genblk1.genblk1.genblk1.genblk1.genblk1.lut1 (4 -> 3)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3445.genblk1.genblk1.genblk1.genblk1.genblk1.lut1 (4 -> 3)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3443.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 1)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3445.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 1)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3447.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 1)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3443.genblk1.genblk1.genblk1.genblk1.genblk1.lut1 (4 -> 3)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3449.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 1)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3451.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 1)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3453.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 1)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3455.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 1)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3457.genblk1.genblk1.genblk1.genblk1.genblk1.lut0 (4 -> 1)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3455.genblk1.genblk1.genblk1.genblk1.genblk1.lut1 (4 -> 3)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3453.genblk1.genblk1.genblk1.genblk1.genblk1.lut1 (4 -> 3)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3447.genblk1.genblk1.genblk1.genblk1.genblk1.lut1 (4 -> 3)
- Optimizing lut $abc$3341$auto$blifparse.cc:525:parse_blif$3457.genblk1.genblk1.genblk1.genblk1.genblk1.lut1 (4 -> 3)
- Removed 0 unused cells and 395 unused wires.
- 4.45. Executing AUTONAME pass.
- Renamed 3477 objects in module versa_ecp5_top (31 iterations).
- <suppressed ~567 debug messages>
- 4.46. Executing HIERARCHY pass (managing design hierarchy).
- 4.46.1. Analyzing design hierarchy..
- Top module: \versa_ecp5_top
- 4.46.2. Analyzing design hierarchy..
- Top module: \versa_ecp5_top
- Removed 0 unused modules.
- 4.47. Printing statistics.
- === versa_ecp5_top ===
- Number of wires: 335
- Number of wire bits: 1082
- Number of public wires: 335
- Number of public wire bits: 1082
- Number of memories: 0
- Number of memory bits: 0
- Number of processes: 0
- Number of cells: 406
- CCU2C 40
- EHXPLLL 1
- LUT4 180
- PFUMX 18
- TRELLIS_DPR16X4 16
- TRELLIS_FF 150
- VLO 1
- 4.48. Executing CHECK pass (checking for obvious problems).
- Checking module versa_ecp5_top...
- Found and reported 0 problems.
- 4.49. Executing JSON backend.
- Warnings: 1 unique messages, 2 total
- End of script. Logfile hash: 03056c06bc, CPU: user 0.70s system 0.03s, MEM: 45.56 MB peak
- Yosys 0.28+1 (git sha1 a9c792dce, clang 14.0.0-1ubuntu1 -fPIC -Os)
- Time spent: 27% 16x read_verilog (0 sec), 18% 1x abc (0 sec), ...
- nextpnr-ecp5 --json versa_ecp5_top.json --lpf versa_ecp5.lpf \
- --textcfg versa_ecp5_top.config --um5g-45k --freq 100 --lpf-allow-unconstrained --package CABGA381
- Info: constraining clock net 'clk_in' to 100.00 MHz
- Warning: IO 'twi_sda' is unconstrained in LPF and will be automatically placed
- Warning: IO 'twi_scl' is unconstrained in LPF and will be automatically placed
- Info: Logic utilisation before packing:
- Info: Total LUT4s: 356/43848 0%
- Info: logic LUTs: 180/43848 0%
- Info: carry LUTs: 80/43848 0%
- Info: RAM LUTs: 64/ 5481 1%
- Info: RAMW LUTs: 32/10962 0%
- Info: Total DFFs: 150/43848 0%
- Info: Packing IOs..
- Info: $twi_sda$iobuf_i: twi_sda$const$VCC$506.Y
- Info: $twi_scl$iobuf_i: twi_scl$const$VCC$505.Y
- Info: pin 'txd_uart$tr_io' constrained to Bel 'X36/Y0/PIOB'.
- Info: pin 'segdp$tr_io' constrained to Bel 'X6/Y71/PIOA'.
- Info: pin 'seg[13]$tr_io' constrained to Bel 'X90/Y44/PIOD'.
- Info: pin 'seg[12]$tr_io' constrained to Bel 'X90/Y44/PIOC'.
- Info: pin 'seg[11]$tr_io' constrained to Bel 'X90/Y44/PIOB'.
- Info: pin 'seg[10]$tr_io' constrained to Bel 'X90/Y44/PIOA'.
- Info: pin 'seg[9]$tr_io' constrained to Bel 'X90/Y41/PIOD'.
- Info: pin 'seg[8]$tr_io' constrained to Bel 'X90/Y41/PIOC'.
- Info: pin 'seg[7]$tr_io' constrained to Bel 'X90/Y41/PIOB'.
- Info: pin 'seg[6]$tr_io' constrained to Bel 'X90/Y41/PIOA'.
- Info: pin 'seg[5]$tr_io' constrained to Bel 'X90/Y38/PIOD'.
- Info: pin 'seg[4]$tr_io' constrained to Bel 'X90/Y38/PIOB'.
- Info: pin 'seg[3]$tr_io' constrained to Bel 'X90/Y38/PIOA'.
- Info: pin 'seg[2]$tr_io' constrained to Bel 'X90/Y35/PIOD'.
- Info: pin 'seg[1]$tr_io' constrained to Bel 'X90/Y38/PIOC'.
- Info: pin 'seg[0]$tr_io' constrained to Bel 'X90/Y35/PIOB'.
- Info: pin 'rxd_uart$tr_io' constrained to Bel 'X38/Y0/PIOB'.
- Info: pin 'reset_n$tr_io' constrained to Bel 'X4/Y71/PIOB'.
- Info: pin 'oled[7]$tr_io' constrained to Bel 'X90/Y11/PIOD'.
- Info: pin 'oled[6]$tr_io' constrained to Bel 'X90/Y14/PIOB'.
- Info: pin 'oled[5]$tr_io' constrained to Bel 'X90/Y14/PIOD'.
- Info: pin 'oled[4]$tr_io' constrained to Bel 'X90/Y17/PIOA'.
- Info: pin 'oled[3]$tr_io' constrained to Bel 'X90/Y14/PIOC'.
- Info: pin 'oled[2]$tr_io' constrained to Bel 'X90/Y14/PIOA'.
- Info: pin 'oled[1]$tr_io' constrained to Bel 'X90/Y11/PIOB'.
- Info: pin 'oled[0]$tr_io' constrained to Bel 'X90/Y11/PIOC'.
- Info: pin 'dip_sw[7]$tr_io' constrained to Bel 'X90/Y32/PIOD'.
- Info: pin 'dip_sw[6]$tr_io' constrained to Bel 'X90/Y32/PIOA'.
- Info: pin 'dip_sw[5]$tr_io' constrained to Bel 'X90/Y29/PIOD'.
- Info: pin 'dip_sw[4]$tr_io' constrained to Bel 'X90/Y29/PIOC'.
- Info: pin 'dip_sw[3]$tr_io' constrained to Bel 'X0/Y32/PIOC'.
- Info: pin 'dip_sw[2]$tr_io' constrained to Bel 'X0/Y32/PIOA'.
- Info: pin 'dip_sw[1]$tr_io' constrained to Bel 'X0/Y38/PIOD'.
- Info: pin 'dip_sw[0]$tr_io' constrained to Bel 'X0/Y35/PIOC'.
- Info: pin 'clk_in$tr_io' constrained to Bel 'X0/Y68/PIOC'.
- Info: Packing constants..
- Info: Packing carries...
- Info: Packing LUTs...
- Info: Packing LUT5-7s...
- Info: Packing FFs...
- Info: 81 FFs paired with LUTs.
- Info: Generating derived timing constraints...
- Info: Input frequency of PLL 'clk_pll1.pllinst_0' is constrained to 100.0 MHz
- Info: Derived frequency constraint of 125.0 MHz for net clk_pll1.clkop
- Info: Derived frequency constraint of 25.0 MHz for net mclk
- Info: Derived frequency constraint of 50.0 MHz for net clk_pll1.clkos2
- Info: Derived frequency constraint of 75.0 MHz for net clk_pll1.clkos3
- Info: Promoting globals...
- Info: promoting clock net mclk to global network
- Info: Checksum: 0x699e2513
- Info: Annotating ports with timing budgets for target frequency 100.00 MHz
- ERROR: cell type 'VLO' is unsupported (instantiated as 'clk_pll1.scuba_vlo_inst')
- 2 warnings, 1 error
- make: *** [../ghdlsynth.mk:26: versa_ecp5_top.config] Error 255
- robin@user:~/share/lattice/ghdl-yosys-plugin/examples/ecp5_versa$ ^C
- robin@user:~/share/lattice/ghdl-yosys-plugin/examples/ecp5_versa$ ^C
- robin@user:~/share/lattice/ghdl-yosys-plugin/examples/ecp5_versa$ make clean all > log.txt
- Info: constraining clock net 'clk_in' to 100.00 MHz
- Warning: IO 'twi_sda' is unconstrained in LPF and will be automatically placed
- Warning: IO 'twi_scl' is unconstrained in LPF and will be automatically placed
- Info: Logic utilisation before packing:
- Info: Total LUT4s: 356/43848 0%
- Info: logic LUTs: 180/43848 0%
- Info: carry LUTs: 80/43848 0%
- Info: RAM LUTs: 64/ 5481 1%
- Info: RAMW LUTs: 32/10962 0%
- Info: Total DFFs: 150/43848 0%
- Info: Packing IOs..
- Info: $twi_sda$iobuf_i: twi_sda$const$VCC$506.Y
- Info: $twi_scl$iobuf_i: twi_scl$const$VCC$505.Y
- Info: pin 'txd_uart$tr_io' constrained to Bel 'X36/Y0/PIOB'.
- Info: pin 'segdp$tr_io' constrained to Bel 'X6/Y71/PIOA'.
- Info: pin 'seg[13]$tr_io' constrained to Bel 'X90/Y44/PIOD'.
- Info: pin 'seg[12]$tr_io' constrained to Bel 'X90/Y44/PIOC'.
- Info: pin 'seg[11]$tr_io' constrained to Bel 'X90/Y44/PIOB'.
- Info: pin 'seg[10]$tr_io' constrained to Bel 'X90/Y44/PIOA'.
- Info: pin 'seg[9]$tr_io' constrained to Bel 'X90/Y41/PIOD'.
- Info: pin 'seg[8]$tr_io' constrained to Bel 'X90/Y41/PIOC'.
- Info: pin 'seg[7]$tr_io' constrained to Bel 'X90/Y41/PIOB'.
- Info: pin 'seg[6]$tr_io' constrained to Bel 'X90/Y41/PIOA'.
- Info: pin 'seg[5]$tr_io' constrained to Bel 'X90/Y38/PIOD'.
- Info: pin 'seg[4]$tr_io' constrained to Bel 'X90/Y38/PIOB'.
- Info: pin 'seg[3]$tr_io' constrained to Bel 'X90/Y38/PIOA'.
- Info: pin 'seg[2]$tr_io' constrained to Bel 'X90/Y35/PIOD'.
- Info: pin 'seg[1]$tr_io' constrained to Bel 'X90/Y38/PIOC'.
- Info: pin 'seg[0]$tr_io' constrained to Bel 'X90/Y35/PIOB'.
- Info: pin 'rxd_uart$tr_io' constrained to Bel 'X38/Y0/PIOB'.
- Info: pin 'reset_n$tr_io' constrained to Bel 'X4/Y71/PIOB'.
- Info: pin 'oled[7]$tr_io' constrained to Bel 'X90/Y11/PIOD'.
- Info: pin 'oled[6]$tr_io' constrained to Bel 'X90/Y14/PIOB'.
- Info: pin 'oled[5]$tr_io' constrained to Bel 'X90/Y14/PIOD'.
- Info: pin 'oled[4]$tr_io' constrained to Bel 'X90/Y17/PIOA'.
- Info: pin 'oled[3]$tr_io' constrained to Bel 'X90/Y14/PIOC'.
- Info: pin 'oled[2]$tr_io' constrained to Bel 'X90/Y14/PIOA'.
- Info: pin 'oled[1]$tr_io' constrained to Bel 'X90/Y11/PIOB'.
- Info: pin 'oled[0]$tr_io' constrained to Bel 'X90/Y11/PIOC'.
- Info: pin 'dip_sw[7]$tr_io' constrained to Bel 'X90/Y32/PIOD'.
- Info: pin 'dip_sw[6]$tr_io' constrained to Bel 'X90/Y32/PIOA'.
- Info: pin 'dip_sw[5]$tr_io' constrained to Bel 'X90/Y29/PIOD'.
- Info: pin 'dip_sw[4]$tr_io' constrained to Bel 'X90/Y29/PIOC'.
- Info: pin 'dip_sw[3]$tr_io' constrained to Bel 'X0/Y32/PIOC'.
- Info: pin 'dip_sw[2]$tr_io' constrained to Bel 'X0/Y32/PIOA'.
- Info: pin 'dip_sw[1]$tr_io' constrained to Bel 'X0/Y38/PIOD'.
- Info: pin 'dip_sw[0]$tr_io' constrained to Bel 'X0/Y35/PIOC'.
- Info: pin 'clk_in$tr_io' constrained to Bel 'X0/Y68/PIOC'.
- Info: Packing constants..
- Info: Packing carries...
- Info: Packing LUTs...
- Info: Packing LUT5-7s...
- Info: Packing FFs...
- Info: 81 FFs paired with LUTs.
- Info: Generating derived timing constraints...
- Info: Input frequency of PLL 'clk_pll1.pllinst_0' is constrained to 100.0 MHz
- Info: Derived frequency constraint of 125.0 MHz for net clk_pll1.clkop
- Info: Derived frequency constraint of 25.0 MHz for net mclk
- Info: Derived frequency constraint of 50.0 MHz for net clk_pll1.clkos2
- Info: Derived frequency constraint of 75.0 MHz for net clk_pll1.clkos3
- Info: Promoting globals...
- Info: promoting clock net mclk to global network
- Info: Checksum: 0x699e2513
- Info: Annotating ports with timing budgets for target frequency 100.00 MHz
- ERROR: cell type 'VLO' is unsupported (instantiated as 'clk_pll1.scuba_vlo_inst')
- 2 warnings, 1 error
- make: *** [../ghdlsynth.mk:26: versa_ecp5_top.config] Error 255
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement