Getting Started with Vicharak Shrike-Lite RP2040 + SLG47910 FPGA Development Board

Learn how to run your first FPGA code on the low-cost Shrike-Lite FPGA + MCU development board from Vicharak

Getting-Started-with-Shrike-Lite-FPGA+MCU-Development-Board-Feaured-Image-Landscape-CIRCUITSTATE-Electronics-1

This is our first FPGA tutorial. For many engineers who are already good at embedded hardware and software, an FPGA is still a mysterious thing that they know about its theoretical existence but has way less hand-on experience. The main reason is that the barrier for entry for FPGA is much higher than a microcontroller. The microcontroller space became democratized thanks to the [rev]evolution of open-source hardware and software. But not much has happened on the FPGA scene at the same time. Vicharak is an Indian hardware company that is trying to change that. Their latest product, the Shrike-Lite is an ultra-affordable FPGA + MCU development board designed and manufactured in India. We bought this board for just INR 350 and that is lower than any Arduino boards you can buy. The board combines a low-density SLG47910 FPGA from Renesas and the RP2040 ARM microcontroller from Raspberry Pi. Equipped with open-source and some free software tools, the entry for barrier to this board is just its price. In this post, we will refresh our FPGA knowledge, take a closer look at the Shrike-Lite board and run a few sample codes.

FPGA

Before talking about Shrike-Lite, let’s learn a few things about FPGAs since this is our first tutorial involving FPGAs. If you are new to FPGA, or haven’t got your hands on one after your engineering degree, it stands for Field-Programmable Gate Array. The FPGA is a chip with thousands of hardware logic blocks (logic gates, flip-flops, multiplexers etc.) that can be connected together to form more complex combinational logic circuits. For example, following is the symbol for the AND logic gate.

AND-Logic-Gate-Symbol-CIRCUITSTATE-Electronics-1
AND logic gate symbol

It has two inputs A and B, and one output Y. All inputs and outputs are binary in nature – that means they can be in either HIGH (1) or LOW (0) state. There can be four combination of inputs and two possible output states. The output state is determined by the following logic truth table.

ABY
000
010
100
111
AND gate truth table

Simply said, an AND gate’s output only become 1, when both of its inputs are also 1. The CD4093 is a quad dual-input AND gate IC from the CD4000 series. This IC has four AND gates whose inputs and outputs are connected to the external pins. You just need to supply the power and the gates are ready to accept the inputs. A single AND gate can be built using a set of N-Channel Mosfets (NMOS) and P-Channel Mosfets (PMOS) like shown below.

CMOS AND Logic Gate Construction with Mosfets Schematic CIRCUITSTATE Electronics
CMOS AND gate construction with Mosfets

These Mosfets can be fabricated and interconnected on a single Silicon die and assembled to become a chip like the CD4093. The manufacturing process for a typical microcontroller is also the same, but uses way more transistors (like millions) and involves more complex logic circuits. Once these chips are fabricated, you can no longer change how they are connected, making them non-configurable or static in nature.

Die photo of the Soviet 134ЛА8 (134LA8) NAND gate integrated circuit.
Die photo of the Soviet 134ЛА8 (134LA8) NAND gate integrated circuit. Source: Ken Shirriff’s blog

FPGAs also have these logic blocks made of Mosfets inside. These logic blocks are usually called Configurable Logic Blocks (CLBs). But unlike a logic IC or a microcontroller/microprocessor, all of its CLBs are not connected to anywhere by default. The CLBs are arranged as matrix array and their inputs and outputs can be connected together using what is called an Interconnect Fabric. An interconnect is an array of wires that can be programmed to connect to different CLBs. The data for the interconnects is usually stored in an SRAM (Static Random Access Memory). When we load a binary data into the SRAM, it causes the interconnect to connect the CLBs in a very specific way. If we want to change the connections, or reconfigure them, all we need to do is to load a different binary data into the SRAM. This essentially gives us a chip with reconfigurable logic circuits. Such devices are generally called Programmable Logic Devices (PLD). An FPGA is “field-programmable” because its circuits can be reconfigured outside a factory.

FPGA-Internal-Diagram-CIRCUITSTATE-Electronics
Simplified internal structure of an FPGA

One of the main specifications of an FPGA is the number of CLBs it has. A CLB inside an FPGA is different from simple boolean logic gates. CLBs are configurable and can include multiple other types of logic blocks. For example, the following image shows a CLB.

FPGA-CLB-Example-Wikipedia
FPGA logic cell simplified diagram. Source: Wikipedia

Three different logic blocks are used here – LUT, FA and FF. LUT stands for Look-Up Table, yes the same type of LUT you use in videography, though the application is different here. A LUT is a small memory where you can write a set of binary values. For example, in the previous diagram, each LUT has three inputs. Each of this input can be considered as address lines and therefore 3 inputs will give you 23 = 8 bits of information. For each of the state combinations of the inputs, the LUT will output a single state. The following truth table shows the inputs and outputs of a few types of logic gates. A and B are inputs, and F is the look up value stored in the RAM. By replacing the values on the look up table, we can change the logical nature of the LUT block.

InputANDORNANDNORXOR
ABF
0000110
0101101
1001101
1111000

The table shows a 2-input, 1-output LUT. All of this means that, there is no actual boolean operations performed like an actual logic gate does, instead the LUT simply outputs the data stored in the look-up table based on the input. The inputs are simply a look up address. But shouldn’t that be a problem? No, because the logic and effect are the same. When we design a logic gate with transistors, we are effectively “saving” multiple states in the circuit as if it is memory.

FA stands for Full Adder and it is a usual building block of the CLB. An FA can add bits and produce the result and a carry. FA allows fast addition of numbers and there are no look up tables for this. The FA is implemented in hardware and you can not change its behaviour. The FF stands for Flip-Flop and it is a basic memory block that can latch/store bits of information. This allows a CLB to temporarily store data after a computation is performed. A clock signal is required for the FF to work. The multiplexers (mux) allow us to select and direct various inputs and outputs to different places within the CLB. Both the FF and muxes are hardwired.

Finally for the FPGAs to be useful in practical applications, we can route the initial inputs and the final outputs to physical pins with the help of I/O Blocks. The inputs and outputs of CLBs and various other blocks are connected to the interconnect. The data for the LUT, interconnect and other parts are stored in the SRAM of the FPGA. By loading a bitstream to the FPGA’s memory, we can implement anything that is logically possible, given we have enough number of CLBs. You could even implement a full microprocessor or microcontroller inside an FPGA. The following table outlines the differences between the familiar microcontroller and an FPGA.

MicrocontrollerFPGA
Computation happens inside the ALU (Arithmetic & Logic Unit) of the CPUComputation is distributed
Sequential execution of predefined and limited set of instructionsComputation is parallel and there is no limit to the number of or type of operations
Fixed hardware logic connections in the dieHardware logic can be reconfigured any time
Computation takes more time due to sequential execution Computation is near instant, only the signal propagation delay is added
Most efficient use of the silicon dieLess efficient use of space in a silicon die

Shrike-Lite

Vicharak-Shrike-Lite-SLG47910-FPGA-RP2040-Microcontroller-Development-Board-Top-and-Bottom-CIRCUITSTATE-Electronics-1
Vicharak Shrike-Lite PCB front and back

Shrike-Lite is a development board that combines an ARM microcontroller and an FPGA. There is also a Shrike with a better RP2350 microcontroller and the same FPGA. While the Shrike-Lite is available to buy now, the Shrike is still in CrowdSupply. The board we have has “Shrike-Lite” written on it. Apart from the SLG47910 FPGA, everything about the Shrike-Lite is the same as a typical microcontroller board. So we won’t explain too much about that side. If you want to learn more about the RP2040 microcontroller from Raspberry Pi, you can check out our getting started tutorial. The Shrike-Lite is marketed as an open-source product by its creator Vicharak, but in reality the hardware is not open-source. Only a few example codes, software tools and libraries are open-source. So this is not an Open-Source Hardware (OSHW) product. But Vicharak has released the schematic of the board in PDF format, which is enough to replicate the design in KiCad or other EDA tools relatively easily.

FeatureShrikeShrike-lite
FPGA1120 × 5-input LUTs1120 × 5-input LUTs
MCURP2350RP2040
PMOD Compatible Connector
Breadboard Compatible
FPGA ↔ MCU IO Interface
QSPI Flash4 MB4 MB
User LEDs22
USB Type-C (Power & Programming)
Comparison of Shrike and Shrike-Lite

The Shrike-Lite board we purchased is the V1.0-R0.4. It comes with an RP2040 as the main MCU with a 4 MB Flash memory. The power can be supplied through the USB-C connector or the broken out pins. There are two voltage regulators on the board – an AP2112K 3.3V regulator and an SL6206 1.1V regulator. The 3.3V regulator supplies voltage to the RP2040 and other peripherals while the 1.1V supply is for the FPGA’s internals. The I/O voltage of the FPGA is still 3.3V. There are three LED indicators – one for power, one for RP2040 debug and one for the FPGA debug. Communication with a PC is achieved through the same USB-C connector whose pins are connected to the native USB interface of the RP2040. Two push-buttons are available for RESET and BOOT control of the RP2040. All of the I/O pins of the RP2040 is broken out except a set of SPI pins which are connected to the FPGA. The FPGA also has its free pins broken out for external use. Finally, there is a 3-pin vertical JST-SH connector SWD debugging of the RP2040. The board seems to have a 2-layer design done in KiCad. The bottom side of the board has “Designed in Gujarat” (a state of India) and “Manufactured in India” written on the silkscreen.

Vicharak-Shrike-Lite-Block-Diagram-1
Shrike block diagram. Source: Vicharak

Features

  • Raspberry Pi RP2040 ARM microcontroller with 4 MB flash.
  • Renesas SLG47910 FPGA.
  • USB-C connector for power and communication.
  • Reset and Boot buttons.
  • Power LED.
  • Debug LEDs for RP2040 and the FPGA.
  • 3-pin JST-SH vertical connector for SWD programming.
  • Breadboard compatible design.

Pinout

Vicharak-Shrike-Lite-SLG47910-FPGA-RP2040-Microcontroller-Development-Board-Pinout-Diagram-CIRCUITSTATE-Electronics-1

Schematic

Vicharak-Shrike-Lite-Schematic-Page-1
Vicharak-Shrike-Lite-Schematic-Page-2
Vicharak-Shrike-Lite-Schematic-Page-3

SLG47910

Renesas-SLG47910-FPGA-Internal-Block-Diagram-CIRCUITSTATE-Electronics-1
SLG47910 internal block diagram

SLG47910V is a small low-density, and low-power FPGA from Renesas, a Japanese semiconductor company. SLG47910V part of the ForgeFPGA from Renesas. This particular FPGA has 1120 6-input, 2-output LUTs, 1120 D-Flip Flops, 5kb distributed memory and 32kb BRAM (Block Random Access Memory). Following are its remaining features.

  • Dense array of configurable logic
    • 1120 6-input, 2-output LUTs
    • 1120 D-Flip Flops (DFFs)
    • 5kb distributed memory
    • 32kb Block Random Access Memory (BRAM)
    • Configurable through NVM and/or SPI interface
  • 50MHz on-chip oscillator
  • Phase-locked Loop (PLL)
    • Input from external source or internal 50MHz oscillator
  • Power supply
    • VDDIO: 1.71V to 3.465V
    • VDDC: 1.1V ± 5%
  • Power-on reset (POR)
  • GPIO count
    • 19 GPIOs in the QFN packaging
  • Bitstream security features
    • Cyclic Redundancy Check (CRC) – OTP configuration only
  • Operating temperature range: -40°C to +85°C
  • RoHS compliant/Halogen-free
  • Available package
    • 24-pin QFN: 3.0mm x 3.0mm, 0.4mm pitch
Renesas-SLG47910-FPGA-Internal-Pinout-CIRCUITSTATE-Electronics-1
SLG47910 pinout for the QFN-24 package

The FPGA core of the SLG47910V has the following layout. There are two types of CLBs here – Configurable Logic Blocks for Logic (CLBL) and Configurable Logic Blocks for Memory (CLBM). The CLBL is actually a subset of CLBM which has extra working modes to store and move data around. There are 140 CLBs in SLG47910V and 100 of them are CLBL and 40 are CLBM.

Renesas-SLG47910-FPGA-Core-Layout-CIRCUITSTATE-Electronics-1
SLG47910 internal FPGA core layout

Following is the block diagram of one CLBL block. A single CLBL is composed of four 6-input/2-output LUTs and eight D Flip-flops.

Renesas-SLG47910-FPGA-CLBL-Simplified-Block-Diagram-CIRCUITSTATE-Electronics-1
Simplified block diagram of a single CLBL module in SLG47910

Each of those 6-input/2-output LUTs are composed of a pair of 5-input/1-output LUTs. That means there is a total of eight LUTs inside a single CLB. The set of inputs of the CLBL is named from A to D, each of those A1~A6, B1~B6, C1~C6, and D1~D6 are the inputs. Inputs 1~4 connect to the interconnect fabric and 5~6 connect to the I/O blocks. Meanings of other inputs and outputs are as follows,

  1. AI, BI, CI, DI – Direct inputs for the CLB which also connects to the D FFs.
  2. CIN and COUT – Carry in and carry out.
  3. CLK – Clock for all FFs in this CLB.
  4. CHIP_RST – Resets the CLB.
  5. CE – Clock Enable for the FFs.
  6. SR – Set or Reset control for the FFs.

Below is a more detailed internal diagram of the CLBL.

Renesas-SLG47910-FPGA-CLBL-Detailed-Block-Diagram-CIRCUITSTATE-Electronics-1
Detailed block diagram of a single CLBL module in SLG47910

Below is the basic and detailed diagrams of the CLBM. We won’t explain this in detail as it is well explained in the datasheet.

Renesas-SLG47910-FPGA-CLBM-Simplified-Block-Diagram-CIRCUITSTATE-Electronics-1
Simplified block diagram of a single CLBM module in SLG47910

Finally we have the I/O Blocks as well with the following diagram. The job of the I/O block is to read the inputs from the physical pins or write an output to them. As you can see, some of the inputs/outputs are connecting to the interconnect and some to the physical pins and the remaining to CLBs. These allow us to connect the IO blocks to different parts of the FPGA.

Renesas-SLG47910-FPGA-IO-Block-Detailed-Block-Diagram-CIRCUITSTATE-Electronics-1
IO Block internal diagram

Apart from the CLBs, the SLG47910V also includes a 50MHz on-chip oscillator, and a PLL (Phase-Locked Loop). These help to generate the necessary clock signals for various parts of the logic system. Loading the bitstream to the RAM is done through the 6-pin SPI. The entire chip is enclosed inside a 24-pin QFN package with just 3×3 mm size. So the SLG47910V is ideal for small-scale applications.

Go Configure Software Hub

Renesas-Go-Configure-Software-Hub-Main-Page-CIRCUITSTATE-Electronics-1

We don’t know who are naming things like this, but Go Configure Software Hub is the actual name of the development tool intended for the SLG47910V FPGA. If you have been working with microcontrollers for a while, you must already know how a program for a microcontroller is written, compiled and uploaded to the system. FPGA also requires something like that. The language we use to write the code for FPGA is called a Hardware Description Language (HDL) instead of a programming language. Every program or code includes a logic, or an algorithm, which is a set of instructions. The instructions for the FPGA has the nature of telling how to configure the internal logic blocks of the FPGA. There are two HDLs used in the industry – VHDL (VHSIC Hardware Description Language) and Verilog. A code written in an HDL is synthesized to become what is called a Register Transfer Level (RTL) representation. This is similar to compilation of procedural programming languages. The “register” part of RTL indicates the Flip-Flop memories which control the data flow synchronously. The data flow is actually what matters at the end. An RTL describes how the internal logic of the FPGA should be formed to achieve what is given in the HDL code. HDL allows you to write applications at an abstract level without worrying about the complex interconnections of different logic blocks of an FPGA.

The Go Configure Software Hub (GCSH) is a synthesis tool that allows you to write code in Verilog, synthesize, optimize and generate the final bitstream file for an FPGA. The bitstream can then be loaded to the FPGA through the SPI. GCSH is a free tool available for all major operating systems.

Creating A Project

Installation of the GCSH is straightforward and so we don’t need to explain anything. After installation, you can launch the software and start creating your first project. As we always, do blinking an LED can be a good first example. This example is provided by Vicharak on their repository. All we have to do is to create a project and copy-paste the code there. The steps followed here are explained in the documentation of Shrike as well.

Renesas-Go-Configure-Software-Hub-Create-Project-CIRCUITSTATE-Electronics-1

The first thing we have to do is to configure some of the operating parameters. The normal working parameters can be found from clicking the information icon.

Renesas-Go-Configure-Software-Hub-Project-Settings-CIRCUITSTATE-Electronics-1

Next we get the following window that shows the actual FPGA core and its peripherals. You can zoom in and out by pressing the Ctrl key and scrolling. The interface is interactive.

Renesas-Go-Configure-Software-Hub-FPGA-Configuration-CIRCUITSTATE-Electronics-1

After that, you can copy paste the example code to the main.v file.

(* top *) module blink(
  (* iopad_external_pin, clkbuf_inhibit *) input clk,
  (* iopad_external_pin *) output LED,
  (* iopad_external_pin *) output LED_en,
  (* iopad_external_pin *) output clk_en
  );

  reg [31:0] counter;
  reg LED_status;

  assign LED_en = 1'b1;
  assign clk_en = 1'b1;
  
  always @ (posedge clk) begin
    counter <= counter + 1'b1;
    if (counter == 50_000_000) begin
      LED_status <= !LED_status;
      counter <= 32'b0;
    end
  end

  assign LED = LED_status;

endmodule 
main.v
Renesas-Go-Configure-Software-Hub-Blink-Main-File-CIRCUITSTATE-Electronics-1

Now we need to configure the pins and the clock sources. To do that we can move on to the I/O Planner tab and set them as shown below. Use the filters on top to filter the pins.

Renesas-Go-Configure-Software-Hub-Blink-Clock-Pins-CIRCUITSTATE-Electronics-1
Configure clock pins
Renesas-Go-Configure-Software-Hub-Blink-GPIO-Pins-CIRCUITSTATE-Electronics-1
Configure IO pins

To start synthesizing the code, you can click on the Synthesize button. Following is the synthesis log.

######################################################################11/29/25 7:31 PM > Start Synthesis
######################################################################

-- Executing script file `synth_script.ys' --

1. Executing Verilog-2005 frontend: ../src/main.v
Parsing SystemVerilog input from `../src/main.v' to AST representation.
Storing AST representation for module `$abstract\blink'.
Successfully finished Verilog frontend.

2. Executing SYNTH_XILINX pass.

2.1. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v' to AST representation.
Generating RTLIL representation for module `\VCC'.
Generating RTLIL representation for module `\GND'.
Generating RTLIL representation for module `\IBUF'.
Generating RTLIL representation for module `\IBUFG'.
Generating RTLIL representation for module `\OBUF'.
Generating RTLIL representation for module `\IOBUF'.
Generating RTLIL representation for module `\OBUFT'.
Generating RTLIL representation for module `\BUFG'.
Generating RTLIL representation for module `\BUFGCTRL'.
Generating RTLIL representation for module `\BUFHCE'.
Generating RTLIL representation for module `\INV'.
Generating RTLIL representation for module `\LUT1'.
Generating RTLIL representation for module `\LUT2'.
Generating RTLIL representation for module `\LUT3'.
Generating RTLIL representation for module `\LUT4'.
Generating RTLIL representation for module `\LUT5'.
Generating RTLIL representation for module `\LUT6'.
Generating RTLIL representation for module `\LUT6_2'.
Generating RTLIL representation for module `\$__ABC9_LUT7'.
Generating RTLIL representation for module `\$__ABC9_LUT8'.
Generating RTLIL representation for module `\MUXCY'.
Generating RTLIL representation for module `\MUXF5'.
Generating RTLIL representation for module `\MUXF6'.
Generating RTLIL representation for module `\MUXF7'.
Generating RTLIL representation for module `\MUXF8'.
Generating RTLIL representation for module `\MUXF9'.
Generating RTLIL representation for module `\XORCY'.
Generating RTLIL representation for module `\CARRY4'.
Generating RTLIL representation for module `\CARRY8'.
Generating RTLIL representation for module `\ORCY'.
Generating RTLIL representation for module `\MULT_AND'.
Generating RTLIL representation for module `\FDRE'.
Generating RTLIL representation for module `\FDRE_1'.
Generating RTLIL representation for module `\FDSE'.
Generating RTLIL representation for module `\FDSE_1'.
Generating RTLIL representation for module `\FDRSE'.
Generating RTLIL representation for module `\FDRSE_1'.
Generating RTLIL representation for module `\FDCE'.
Generating RTLIL representation for module `\FDCE_1'.
Generating RTLIL representation for module `\FDPE'.
Generating RTLIL representation for module `\FDPE_1'.
Generating RTLIL representation for module `\FDCPE'.
Generating RTLIL representation for module `\FDCPE_1'.
Generating RTLIL representation for module `\LDCE'.
Generating RTLIL representation for module `\LDPE'.
Generating RTLIL representation for module `\LDCPE'.
Generating RTLIL representation for module `\AND2B1L'.
Generating RTLIL representation for module `\OR2L'.
Generating RTLIL representation for module `\RAM16X1S'.
Generating RTLIL representation for module `\RAM16X1S_1'.
Generating RTLIL representation for module `\RAM32X1S'.
Generating RTLIL representation for module `\RAM32X1S_1'.
Generating RTLIL representation for module `\RAM64X1S'.
Generating RTLIL representation for module `\RAM64X1S_1'.
Generating RTLIL representation for module `\RAM128X1S'.
Generating RTLIL representation for module `\RAM128X1S_1'.
Generating RTLIL representation for module `\RAM256X1S'.
Generating RTLIL representation for module `\RAM512X1S'.
Generating RTLIL representation for module `\RAM16X2S'.
Generating RTLIL representation for module `\RAM32X2S'.
Generating RTLIL representation for module `\RAM64X2S'.
Generating RTLIL representation for module `\RAM16X4S'.
Generating RTLIL representation for module `\RAM32X4S'.
Generating RTLIL representation for module `\RAM16X8S'.
Generating RTLIL representation for module `\RAM32X8S'.
Generating RTLIL representation for module `\RAM16X1D'.
Generating RTLIL representation for module `\RAM16X1D_1'.
Generating RTLIL representation for module `\RAM32X1D'.
Generating RTLIL representation for module `\RAM32X1D_1'.
Generating RTLIL representation for module `\RAM64X1D'.
Generating RTLIL representation for module `\RAM64X1D_1'.
Generating RTLIL representation for module `\RAM128X1D'.
Generating RTLIL representation for module `\RAM256X1D'.
Generating RTLIL representation for module `\RAM32M'.
Generating RTLIL representation for module `\RAM32M16'.
Generating RTLIL representation for module `\RAM64M'.
Generating RTLIL representation for module `\RAM64M8'.
Generating RTLIL representation for module `\RAM32X16DR8'.
Generating RTLIL representation for module `\RAM64X8SW'.
Generating RTLIL representation for module `\ROM16X1'.
Generating RTLIL representation for module `\ROM32X1'.
Generating RTLIL representation for module `\ROM64X1'.
Generating RTLIL representation for module `\ROM128X1'.
Generating RTLIL representation for module `\ROM256X1'.
Generating RTLIL representation for module `\SRL16'.
Generating RTLIL representation for module `\SRL16E'.
Generating RTLIL representation for module `\SRLC16'.
Generating RTLIL representation for module `\SRLC16E'.
Generating RTLIL representation for module `\SRLC32E'.
Generating RTLIL representation for module `\CFGLUT5'.
Generating RTLIL representation for module `\MULT18X18'.
Generating RTLIL representation for module `\MULT18X18S'.
Generating RTLIL representation for module `\MULT18X18SIO'.
Generating RTLIL representation for module `\DSP48A'.
Generating RTLIL representation for module `\DSP48A1'.
Generating RTLIL representation for module `\DSP48'.
Generating RTLIL representation for module `\DSP48E1'.
Generating RTLIL representation for module `\RAMB18E1'.
Generating RTLIL representation for module `\RAMB36E1'.
Successfully finished Verilog frontend.

2.2. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_xtra.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_xtra.v' to AST representation.
Generating RTLIL representation for module `\RAMB4_S1'.
Generating RTLIL representation for module `\RAMB4_S2'.
Generating RTLIL representation for module `\RAMB4_S4'.
Generating RTLIL representation for module `\RAMB4_S8'.
Generating RTLIL representation for module `\RAMB4_S16'.
Generating RTLIL representation for module `\RAMB4_S1_S1'.
Generating RTLIL representation for module `\RAMB4_S1_S2'.
Generating RTLIL representation for module `\RAMB4_S1_S4'.
Generating RTLIL representation for module `\RAMB4_S1_S8'.
Generating RTLIL representation for module `\RAMB4_S1_S16'.
Generating RTLIL representation for module `\RAMB4_S2_S2'.
Generating RTLIL representation for module `\RAMB4_S2_S4'.
Generating RTLIL representation for module `\RAMB4_S2_S8'.
Generating RTLIL representation for module `\RAMB4_S2_S16'.
Generating RTLIL representation for module `\RAMB4_S4_S4'.
Generating RTLIL representation for module `\RAMB4_S4_S8'.
Generating RTLIL representation for module `\RAMB4_S4_S16'.
Generating RTLIL representation for module `\RAMB4_S8_S8'.
Generating RTLIL representation for module `\RAMB4_S8_S16'.
Generating RTLIL representation for module `\RAMB4_S16_S16'.
Generating RTLIL representation for module `\RAMB16_S1'.
Generating RTLIL representation for module `\RAMB16_S2'.
Generating RTLIL representation for module `\RAMB16_S4'.
Generating RTLIL representation for module `\RAMB16_S9'.
Generating RTLIL representation for module `\RAMB16_S18'.
Generating RTLIL representation for module `\RAMB16_S36'.
Generating RTLIL representation for module `\RAMB16_S1_S1'.
Generating RTLIL representation for module `\RAMB16_S1_S2'.
Generating RTLIL representation for module `\RAMB16_S1_S4'.
Generating RTLIL representation for module `\RAMB16_S1_S9'.
Generating RTLIL representation for module `\RAMB16_S1_S18'.
Generating RTLIL representation for module `\RAMB16_S1_S36'.
Generating RTLIL representation for module `\RAMB16_S2_S2'.
Generating RTLIL representation for module `\RAMB16_S2_S4'.
Generating RTLIL representation for module `\RAMB16_S2_S9'.
Generating RTLIL representation for module `\RAMB16_S2_S18'.
Generating RTLIL representation for module `\RAMB16_S2_S36'.
Generating RTLIL representation for module `\RAMB16_S4_S4'.
Generating RTLIL representation for module `\RAMB16_S4_S9'.
Generating RTLIL representation for module `\RAMB16_S4_S18'.
Generating RTLIL representation for module `\RAMB16_S4_S36'.
Generating RTLIL representation for module `\RAMB16_S9_S9'.
Generating RTLIL representation for module `\RAMB16_S9_S18'.
Generating RTLIL representation for module `\RAMB16_S9_S36'.
Generating RTLIL representation for module `\RAMB16_S18_S18'.
Generating RTLIL representation for module `\RAMB16_S18_S36'.
Generating RTLIL representation for module `\RAMB16_S36_S36'.
Generating RTLIL representation for module `\RAMB16BWE_S18'.
Generating RTLIL representation for module `\RAMB16BWE_S36'.
Generating RTLIL representation for module `\RAMB16BWE_S18_S9'.
Generating RTLIL representation for module `\RAMB16BWE_S18_S18'.
Generating RTLIL representation for module `\RAMB16BWE_S36_S9'.
Generating RTLIL representation for module `\RAMB16BWE_S36_S18'.
Generating RTLIL representation for module `\RAMB16BWE_S36_S36'.
Generating RTLIL representation for module `\RAMB16BWER'.
Generating RTLIL representation for module `\RAMB8BWER'.
Generating RTLIL representation for module `\FIFO16'.
Generating RTLIL representation for module `\RAMB16'.
Generating RTLIL representation for module `\RAMB32_S64_ECC'.
Generating RTLIL representation for module `\FIFO18'.
Generating RTLIL representation for module `\FIFO18_36'.
Generating RTLIL representation for module `\FIFO36'.
Generating RTLIL representation for module `\FIFO36_72'.
Generating RTLIL representation for module `\RAMB18'.
Generating RTLIL representation for module `\RAMB36'.
Generating RTLIL representation for module `\RAMB18SDP'.
Generating RTLIL representation for module `\RAMB36SDP'.
Generating RTLIL representation for module `\FIFO18E1'.
Generating RTLIL representation for module `\FIFO36E1'.
Generating RTLIL representation for module `\FIFO18E2'.
Generating RTLIL representation for module `\FIFO36E2'.
Generating RTLIL representation for module `\RAMB18E2'.
Generating RTLIL representation for module `\RAMB36E2'.
Generating RTLIL representation for module `\URAM288'.
Generating RTLIL representation for module `\URAM288_BASE'.
Generating RTLIL representation for module `\DSP48E'.
Generating RTLIL representation for module `\DSP48E2'.
Generating RTLIL representation for module `\FDDRCPE'.
Generating RTLIL representation for module `\FDDRRSE'.
Generating RTLIL representation for module `\IFDDRCPE'.
Generating RTLIL representation for module `\IFDDRRSE'.
Generating RTLIL representation for module `\OFDDRCPE'.
Generating RTLIL representation for module `\OFDDRRSE'.
Generating RTLIL representation for module `\OFDDRTCPE'.
Generating RTLIL representation for module `\OFDDRTRSE'.
Generating RTLIL representation for module `\IDDR2'.
Generating RTLIL representation for module `\ODDR2'.
Generating RTLIL representation for module `\IDDR'.
Generating RTLIL representation for module `\IDDR_2CLK'.
Generating RTLIL representation for module `\ODDR'.
Generating RTLIL representation for module `\IDELAYCTRL'.
Generating RTLIL representation for module `\IDELAY'.
Generating RTLIL representation for module `\ISERDES'.
Generating RTLIL representation for module `\OSERDES'.
Generating RTLIL representation for module `\IODELAY'.
Generating RTLIL representation for module `\ISERDES_NODELAY'.
Generating RTLIL representation for module `\IODELAYE1'.
Generating RTLIL representation for module `\ISERDESE1'.
Generating RTLIL representation for module `\OSERDESE1'.
Generating RTLIL representation for module `\IDELAYE2'.
Generating RTLIL representation for module `\ODELAYE2'.
Generating RTLIL representation for module `\ISERDESE2'.
Generating RTLIL representation for module `\OSERDESE2'.
Generating RTLIL representation for module `\PHASER_IN'.
Generating RTLIL representation for module `\PHASER_IN_PHY'.
Generating RTLIL representation for module `\PHASER_OUT'.
Generating RTLIL representation for module `\PHASER_OUT_PHY'.
Generating RTLIL representation for module `\PHASER_REF'.
Generating RTLIL representation for module `\PHY_CONTROL'.
Generating RTLIL representation for module `\IDDRE1'.
Generating RTLIL representation for module `\ODDRE1'.
Generating RTLIL representation for module `\IDELAYE3'.
Generating RTLIL representation for module `\ODELAYE3'.
Generating RTLIL representation for module `\ISERDESE3'.
Generating RTLIL representation for module `\OSERDESE3'.
Generating RTLIL representation for module `\BITSLICE_CONTROL'.
Generating RTLIL representation for module `\RIU_OR'.
Generating RTLIL representation for module `\RX_BITSLICE'.
Generating RTLIL representation for module `\RXTX_BITSLICE'.
Generating RTLIL representation for module `\TX_BITSLICE'.
Generating RTLIL representation for module `\TX_BITSLICE_TRI'.
Generating RTLIL representation for module `\IODELAY2'.
Generating RTLIL representation for module `\IODRP2'.
Generating RTLIL representation for module `\IODRP2_MCB'.
Generating RTLIL representation for module `\ISERDES2'.
Generating RTLIL representation for module `\OSERDES2'.
Generating RTLIL representation for module `\IBUF_DLY_ADJ'.
Generating RTLIL representation for module `\IBUF_IBUFDISABLE'.
Generating RTLIL representation for module `\IBUF_INTERMDISABLE'.
Generating RTLIL representation for module `\IBUF_ANALOG'.
Generating RTLIL representation for module `\IBUFE3'.
Generating RTLIL representation for module `\IBUFDS'.
Generating RTLIL representation for module `\IBUFDS_DLY_ADJ'.
Generating RTLIL representation for module `\IBUFDS_IBUFDISABLE'.
Generating RTLIL representation for module `\IBUFDS_INTERMDISABLE'.
Generating RTLIL representation for module `\IBUFDS_DIFF_OUT'.
Generating RTLIL representation for module `\IBUFDS_DIFF_OUT_IBUFDISABLE'.
Generating RTLIL representation for module `\IBUFDS_DIFF_OUT_INTERMDISABLE'.
Generating RTLIL representation for module `\IBUFDSE3'.
Generating RTLIL representation for module `\IBUFDS_DPHY'.
Generating RTLIL representation for module `\IBUFGDS'.
Generating RTLIL representation for module `\IBUFGDS_DIFF_OUT'.
Generating RTLIL representation for module `\IOBUF_DCIEN'.
Generating RTLIL representation for module `\IOBUF_INTERMDISABLE'.
Generating RTLIL representation for module `\IOBUFE3'.
Generating RTLIL representation for module `\IOBUFDS'.
Generating RTLIL representation for module `\IOBUFDS_DCIEN'.
Generating RTLIL representation for module `\IOBUFDS_INTERMDISABLE'.
Generating RTLIL representation for module `\IOBUFDS_DIFF_OUT'.
Generating RTLIL representation for module `\IOBUFDS_DIFF_OUT_DCIEN'.
Generating RTLIL representation for module `\IOBUFDS_DIFF_OUT_INTERMDISABLE'.
Generating RTLIL representation for module `\IOBUFDSE3'.
Generating RTLIL representation for module `\OBUFDS'.
Generating RTLIL representation for module `\OBUFDS_DPHY'.
Generating RTLIL representation for module `\OBUFTDS'.
Generating RTLIL representation for module `\KEEPER'.
Generating RTLIL representation for module `\PULLDOWN'.
Generating RTLIL representation for module `\PULLUP'.
Generating RTLIL representation for module `\DCIRESET'.
Generating RTLIL representation for module `\HPIO_VREF'.
Generating RTLIL representation for module `\BUFGCE'.
Generating RTLIL representation for module `\BUFGCE_1'.
Generating RTLIL representation for module `\BUFGMUX'.
Generating RTLIL representation for module `\BUFGMUX_1'.
Generating RTLIL representation for module `\BUFGMUX_CTRL'.
Generating RTLIL representation for module `\BUFGMUX_VIRTEX4'.
Generating RTLIL representation for module `\BUFG_GT'.
Generating RTLIL representation for module `\BUFG_GT_SYNC'.
Generating RTLIL representation for module `\BUFG_PS'.
Generating RTLIL representation for module `\BUFGCE_DIV'.
Generating RTLIL representation for module `\BUFH'.
Generating RTLIL representation for module `\BUFIO2'.
Generating RTLIL representation for module `\BUFIO2_2CLK'.
Generating RTLIL representation for module `\BUFIO2FB'.
Generating RTLIL representation for module `\BUFPLL'.
Generating RTLIL representation for module `\BUFPLL_MCB'.
Generating RTLIL representation for module `\BUFIO'.
Generating RTLIL representation for module `\BUFIODQS'.
Generating RTLIL representation for module `\BUFR'.
Generating RTLIL representation for module `\BUFMR'.
Generating RTLIL representation for module `\BUFMRCE'.
Generating RTLIL representation for module `\DCM'.
Generating RTLIL representation for module `\DCM_SP'.
Generating RTLIL representation for module `\DCM_CLKGEN'.
Generating RTLIL representation for module `\DCM_ADV'.
Generating RTLIL representation for module `\DCM_BASE'.
Generating RTLIL representation for module `\DCM_PS'.
Generating RTLIL representation for module `\PMCD'.
Generating RTLIL representation for module `\PLL_ADV'.
Generating RTLIL representation for module `\PLL_BASE'.
Generating RTLIL representation for module `\MMCM_ADV'.
Generating RTLIL representation for module `\MMCM_BASE'.
Generating RTLIL representation for module `\MMCME2_ADV'.
Generating RTLIL representation for module `\MMCME2_BASE'.
Generating RTLIL representation for module `\PLLE2_ADV'.
Generating RTLIL representation for module `\PLLE2_BASE'.
Generating RTLIL representation for module `\MMCME3_ADV'.
Generating RTLIL representation for module `\MMCME3_BASE'.
Generating RTLIL representation for module `\PLLE3_ADV'.
Generating RTLIL representation for module `\PLLE3_BASE'.
Generating RTLIL representation for module `\MMCME4_ADV'.
Generating RTLIL representation for module `\MMCME4_BASE'.
Generating RTLIL representation for module `\PLLE4_ADV'.
Generating RTLIL representation for module `\PLLE4_BASE'.
Generating RTLIL representation for module `\BUFT'.
Generating RTLIL representation for module `\IN_FIFO'.
Generating RTLIL representation for module `\OUT_FIFO'.
Generating RTLIL representation for module `\HARD_SYNC'.
Generating RTLIL representation for module `\STARTUP_SPARTAN3'.
Generating RTLIL representation for module `\STARTUP_SPARTAN3E'.
Generating RTLIL representation for module `\STARTUP_SPARTAN3A'.
Generating RTLIL representation for module `\STARTUP_SPARTAN6'.
Generating RTLIL representation for module `\STARTUP_VIRTEX4'.
Generating RTLIL representation for module `\STARTUP_VIRTEX5'.
Generating RTLIL representation for module `\STARTUP_VIRTEX6'.
Generating RTLIL representation for module `\STARTUPE2'.
Generating RTLIL representation for module `\STARTUPE3'.
Generating RTLIL representation for module `\CAPTURE_SPARTAN3'.
Generating RTLIL representation for module `\CAPTURE_SPARTAN3A'.
Generating RTLIL representation for module `\CAPTURE_VIRTEX4'.
Generating RTLIL representation for module `\CAPTURE_VIRTEX5'.
Generating RTLIL representation for module `\CAPTURE_VIRTEX6'.
Generating RTLIL representation for module `\CAPTUREE2'.
Generating RTLIL representation for module `\ICAP_SPARTAN3A'.
Generating RTLIL representation for module `\ICAP_SPARTAN6'.
Generating RTLIL representation for module `\ICAP_VIRTEX4'.
Generating RTLIL representation for module `\ICAP_VIRTEX5'.
Generating RTLIL representation for module `\ICAP_VIRTEX6'.
Generating RTLIL representation for module `\ICAPE2'.
Generating RTLIL representation for module `\ICAPE3'.
Generating RTLIL representation for module `\BSCAN_SPARTAN3'.
Generating RTLIL representation for module `\BSCAN_SPARTAN3A'.
Generating RTLIL representation for module `\BSCAN_SPARTAN6'.
Generating RTLIL representation for module `\BSCAN_VIRTEX4'.
Generating RTLIL representation for module `\BSCAN_VIRTEX5'.
Generating RTLIL representation for module `\BSCAN_VIRTEX6'.
Generating RTLIL representation for module `\BSCANE2'.
Generating RTLIL representation for module `\DNA_PORT'.
Generating RTLIL representation for module `\DNA_PORTE2'.
Generating RTLIL representation for module `\FRAME_ECC_VIRTEX4'.
Generating RTLIL representation for module `\FRAME_ECC_VIRTEX5'.
Generating RTLIL representation for module `\FRAME_ECC_VIRTEX6'.
Generating RTLIL representation for module `\FRAME_ECCE2'.
Generating RTLIL representation for module `\FRAME_ECCE3'.
Generating RTLIL representation for module `\FRAME_ECCE4'.
Generating RTLIL representation for module `\USR_ACCESS_VIRTEX4'.
Generating RTLIL representation for module `\USR_ACCESS_VIRTEX5'.
Generating RTLIL representation for module `\USR_ACCESS_VIRTEX6'.
Generating RTLIL representation for module `\USR_ACCESSE2'.
Generating RTLIL representation for module `\POST_CRC_INTERNAL'.
Generating RTLIL representation for module `\SUSPEND_SYNC'.
Generating RTLIL representation for module `\KEY_CLEAR'.
Generating RTLIL representation for module `\MASTER_JTAG'.
Generating RTLIL representation for module `\SPI_ACCESS'.
Generating RTLIL representation for module `\EFUSE_USR'.
Generating RTLIL representation for module `\SYSMON'.
Generating RTLIL representation for module `\XADC'.
Generating RTLIL representation for module `\SYSMONE1'.
Generating RTLIL representation for module `\SYSMONE4'.
Generating RTLIL representation for module `\GTPA1_DUAL'.
Generating RTLIL representation for module `\GT11_CUSTOM'.
Generating RTLIL representation for module `\GT11_DUAL'.
Generating RTLIL representation for module `\GT11CLK'.
Generating RTLIL representation for module `\GT11CLK_MGT'.
Generating RTLIL representation for module `\GTP_DUAL'.
Generating RTLIL representation for module `\GTX_DUAL'.
Generating RTLIL representation for module `\CRC32'.
Generating RTLIL representation for module `\CRC64'.
Generating RTLIL representation for module `\GTHE1_QUAD'.
Generating RTLIL representation for module `\GTXE1'.
Generating RTLIL representation for module `\IBUFDS_GTXE1'.
Generating RTLIL representation for module `\IBUFDS_GTHE1'.
Generating RTLIL representation for module `\GTHE2_CHANNEL'.
Generating RTLIL representation for module `\GTHE2_COMMON'.
Generating RTLIL representation for module `\GTPE2_CHANNEL'.
Generating RTLIL representation for module `\GTPE2_COMMON'.
Generating RTLIL representation for module `\GTXE2_CHANNEL'.
Generating RTLIL representation for module `\GTXE2_COMMON'.
Generating RTLIL representation for module `\IBUFDS_GTE2'.
Generating RTLIL representation for module `\GTHE3_CHANNEL'.
Generating RTLIL representation for module `\GTHE3_COMMON'.
Generating RTLIL representation for module `\GTYE3_CHANNEL'.
Generating RTLIL representation for module `\GTYE3_COMMON'.
Generating RTLIL representation for module `\IBUFDS_GTE3'.
Generating RTLIL representation for module `\OBUFDS_GTE3'.
Generating RTLIL representation for module `\OBUFDS_GTE3_ADV'.
Generating RTLIL representation for module `\GTHE4_CHANNEL'.
Generating RTLIL representation for module `\GTHE4_COMMON'.
Generating RTLIL representation for module `\GTYE4_CHANNEL'.
Generating RTLIL representation for module `\GTYE4_COMMON'.
Generating RTLIL representation for module `\IBUFDS_GTE4'.
Generating RTLIL representation for module `\OBUFDS_GTE4'.
Generating RTLIL representation for module `\OBUFDS_GTE4_ADV'.
Generating RTLIL representation for module `\GTM_DUAL'.
Generating RTLIL representation for module `\IBUFDS_GTM'.
Generating RTLIL representation for module `\OBUFDS_GTM'.
Generating RTLIL representation for module `\OBUFDS_GTM_ADV'.
Generating RTLIL representation for module `\HSDAC'.
Generating RTLIL representation for module `\HSADC'.
Generating RTLIL representation for module `\RFDAC'.
Generating RTLIL representation for module `\RFADC'.
Generating RTLIL representation for module `\PCIE_A1'.
Generating RTLIL representation for module `\PCIE_EP'.
Generating RTLIL representation for module `\PCIE_2_0'.
Generating RTLIL representation for module `\PCIE_2_1'.
Generating RTLIL representation for module `\PCIE_3_0'.
Generating RTLIL representation for module `\PCIE_3_1'.
Generating RTLIL representation for module `\PCIE40E4'.
Generating RTLIL representation for module `\PCIE4CE4'.
Generating RTLIL representation for module `\EMAC'.
Generating RTLIL representation for module `\TEMAC'.
Generating RTLIL representation for module `\TEMAC_SINGLE'.
Generating RTLIL representation for module `\CMAC'.
Generating RTLIL representation for module `\CMACE4'.
Generating RTLIL representation for module `\MCB'.
Generating RTLIL representation for module `\HBM_REF_CLK'.
Generating RTLIL representation for module `\HBM_SNGLBLI_INTF_APB'.
Generating RTLIL representation for module `\HBM_SNGLBLI_INTF_AXI'.
Generating RTLIL representation for module `\HBM_ONE_STACK_INTF'.
Generating RTLIL representation for module `\HBM_TWO_STACK_INTF'.
Generating RTLIL representation for module `\PPC405_ADV'.
Generating RTLIL representation for module `\PPC440'.
Generating RTLIL representation for module `\PS7'.
Generating RTLIL representation for module `\PS8'.
Generating RTLIL representation for module `\ILKN'.
Generating RTLIL representation for module `\ILKNE4'.
Generating RTLIL representation for module `\VCU'.
Generating RTLIL representation for module `\FE'.
Successfully finished Verilog frontend.

2.3. Executing HIERARCHY pass (managing design hierarchy).

2.3.1. Executing AST frontend in derive mode using pre-parsed AST for module `\blink'.
Generating RTLIL representation for module `\blink'.

2.3.2. Analyzing design hierarchy..
Top module:  \blink

2.3.3. Analyzing design hierarchy..
Top module:  \blink
Removing unused module `$abstract\blink'.
Removed 1 unused modules.

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

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

2.4.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915 in module RAM64M.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795 in module RAM32M.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1716$742 in module RAM128X1D.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1611$705 in module RAM64X1D.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1565$687 in module RAM32X1D_1.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1506$657 in module RAM32X1D.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:815$606 in module FDPE_1.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:774$603 in module FDPE.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:736$588 in module FDCE_1.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:695$585 in module FDCE.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:592$570 in module FDSE_1.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:559$566 in module FDSE.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:527$548 in module FDRE_1.
Marked 1 switch rules as full_case in process $proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:494$544 in module FDRE.
Removed a total of 0 dead cases.

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

2.4.4. Executing PROC_INIT pass (extract init attributes).
Found init rule in `\SRLC32E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2405$1044'.
  Set init value: \r = 0
Found init rule in `\SRLC16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2361$1037'.
  Set init value: \r = 16'0000000000000000
Found init rule in `\SRLC16.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2329$1030'.
  Set init value: \r = 16'0000000000000000
Found init rule in `\SRL16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2292$1027'.
  Set init value: \r = 16'0000000000000000
Found init rule in `\SRL16.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2264$1020'.
  Set init value: \r = 16'0000000000000000
Found init rule in `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1980$993'.
  Set init value: \mem_d = 64'0000000000000000000000000000000000000000000000000000000000000000
Found init rule in `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1979$992'.
  Set init value: \mem_c = 64'0000000000000000000000000000000000000000000000000000000000000000
Found init rule in `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1978$991'.
  Set init value: \mem_b = 64'0000000000000000000000000000000000000000000000000000000000000000
Found init rule in `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1977$990'.
  Set init value: \mem_a = 64'0000000000000000000000000000000000000000000000000000000000000000
Found init rule in `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1806$893'.
  Set init value: \mem_d = 64'0000000000000000000000000000000000000000000000000000000000000000
Found init rule in `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1805$892'.
  Set init value: \mem_c = 64'0000000000000000000000000000000000000000000000000000000000000000
Found init rule in `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1804$891'.
  Set init value: \mem_b = 64'0000000000000000000000000000000000000000000000000000000000000000
Found init rule in `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1803$890'.
  Set init value: \mem_a = 64'0000000000000000000000000000000000000000000000000000000000000000
Found init rule in `\RAM128X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1712$772'.
  Set init value: \mem = 128'00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Found init rule in `\RAM64X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1607$735'.
  Set init value: \mem = 64'0000000000000000000000000000000000000000000000000000000000000000
Found init rule in `\RAM32X1D_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1561$699'.
  Set init value: \mem = 0
Found init rule in `\RAM32X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1502$681'.
  Set init value: \mem = 0
Found init rule in `\FDPE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$609'.
  Set init value: \Q = 1'1
Found init rule in `\FDPE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$605'.
  Set init value: \Q = 1'1
Found init rule in `\FDCE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$591'.
  Set init value: \Q = 1'0
Found init rule in `\FDCE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$587'.
  Set init value: \Q = 1'0
Found init rule in `\FDSE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$573'.
  Set init value: \Q = 1'1
Found init rule in `\FDSE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$569'.
  Set init value: \Q = 1'1
Found init rule in `\FDRE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$551'.
  Set init value: \Q = 1'0
Found init rule in `\FDRE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$547'.
  Set init value: \Q = 1'0

2.4.5. Executing PROC_ARST pass (detect async resets in processes).
Found async reset \PRE in `\FDPE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:815$606'.
Found async reset \PRE in `\FDPE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:774$603'.
Found async reset \CLR in `\FDCE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:736$588'.
Found async reset \CLR in `\FDCE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:695$585'.

2.4.6. Executing PROC_ROM pass (convert switches to ROMs).
Converted 0 switches.
<suppressed ~22 debug messages>

2.4.7. Executing PROC_MUX pass (convert decision trees to multiplexers).
Creating decoders for process `\SRLC32E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2405$1044'.
Creating decoders for process `\SRLC32E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2413$1043'.
     1/1: $0\r[31:0]
Creating decoders for process `\SRLC16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2361$1037'.
Creating decoders for process `\SRLC16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2369$1036'.
     1/1: $0\r[15:0]
Creating decoders for process `\SRLC16.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2329$1030'.
Creating decoders for process `\SRLC16.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2332$1029'.
Creating decoders for process `\SRL16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2292$1027'.
Creating decoders for process `\SRL16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2299$1026'.
     1/1: $0\r[15:0]
Creating decoders for process `\SRL16.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2264$1020'.
Creating decoders for process `\SRL16.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2266$1019'.
Creating decoders for process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1980$993'.
Creating decoders for process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1979$992'.
Creating decoders for process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1978$991'.
Creating decoders for process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1977$990'.
Creating decoders for process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
     1/8: $1$lookahead\mem_d$914[63:0]$931
     2/8: $1$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1991$905[5:0]$927
     3/8: $1$lookahead\mem_c$913[63:0]$930
     4/8: $1$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1990$904[5:0]$926
     5/8: $1$lookahead\mem_b$912[63:0]$929
     6/8: $1$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1989$903[5:0]$925
     7/8: $1$lookahead\mem_a$911[63:0]$928
     8/8: $1$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1988$902[5:0]$924
Creating decoders for process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1806$893'.
Creating decoders for process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1805$892'.
Creating decoders for process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1804$891'.
Creating decoders for process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1803$890'.
Creating decoders for process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
     1/8: $1$lookahead\mem_d$794[63:0]$811
     2/8: $1$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1817$777[31:0]$807
     3/8: $1$lookahead\mem_c$793[63:0]$810
     4/8: $1$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1816$776[31:0]$806
     5/8: $1$lookahead\mem_b$792[63:0]$809
     6/8: $1$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1815$775[31:0]$805
     7/8: $1$lookahead\mem_a$791[63:0]$808
     8/8: $1$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1814$774[31:0]$804
Creating decoders for process `\RAM128X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1712$772'.
Creating decoders for process `\RAM128X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1716$742'.
     1/2: $1$lookahead\mem$741[127:0]$746
     2/2: $1$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1716$737[6:0]$745
Creating decoders for process `\RAM64X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1607$735'.
Creating decoders for process `\RAM64X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1611$705'.
     1/2: $1$lookahead\mem$704[63:0]$709
     2/2: $1$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1611$700[5:0]$708
Creating decoders for process `\RAM32X1D_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1561$699'.
Creating decoders for process `\RAM32X1D_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1565$687'.
     1/2: $1$lookahead\mem$686[31:0]$691
     2/2: $1$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1565$682[4:0]$690
Creating decoders for process `\RAM32X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1502$681'.
Creating decoders for process `\RAM32X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1506$657'.
     1/2: $1$lookahead\mem$656[31:0]$661
     2/2: $1$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1506$652[4:0]$660
Creating decoders for process `\FDPE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$609'.
Creating decoders for process `\FDPE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:815$606'.
     1/1: $0\Q[0:0]
Creating decoders for process `\FDPE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$605'.
Creating decoders for process `\FDPE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:774$603'.
     1/1: $0\Q[0:0]
Creating decoders for process `\FDCE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$591'.
Creating decoders for process `\FDCE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:736$588'.
     1/1: $0\Q[0:0]
Creating decoders for process `\FDCE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$587'.
Creating decoders for process `\FDCE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:695$585'.
     1/1: $0\Q[0:0]
Creating decoders for process `\FDSE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$573'.
Creating decoders for process `\FDSE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:592$570'.
     1/1: $0\Q[0:0]
Creating decoders for process `\FDSE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$569'.
Creating decoders for process `\FDSE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:559$566'.
     1/1: $0\Q[0:0]
Creating decoders for process `\FDRE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$551'.
Creating decoders for process `\FDRE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:527$548'.
     1/1: $0\Q[0:0]
Creating decoders for process `\FDRE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$547'.
Creating decoders for process `\FDRE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:494$544'.
     1/1: $0\Q[0:0]
Creating decoders for process `\blink.$proc$../src/main.v:14$1097'.
     1/2: $0\counter[31:0]
     2/2: $0\LED_status[0:0]

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

2.4.9. Executing PROC_DFF pass (convert process syncs to FFs).
Creating register for signal `\SRLC32E.\r' using process `\SRLC32E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2413$1043'.
  created $dff cell `$procdff$1211' with positive edge clock.
Creating register for signal `\SRLC16E.\r' using process `\SRLC16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2369$1036'.
  created $dff cell `$procdff$1212' with positive edge clock.
Creating register for signal `\SRLC16.\r' using process `\SRLC16.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2332$1029'.
  created $dff cell `$procdff$1213' with positive edge clock.
Creating register for signal `\SRL16E.\r' using process `\SRL16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2299$1026'.
  created $dff cell `$procdff$1214' with positive edge clock.
Creating register for signal `\SRL16.\r' using process `\SRL16.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2266$1019'.
  created $dff cell `$procdff$1215' with positive edge clock.
Creating register for signal `\RAM64M.\mem_a' using process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
  created $dff cell `$procdff$1216' with positive edge clock.
Creating register for signal `\RAM64M.\mem_b' using process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
  created $dff cell `$procdff$1217' with positive edge clock.
Creating register for signal `\RAM64M.\mem_c' using process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
  created $dff cell `$procdff$1218' with positive edge clock.
Creating register for signal `\RAM64M.\mem_d' using process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
  created $dff cell `$procdff$1219' with positive edge clock.
Creating register for signal `\RAM64M.$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1988$902' using process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
  created $dff cell `$procdff$1220' with positive edge clock.
Creating register for signal `\RAM64M.$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1989$903' using process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
  created $dff cell `$procdff$1221' with positive edge clock.
Creating register for signal `\RAM64M.$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1990$904' using process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
  created $dff cell `$procdff$1222' with positive edge clock.
Creating register for signal `\RAM64M.$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1991$905' using process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
  created $dff cell `$procdff$1223' with positive edge clock.
Creating register for signal `\RAM64M.$lookahead\mem_a$911' using process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
  created $dff cell `$procdff$1224' with positive edge clock.
Creating register for signal `\RAM64M.$lookahead\mem_b$912' using process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
  created $dff cell `$procdff$1225' with positive edge clock.
Creating register for signal `\RAM64M.$lookahead\mem_c$913' using process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
  created $dff cell `$procdff$1226' with positive edge clock.
Creating register for signal `\RAM64M.$lookahead\mem_d$914' using process `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
  created $dff cell `$procdff$1227' with positive edge clock.
Creating register for signal `\RAM32M.\mem_a' using process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
  created $dff cell `$procdff$1228' with positive edge clock.
Creating register for signal `\RAM32M.\mem_b' using process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
  created $dff cell `$procdff$1229' with positive edge clock.
Creating register for signal `\RAM32M.\mem_c' using process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
  created $dff cell `$procdff$1230' with positive edge clock.
Creating register for signal `\RAM32M.\mem_d' using process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
  created $dff cell `$procdff$1231' with positive edge clock.
Creating register for signal `\RAM32M.$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1814$774' using process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
  created $dff cell `$procdff$1232' with positive edge clock.
Creating register for signal `\RAM32M.$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1815$775' using process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
  created $dff cell `$procdff$1233' with positive edge clock.
Creating register for signal `\RAM32M.$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1816$776' using process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
  created $dff cell `$procdff$1234' with positive edge clock.
Creating register for signal `\RAM32M.$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1817$777' using process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
  created $dff cell `$procdff$1235' with positive edge clock.
Creating register for signal `\RAM32M.$lookahead\mem_a$791' using process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
  created $dff cell `$procdff$1236' with positive edge clock.
Creating register for signal `\RAM32M.$lookahead\mem_b$792' using process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
  created $dff cell `$procdff$1237' with positive edge clock.
Creating register for signal `\RAM32M.$lookahead\mem_c$793' using process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
  created $dff cell `$procdff$1238' with positive edge clock.
Creating register for signal `\RAM32M.$lookahead\mem_d$794' using process `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
  created $dff cell `$procdff$1239' with positive edge clock.
Creating register for signal `\RAM128X1D.\mem' using process `\RAM128X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1716$742'.
  created $dff cell `$procdff$1240' with positive edge clock.
Creating register for signal `\RAM128X1D.$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1716$737' using process `\RAM128X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1716$742'.
  created $dff cell `$procdff$1241' with positive edge clock.
Creating register for signal `\RAM128X1D.$lookahead\mem$741' using process `\RAM128X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1716$742'.
  created $dff cell `$procdff$1242' with positive edge clock.
Creating register for signal `\RAM64X1D.\mem' using process `\RAM64X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1611$705'.
  created $dff cell `$procdff$1243' with positive edge clock.
Creating register for signal `\RAM64X1D.$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1611$700' using process `\RAM64X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1611$705'.
  created $dff cell `$procdff$1244' with positive edge clock.
Creating register for signal `\RAM64X1D.$lookahead\mem$704' using process `\RAM64X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1611$705'.
  created $dff cell `$procdff$1245' with positive edge clock.
Creating register for signal `\RAM32X1D_1.\mem' using process `\RAM32X1D_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1565$687'.
  created $dff cell `$procdff$1246' with negative edge clock.
Creating register for signal `\RAM32X1D_1.$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1565$682' using process `\RAM32X1D_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1565$687'.
  created $dff cell `$procdff$1247' with negative edge clock.
Creating register for signal `\RAM32X1D_1.$lookahead\mem$686' using process `\RAM32X1D_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1565$687'.
  created $dff cell `$procdff$1248' with negative edge clock.
Creating register for signal `\RAM32X1D.\mem' using process `\RAM32X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1506$657'.
  created $dff cell `$procdff$1249' with positive edge clock.
Creating register for signal `\RAM32X1D.$bitselwrite$pos$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1506$652' using process `\RAM32X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1506$657'.
  created $dff cell `$procdff$1250' with positive edge clock.
Creating register for signal `\RAM32X1D.$lookahead\mem$656' using process `\RAM32X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1506$657'.
  created $dff cell `$procdff$1251' with positive edge clock.
Creating register for signal `\FDPE_1.\Q' using process `\FDPE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:815$606'.
  created $adff cell `$procdff$1252' with negative edge clock and positive level reset.
Creating register for signal `\FDPE.\Q' using process `\FDPE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:774$603'.
  created $adff cell `$procdff$1253' with positive edge clock and positive level reset.
Creating register for signal `\FDCE_1.\Q' using process `\FDCE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:736$588'.
  created $adff cell `$procdff$1254' with negative edge clock and positive level reset.
Creating register for signal `\FDCE.\Q' using process `\FDCE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:695$585'.
  created $adff cell `$procdff$1255' with positive edge clock and positive level reset.
Creating register for signal `\FDSE_1.\Q' using process `\FDSE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:592$570'.
  created $dff cell `$procdff$1256' with negative edge clock.
Creating register for signal `\FDSE.\Q' using process `\FDSE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:559$566'.
  created $dff cell `$procdff$1257' with positive edge clock.
Creating register for signal `\FDRE_1.\Q' using process `\FDRE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:527$548'.
  created $dff cell `$procdff$1258' with negative edge clock.
Creating register for signal `\FDRE.\Q' using process `\FDRE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:494$544'.
  created $dff cell `$procdff$1259' with positive edge clock.
Creating register for signal `\blink.\counter' using process `\blink.$proc$../src/main.v:14$1097'.
  created $dff cell `$procdff$1260' with positive edge clock.
Creating register for signal `\blink.\LED_status' using process `\blink.$proc$../src/main.v:14$1097'.
  created $dff cell `$procdff$1261' with positive edge clock.

2.4.10. Executing PROC_MEMWR pass (convert process memory writes to cells).

2.4.11. Executing PROC_CLEAN pass (remove empty switches from decision trees).
Removing empty process `SRLC32E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2405$1044'.
Found and cleaned up 1 empty switch in `\SRLC32E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2413$1043'.
Removing empty process `SRLC32E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2413$1043'.
Removing empty process `SRLC16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2361$1037'.
Found and cleaned up 1 empty switch in `\SRLC16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2369$1036'.
Removing empty process `SRLC16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2369$1036'.
Removing empty process `SRLC16.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2329$1030'.
Removing empty process `SRLC16.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2332$1029'.
Removing empty process `SRL16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2292$1027'.
Found and cleaned up 1 empty switch in `\SRL16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2299$1026'.
Removing empty process `SRL16E.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2299$1026'.
Removing empty process `SRL16.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2264$1020'.
Removing empty process `SRL16.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:2266$1019'.
Removing empty process `RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1980$993'.
Removing empty process `RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1979$992'.
Removing empty process `RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1978$991'.
Removing empty process `RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1977$990'.
Found and cleaned up 1 empty switch in `\RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
Removing empty process `RAM64M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1986$915'.
Removing empty process `RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1806$893'.
Removing empty process `RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1805$892'.
Removing empty process `RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1804$891'.
Removing empty process `RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1803$890'.
Found and cleaned up 1 empty switch in `\RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
Removing empty process `RAM32M.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1812$795'.
Removing empty process `RAM128X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1712$772'.
Found and cleaned up 1 empty switch in `\RAM128X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1716$742'.
Removing empty process `RAM128X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1716$742'.
Removing empty process `RAM64X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1607$735'.
Found and cleaned up 1 empty switch in `\RAM64X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1611$705'.
Removing empty process `RAM64X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1611$705'.
Removing empty process `RAM32X1D_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1561$699'.
Found and cleaned up 1 empty switch in `\RAM32X1D_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1565$687'.
Removing empty process `RAM32X1D_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1565$687'.
Removing empty process `RAM32X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1502$681'.
Found and cleaned up 1 empty switch in `\RAM32X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1506$657'.
Removing empty process `RAM32X1D.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:1506$657'.
Removing empty process `FDPE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$609'.
Found and cleaned up 1 empty switch in `\FDPE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:815$606'.
Removing empty process `FDPE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:815$606'.
Removing empty process `FDPE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$605'.
Found and cleaned up 1 empty switch in `\FDPE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:774$603'.
Removing empty process `FDPE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:774$603'.
Removing empty process `FDCE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$591'.
Found and cleaned up 1 empty switch in `\FDCE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:736$588'.
Removing empty process `FDCE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:736$588'.
Removing empty process `FDCE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$587'.
Found and cleaned up 1 empty switch in `\FDCE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:695$585'.
Removing empty process `FDCE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:695$585'.
Removing empty process `FDSE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$573'.
Found and cleaned up 2 empty switches in `\FDSE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:592$570'.
Removing empty process `FDSE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:592$570'.
Removing empty process `FDSE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$569'.
Found and cleaned up 2 empty switches in `\FDSE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:559$566'.
Removing empty process `FDSE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:559$566'.
Removing empty process `FDRE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$551'.
Found and cleaned up 2 empty switches in `\FDRE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:527$548'.
Removing empty process `FDRE_1.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:527$548'.
Removing empty process `FDRE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:0$547'.
Found and cleaned up 2 empty switches in `\FDRE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:494$544'.
Removing empty process `FDRE.$proc$C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_sim.v:494$544'.
Found and cleaned up 1 empty switch in `\blink.$proc$../src/main.v:14$1097'.
Removing empty process `blink.$proc$../src/main.v:14$1097'.
Cleaned up 22 empty switches.

2.4.12. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

2.5. Executing FLATTEN pass (flatten design).

2.6. Executing TRIBUF pass.

2.7. Executing DEMINOUT pass (demote inout ports to input or output).

2.8. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

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

2.10. Executing CHECK pass (checking for obvious problems).
Checking module blink...
Found and reported 0 problems.

2.11. Executing OPT pass (performing simple optimizations).

2.11.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

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

2.11.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
Running muxtree optimizer on module \blink..
  Creating internal representation of mux trees.
  Evaluating internal representation of mux trees.
  Analyzing evaluation results.
Removed 0 multiplexer ports.
<suppressed ~2 debug messages>

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

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

2.11.6. Executing OPT_DFF pass (perform DFF optimizations).

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

2.11.8. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

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

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

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

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

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

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

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

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

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

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

2.13. Executing OPT pass (performing simple optimizations).

2.13.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

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

2.13.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
Running muxtree optimizer on module \blink..
  Creating internal representation of mux trees.
  Evaluating internal representation of mux trees.
  Analyzing evaluation results.
Removed 0 multiplexer ports.
<suppressed ~2 debug messages>

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

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

2.13.6. Executing OPT_DFF pass (perform DFF optimizations).
Adding EN signal on $procdff$1261 ($dff) from module blink (D = $logic_not$../src/main.v:17$1100_Y, Q = \LED_status).
Adding SRST signal on $procdff$1260 ($dff) from module blink (D = $add$../src/main.v:15$1098_Y, Q = \counter, rval = 0).

2.13.7. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \blink..
Removed 2 unused cells and 2 unused wires.
<suppressed ~3 debug messages>

2.13.8. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

2.13.9. Rerunning OPT passes. (Maybe there is more to do..)

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

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

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

2.13.13. Executing OPT_DFF pass (perform DFF optimizations).

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

2.13.15. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

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

2.14. Executing WREDUCE pass (reducing word size of cells).
Removed top 6 bits (of 32) from port B of cell blink.$eq$../src/main.v:16$1099 ($eq).

2.15. Executing PEEPOPT pass (run peephole optimizers).

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

2.17. Executing MUXPACK pass ($mux cell cascades to $pmux).
Converted 0 (p)mux cells into 0 pmux cells.

2.18. Executing PMUX2SHIFTX pass.

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

2.19.1. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\cmp2lut.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\cmp2lut.v' to AST representation.
Generating RTLIL representation for module `\_90_lut_cmp_'.
Successfully finished Verilog frontend.

2.19.2. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\cmp2lcu.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\cmp2lcu.v' to AST representation.
Generating RTLIL representation for module `\_80_lcu_cmp_'.
Generating RTLIL representation for module `\$__CMP2LCU'.
Successfully finished Verilog frontend.

2.19.3. Continuing TECHMAP pass.
No more expansions possible.
<suppressed ~7 debug messages>

2.20. Executing ALUMACC pass (create $alu and $macc cells).
Extracting $alu and $macc cells in module blink:
  creating $macc model for $add$../src/main.v:15$1098 ($add).
  creating $alu model for $macc $add$../src/main.v:15$1098.
  creating $alu cell for $add$../src/main.v:15$1098: $auto$alumacc.cc:485:replace_alu$1266
  created 1 $alu and 0 $macc cells.

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

2.22. Executing OPT pass (performing simple optimizations).

2.22.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

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

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

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

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

2.22.6. Executing OPT_DFF pass (perform DFF optimizations).

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

2.22.8. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

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

2.23. Executing MEMORY pass.

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

2.23.2. Executing OPT_MEM_PRIORITY pass (removing unnecessary memory write priority relations).
Performed a total of 0 transformations.

2.23.3. Executing OPT_MEM_FEEDBACK pass (finding memory read-to-write feedback paths).

2.23.4. Executing MEMORY_BMUX2ROM pass (converting muxes to ROMs).

2.23.5. Executing MEMORY_DFF pass (merging $dff cells to $memrd).

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

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

2.23.8. Executing OPT_MEM_WIDEN pass (optimize memories where all ports are wide).
Performed a total of 0 transformations.

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

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

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

2.25. Executing MEMORY_LIBMAP pass (mapping memories to cells).

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

2.26.1. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/lutrams_xc5v_map.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/lutrams_xc5v_map.v' to AST representation.
Generating RTLIL representation for module `\$__XILINX_LUTRAM_SP_'.
Generating RTLIL representation for module `\$__XILINX_LUTRAM_DP_'.
Generating RTLIL representation for module `\$__XILINX_LUTRAM_QP_'.
Generating RTLIL representation for module `\$__XILINX_LUTRAM_OP_'.
Generating RTLIL representation for module `\$__XILINX_LUTRAM_SDP_'.
Generating RTLIL representation for module `\$__XILINX_LUTRAM_64X8SW_'.
Generating RTLIL representation for module `\$__XILINX_LUTRAM_32X16DR8_'.
Generating RTLIL representation for module `\RAM32M_REPL'.
Generating RTLIL representation for module `\RAM32M16_REPL'.
Generating RTLIL representation for module `\RAM64M_REPL'.
Generating RTLIL representation for module `\RAM64M8_REPL'.
Successfully finished Verilog frontend.

2.26.2. Continuing TECHMAP pass.
No more expansions possible.
<suppressed ~13 debug messages>

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

2.27.1. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/brams_xc6v_map.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/brams_xc6v_map.v' to AST representation.
Generating RTLIL representation for module `\$__XILINX_BLOCKRAM_TDP_'.
Generating RTLIL representation for module `\$__XILINX_BLOCKRAM_SDP_'.
Successfully finished Verilog frontend.

2.27.2. Continuing TECHMAP pass.
No more expansions possible.
<suppressed ~4 debug messages>

2.28. Executing OPT pass (performing simple optimizations).

2.28.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

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

2.28.3. Executing OPT_DFF pass (perform DFF optimizations).

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

2.28.5. Finished fast OPT passes.

2.29. Executing MEMORY_MAP pass (converting memories to logic and flip-flops).

2.30. Executing SIMPLEMAP pass (map simple cells to gate primitives).

2.31. Executing MUXCOVER pass (mapping to wider MUXes).
Covering MUX trees in module blink..
  Treeifying 0 MUXes:
    Finished treeification: Found 0 trees.
  Covering trees:

2.32. Executing OPT pass (performing simple optimizations).

2.32.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

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

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

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

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

2.32.6. Executing OPT_SHARE pass.

2.32.7. Executing OPT_DFF pass (perform DFF optimizations).

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

2.32.9. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

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

2.33. Executing XILINX_SRL pass (Xilinx shift register extraction).

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

2.34.1. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\techmap.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\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.

2.34.2. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/mux_map.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/mux_map.v' to AST representation.
Generating RTLIL representation for module `\$shiftx'.
Successfully finished Verilog frontend.

2.34.3. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/arith_map.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/arith_map.v' to AST representation.
Generating RTLIL representation for module `\_80_xilinx_lcu'.
Generating RTLIL representation for module `\_80_xilinx_alu'.
Successfully finished Verilog frontend.

2.34.4. Continuing TECHMAP pass.
Using extmapper simplemap for cells of type $eq.
Using extmapper simplemap for cells of type $logic_not.
Using template $paramod$d735c1bd8e4aaeb55e846141d44dc1e2c1104582\_80_xilinx_alu for cells of type $alu.
Using extmapper simplemap for cells of type $dffe.
Using extmapper simplemap for cells of type $sdff.
Using extmapper simplemap for cells of type $xor.
Using extmapper simplemap for cells of type $mux.
Using extmapper simplemap for cells of type $not.
Using extmapper simplemap for cells of type $pos.
No more expansions possible.
<suppressed ~106 debug messages>

2.35. Executing OPT pass (performing simple optimizations).

2.35.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.
<suppressed ~129 debug messages>

2.35.2. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\blink'.
<suppressed ~39 debug messages>
Removed a total of 13 cells.

2.35.3. Executing OPT_DFF pass (perform DFF optimizations).

2.35.4. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \blink..
Removed 20 unused cells and 23 unused wires.
<suppressed ~21 debug messages>

2.35.5. Finished fast OPT passes.

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

2.36.1. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\techmap.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\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.

2.36.2. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_map.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_map.v' to AST representation.
Generating RTLIL representation for module `\$__SHREG_'.
Generating RTLIL representation for module `\$__XILINX_SHREG_'.
Generating RTLIL representation for module `\$__XILINX_SHIFTX'.
Generating RTLIL representation for module `\_90__XILINX_SHIFTX'.
Generating RTLIL representation for module `\$_MUX_'.
Generating RTLIL representation for module `\$_MUX4_'.
Generating RTLIL representation for module `\$_MUX8_'.
Generating RTLIL representation for module `\$_MUX16_'.
Generating RTLIL representation for module `\$__XILINX_MUXF78'.
Successfully finished Verilog frontend.

2.36.3. Continuing TECHMAP pass.
No more expansions possible.
<suppressed ~81 debug messages>

2.37. Executing DFFLEGALIZE pass (convert FFs to types supported by the target).

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

2.38.1. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/ff_map.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/ff_map.v' to AST representation.
Generating RTLIL representation for module `\$_DFFE_NP0P_'.
Generating RTLIL representation for module `\$_DFFE_PP0P_'.
Generating RTLIL representation for module `\$_DFFE_NP1P_'.
Generating RTLIL representation for module `\$_DFFE_PP1P_'.
Generating RTLIL representation for module `\$_DFFSRE_NPPP_'.
Generating RTLIL representation for module `\$_DFFSRE_PPPP_'.
Generating RTLIL representation for module `\$_SDFFE_NP0P_'.
Generating RTLIL representation for module `\$_SDFFE_PP0P_'.
Generating RTLIL representation for module `\$_SDFFE_NP1P_'.
Generating RTLIL representation for module `\$_SDFFE_PP1P_'.
Generating RTLIL representation for module `\$_DLATCH_NP0_'.
Generating RTLIL representation for module `\$_DLATCH_PP0_'.
Generating RTLIL representation for module `\$_DLATCH_NP1_'.
Generating RTLIL representation for module `\$_DLATCH_PP1_'.
Generating RTLIL representation for module `\$_DLATCH_NPP_'.
Generating RTLIL representation for module `\$_DLATCH_PPP_'.
Successfully finished Verilog frontend.

2.38.2. Continuing TECHMAP pass.
Using template $paramod\$_SDFFE_PP0P_\_TECHMAP_WIREINIT_Q_=1'x for cells of type $_SDFFE_PP0P_.
No more expansions possible.
<suppressed ~62 debug messages>

2.39. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

2.40. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/abc9_model.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/abc9_model.v' to AST representation.
Generating RTLIL representation for module `$__XILINX_MUXF78'.
Successfully finished Verilog frontend.

2.41. Executing ABC9 pass.

2.41.1. Executing ABC9_OPS pass (helper functions for ABC9).

2.41.2. Executing ABC9_OPS pass (helper functions for ABC9).

2.41.3. Executing SCC pass (detecting logic loops).
Found 0 SCCs in module blink.
Found 0 SCCs.

2.41.4. Executing ABC9_OPS pass (helper functions for ABC9).

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

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

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

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

2.41.5.4. Executing PROC_INIT pass (extract init attributes).

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

2.41.5.6. Executing PROC_ROM pass (convert switches to ROMs).
Converted 0 switches.

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

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

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

2.41.5.10. Executing PROC_MEMWR pass (convert process memory writes to cells).

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

2.41.5.12. Executing OPT_EXPR pass (perform const folding).

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

2.41.6.1. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\techmap.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\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.

2.41.6.2. Continuing TECHMAP pass.
No more expansions possible.
<suppressed ~502 debug messages>

2.41.7. Executing OPT pass (performing simple optimizations).

2.41.7.1. Executing OPT_EXPR pass (perform const folding).

2.41.7.2. Executing OPT_MERGE pass (detect identical cells).
Removed a total of 0 cells.

2.41.7.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
Removed 0 multiplexer ports.

2.41.7.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
Performed a total of 0 changes.

2.41.7.5. Executing OPT_MERGE pass (detect identical cells).
Removed a total of 0 cells.

2.41.7.6. Executing OPT_DFF pass (perform DFF optimizations).

2.41.7.7. Executing OPT_CLEAN pass (remove unused cells and wires).

2.41.7.8. Executing OPT_EXPR pass (perform const folding).

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

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

2.41.8.1. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\abc9_map.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\abc9_map.v' to AST representation.
Successfully finished Verilog frontend.

2.41.8.2. Continuing TECHMAP pass.
No more expansions possible.
<suppressed ~2 debug messages>

2.41.9. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\abc9_model.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\abc9_model.v' to AST representation.
Generating RTLIL representation for module `$__ABC9_DELAY'.
Generating RTLIL representation for module `$__ABC9_SCC_BREAKER'.
Generating RTLIL representation for module `$__DFF_N__$abc9_flop'.
Generating RTLIL representation for module `$__DFF_P__$abc9_flop'.
Successfully finished Verilog frontend.

2.41.10. Executing ABC9_OPS pass (helper functions for ABC9).
<suppressed ~2 debug messages>

2.41.11. Executing ABC9_OPS pass (helper functions for ABC9).

2.41.12. Executing ABC9_OPS pass (helper functions for ABC9).
<suppressed ~2 debug messages>

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

2.41.13.1. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\techmap.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\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.

2.41.13.2. Continuing TECHMAP pass.
Using template CARRY4 for cells of type CARRY4.
Using extmapper simplemap for cells of type $or.
Using extmapper simplemap for cells of type $mux.
Using extmapper simplemap for cells of type $xor.
No more expansions possible.
<suppressed ~514 debug messages>

2.41.14. Executing OPT pass (performing simple optimizations).

2.41.14.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

2.41.14.2. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\blink'.
<suppressed ~3 debug messages>
Removed a total of 1 cells.

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

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

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

2.41.14.6. Executing OPT_DFF pass (perform DFF optimizations).

2.41.14.7. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \blink..
Removed 0 unused cells and 14 unused wires.
<suppressed ~3 debug messages>

2.41.14.8. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

2.41.14.9. Rerunning OPT passes. (Maybe there is more to do..)

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

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

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

2.41.14.13. Executing OPT_DFF pass (perform DFF optimizations).

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

2.41.14.15. Executing OPT_EXPR pass (perform const folding).
Optimizing module blink.

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

2.41.15. Executing AIGMAP pass (map logic to AIG).
Module blink: replaced 9 cells with 60 new cells, skipped 52 cells.
  replaced 3 cell types:
       1 $_OR_
       4 $_XOR_
       4 $_MUX_
  not replaced 1 cell types:
      52 $specify2

2.41.16. Executing AIGMAP pass (map logic to AIG).
Module blink: replaced 31 cells with 124 new cells, skipped 88 cells.
  replaced 1 cell types:
      31 $_OR_
  not replaced 3 cell types:
      47 $_NOT_
       8 CARRY4
      33 FDRE

2.41.16.1. Executing ABC9_OPS pass (helper functions for ABC9).

2.41.16.2. Executing ABC9_OPS pass (helper functions for ABC9).

2.41.16.3. Executing XAIGER backend.
<suppressed ~44 debug messages>
Extracted 31 AND gates and 274 wires from module `blink' to a netlist network with 34 inputs and 69 outputs.

2.41.16.4. Executing ABC9_EXE pass (technology mapping using ABC9).

2.41.16.5. Executing ABC9.
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_lut <abc-temp-dir>/input.lut 
ABC: + read_box <abc-temp-dir>/input.box 
ABC: + &read <abc-temp-dir>/input.xaig 
ABC: + &ps 
ABC: <abc-temp-dir>/input : i/o =     34/     69  and =      31  lev =    5 (   1.11)  mem = 0.00 MB  box = 8  bb = 0
ABC: + &scorr 
ABC: Warning: The network is combinational.
ABC: + &sweep 
ABC: + &dc2 
ABC: + &dch -f 
ABC: + &ps 
ABC: <abc-temp-dir>/input : i/o =     34/     69  and =      55  lev =    5 (   1.11)  mem = 0.01 MB  ch =    8  box = 8  bb = 0
ABC: + &if -W 300 -v 
ABC: K = 8. Memory (bytes): Truth =    0. Cut =   64. Obj =  120. Set =  624. CutMin = no
ABC: Node =      55.  Ch =     8.  Total mem =    0.04 MB. Peak cut mem =    0.00 MB.
ABC: P:  Del = 2151.00.  Ar =      39.0.  Edge =       44.  Cut =      404.  T =     0.00 sec
ABC: P:  Del = 2151.00.  Ar =      39.0.  Edge =       44.  Cut =      404.  T =     0.00 sec
ABC: P:  Del = 2151.00.  Ar =      33.0.  Edge =       42.  Cut =      491.  T =     0.00 sec
ABC: F:  Del = 2040.00.  Ar =      29.0.  Edge =       40.  Cut =      383.  T =     0.00 sec
ABC: A:  Del = 2040.00.  Ar =      29.0.  Edge =       40.  Cut =      275.  T =     0.00 sec
ABC: A:  Del = 2040.00.  Ar =      29.0.  Edge =       40.  Cut =      273.  T =     0.00 sec
ABC: Total time =     0.00 sec
ABC: + &write -n <abc-temp-dir>/output.aig 
ABC: + &mfs 
ABC: The network is not changed by "&mfs".
ABC: + &ps -l 
ABC: <abc-temp-dir>/input : i/o =     34/     69  and =      31  lev =    5 (   1.11)  mem = 0.00 MB  box = 8  bb = 0
ABC: Mapping (K=6)  :  lut =      9  edge =      40  lev =    3 (0.66)  levB =    8  mem = 0.00 MB
ABC: LUT = 9 : 2=0 0.0 %  3=0 0.0 %  4=6 66.7 %  5=2 22.2 %  6=1 11.1 %  Ave = 4.44
ABC: + &write -n <abc-temp-dir>/output.aig 
ABC: + time 
ABC: elapse: 0.02 seconds, total: 0.02 seconds

2.41.16.6. Executing AIGER frontend.
<suppressed ~218 debug messages>
Removed 41 unused cells and 287 unused wires.

2.41.16.7. Executing ABC9_OPS pass (helper functions for ABC9).
ABC RESULTS:              $lut cells:       11
ABC RESULTS:           \CARRY4 cells:        8
ABC RESULTS:           input signals:        3
ABC RESULTS:          output signals:       38
Removing temp directory.

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

2.41.17.1. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\abc9_unmap.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\abc9_unmap.v' to AST representation.
Generating RTLIL representation for module `\$__DFF_x__$abc9_flop'.
Generating RTLIL representation for module `\$__ABC9_SCC_BREAKER'.
Successfully finished Verilog frontend.

2.41.17.2. Continuing TECHMAP pass.
No more expansions possible.
<suppressed ~5 debug messages>
Removed 0 unused cells and 447 unused wires.

2.42. Executing XILINX_SRL pass (Xilinx shift register extraction).

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

2.43.1. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/lut_map.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/lut_map.v' to AST representation.
Generating RTLIL representation for module `\$lut'.
Successfully finished Verilog frontend.

2.43.2. Executing Verilog-2005 frontend: C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_map.v
Parsing Verilog input from `C:\PROGRA~1\RENESA~1\GOCONF~1\external\yosys\share\xilinx/cells_map.v' to AST representation.
Generating RTLIL representation for module `\$__SHREG_'.
Generating RTLIL representation for module `\$__XILINX_SHREG_'.
Generating RTLIL representation for module `\$__XILINX_MUXF78'.
Successfully finished Verilog frontend.

2.43.3. Continuing TECHMAP pass.
Using template $paramod$f9813472aa48e533b3838c6f2316dc2e78c66111\$lut for cells of type $lut.
Using template $paramod$251994398653c4cf8de320f1e306e535d5d2d624\$lut for cells of type $lut.
Using template $paramod$101238f3d8d49ab12a9b49a2f01cd503b26e9c61\$lut for cells of type $lut.
Using template $paramod$eba7de026ff587370e320127e266317dae097a89\$lut for cells of type $lut.
Using template $paramod$a5516fc31d1e552de2435200bb732b4d4ad63a9c\$lut for cells of type $lut.
Using template $paramod$658b9ed803f0d3d335616d3858b53e0a2522f1e8\$lut for cells of type $lut.
Using template $paramod$571404c0889eaf57f492cb5e37f8acb5df5852f9\$lut for cells of type $lut.
Using template $paramod$33e58adf67c6b686a154c9ce8ebbc4b04b8cabc5\$lut for cells of type $lut.
Using template $paramod\$lut\WIDTH=32'00000000000000000000000000000001\LUT=2'01 for cells of type $lut.
No more expansions possible.
<suppressed ~134 debug messages>

2.44. Executing XILINX_DFFOPT pass (optimize FF control signal usage).
Optimizing FFs in blink.

2.45. Executing OPT_LUT_INS pass (discard unused LUT inputs).
Optimizing LUTs in blink.

2.46. Executing CLKBUFMAP pass (inserting clock buffers).
Removed 0 unused cells and 27 unused wires.

2.47. Executing HIERARCHY pass (managing design hierarchy).

2.47.1. Analyzing design hierarchy..
Top module:  \blink

2.47.2. Analyzing design hierarchy..
Top module:  \blink
Removed 0 unused modules.

2.48. Printing statistics.

=== blink ===

   Number of wires:                 45
   Number of wire bits:            120
   Number of public wires:           6
   Number of public wire bits:      37
   Number of memories:               0
   Number of memory bits:            0
   Number of processes:              0
   Number of cells:                 52
     CARRY4                          8
     FDRE                           33
     INV                             2
     LUT4                            6
     LUT5                            2
     LUT6                            1

   Estimated number of LCs:          9

2.49. Executing CHECK pass (checking for obvious problems).
Checking module blink...
Found and reported 0 problems.

3. Executing Verilog backend.

3.1. Executing BMUXMAP pass.

3.2. Executing DEMUXMAP pass.
Dumping module `\blink'.

4. Executing EDIF backend.
End of script. Logfile hash: 3ac832247a
Yosys 0.37 (git sha1 a5c7f69ed, i686-w64-mingw32.static-g++ 11.4.0 -Og)
Time spent: 1% 26x read_verilog (0 sec), 1% 20x opt_expr (0 sec), ...

######################################################################11/29/25 7:31 PM > End Synthesis
######################################################################
Log

To create the bitstream, click on the Generate Bitstream button. Following is the bitstream generation log.

######################################################################11/29/25 7:33 PM > Start Place-and-Route
######################################################################
-ENABLE_BITSTREAM_OUTPUT_AXI 1
-ENABLE_BITSTREAM_OUTPUT_AXI_CRC 0
-ENABLE_HIGH_DENSITY_PACKING 1
-ENABLE_HIGH_DENSITY_IO_PACKING 0
-CLK_CONCURRENT_OPT 1
-PLACE_AND_TRIAL_ROUTE 0
-PNR_TRIAL_ITER_TOTAL 20
-MAX_ROUTE_ITER 300
-MAX_CPU 16
-TIMING_ANALYSIS_CORNER 0
Opened I/O file C:/Users/vishn/AppData/Local/Temp/WTmHALxO/config/io_spec_in.txt for reading.
Full I/O locations after placement are in I/O file PNR_IO.log
Reading file D:/Code/FPGA/Renesas/Blink/Blink/ffpga/build/netlist.edif.
Reading reference library LIB
    Reading cell GND... Reading complete.
    Reading cell VCC... Reading complete.
    Reading cell id00001... Reading complete.
    Reading cell id00002... Reading complete.
    Reading cell IBUF... Reading complete.
    Reading cell IBUFG... Reading complete.
    Reading cell OBUF... Reading complete.
    Reading cell IOBUF... Reading complete.
    Reading cell OBUFT... Reading complete.
    Reading cell BUFG... Reading complete.
    Reading cell BUFGCTRL... Reading complete.
    Reading cell BUFHCE... Reading complete.
    Reading cell INV... Reading complete.
    Reading cell LUT1... Reading complete.
    Reading cell LUT2... Reading complete.
    Reading cell LUT3... Reading complete.
    Reading cell LUT4... Reading complete.
    Reading cell LUT5... Reading complete.
    Reading cell LUT6... Reading complete.
    Reading cell LUT6_2... Reading complete.
    Reading cell id00003... Reading complete.
    Reading cell id00004... Reading complete.
    Reading cell MUXCY... Reading complete.
    Reading cell MUXF5... Reading complete.
    Reading cell MUXF6... Reading complete.
    Reading cell MUXF7... Reading complete.
    Reading cell MUXF8... Reading complete.
    Reading cell MUXF9... Reading complete.
    Reading cell XORCY... Reading complete.
    Reading cell CARRY4... Reading complete.
    Reading cell CARRY8... Reading complete.
    Reading cell ORCY... Reading complete.
    Reading cell MULT_AND... Reading complete.
    Reading cell FDRE... Reading complete.
    Reading cell FDRE_1... Reading complete.
    Reading cell FDSE... Reading complete.
    Reading cell FDSE_1... Reading complete.
    Reading cell FDRSE... Reading complete.
    Reading cell FDRSE_1... Reading complete.
    Reading cell FDCE... Reading complete.
    Reading cell FDCE_1... Reading complete.
    Reading cell FDPE... Reading complete.
    Reading cell FDPE_1... Reading complete.
    Reading cell FDCPE... Reading complete.
    Reading cell FDCPE_1... Reading complete.
    Reading cell LDCE... Reading complete.
    Reading cell LDPE... Reading complete.
    Reading cell LDCPE... Reading complete.
    Reading cell AND2B1L... Reading complete.
    Reading cell OR2L... Reading complete.
    Reading cell RAM16X1S... Reading complete.
    Reading cell RAM16X1S_1... Reading complete.
    Reading cell RAM32X1S... Reading complete.
    Reading cell RAM32X1S_1... Reading complete.
    Reading cell RAM64X1S... Reading complete.
    Reading cell RAM64X1S_1... Reading complete.
    Reading cell RAM128X1S... Reading complete.
    Reading cell RAM128X1S_1... Reading complete.
    Reading cell RAM256X1S... Reading complete.
    Reading cell RAM512X1S... Reading complete.
    Reading cell RAM16X2S... Reading complete.
    Reading cell RAM32X2S... Reading complete.
    Reading cell RAM64X2S... Reading complete.
    Reading cell RAM16X4S... Reading complete.
    Reading cell RAM32X4S... Reading complete.
    Reading cell RAM16X8S... Reading complete.
    Reading cell RAM32X8S... Reading complete.
    Reading cell RAM16X1D... Reading complete.
    Reading cell RAM16X1D_1... Reading complete.
    Reading cell RAM32X1D... Reading complete.
    Reading cell RAM32X1D_1... Reading complete.
    Reading cell RAM64X1D... Reading complete.
    Reading cell RAM64X1D_1... Reading complete.
    Reading cell RAM128X1D... Reading complete.
    Reading cell RAM256X1D... Reading complete.
    Reading cell RAM32M... Reading complete.
    Reading cell RAM32M16... Reading complete.
    Reading cell RAM64M... Reading complete.
    Reading cell RAM64M8... Reading complete.
    Reading cell RAM32X16DR8... Reading complete.
    Reading cell RAM64X8SW... Reading complete.
    Reading cell ROM16X1... Reading complete.
    Reading cell ROM32X1... Reading complete.
    Reading cell ROM64X1... Reading complete.
    Reading cell ROM128X1... Reading complete.
    Reading cell ROM256X1... Reading complete.
    Reading cell SRL16... Reading complete.
    Reading cell SRL16E... Reading complete.
    Reading cell SRLC16... Reading complete.
    Reading cell SRLC16E... Reading complete.
    Reading cell SRLC32E... Reading complete.
    Reading cell CFGLUT5... Reading complete.
    Reading cell MULT18X18... Reading complete.
    Reading cell MULT18X18S... Reading complete.
    Reading cell MULT18X18SIO... Reading complete.
    Reading cell DSP48A... Reading complete.
    Reading cell DSP48A1... Reading complete.
    Reading cell DSP48... Reading complete.
    Reading cell DSP48E1... Reading complete.
    Reading cell RAMB18E1... Reading complete.
    Reading cell RAMB36E1... Reading complete.
    Reading cell RAMB4_S1... Reading complete.
    Reading cell RAMB4_S2... Reading complete.
    Reading cell RAMB4_S4... Reading complete.
    Reading cell RAMB4_S8... Reading complete.
    Reading cell RAMB4_S16... Reading complete.
    Reading cell RAMB4_S1_S1... Reading complete.
    Reading cell RAMB4_S1_S2... Reading complete.
    Reading cell RAMB4_S1_S4... Reading complete.
    Reading cell RAMB4_S1_S8... Reading complete.
    Reading cell RAMB4_S1_S16... Reading complete.
    Reading cell RAMB4_S2_S2... Reading complete.
    Reading cell RAMB4_S2_S4... Reading complete.
    Reading cell RAMB4_S2_S8... Reading complete.
    Reading cell RAMB4_S2_S16... Reading complete.
    Reading cell RAMB4_S4_S4... Reading complete.
    Reading cell RAMB4_S4_S8... Reading complete.
    Reading cell RAMB4_S4_S16... Reading complete.
    Reading cell RAMB4_S8_S8... Reading complete.
    Reading cell RAMB4_S8_S16... Reading complete.
    Reading cell RAMB4_S16_S16... Reading complete.
    Reading cell RAMB16_S1... Reading complete.
    Reading cell RAMB16_S2... Reading complete.
    Reading cell RAMB16_S4... Reading complete.
    Reading cell RAMB16_S9... Reading complete.
    Reading cell RAMB16_S18... Reading complete.
    Reading cell RAMB16_S36... Reading complete.
    Reading cell RAMB16_S1_S1... Reading complete.
    Reading cell RAMB16_S1_S2... Reading complete.
    Reading cell RAMB16_S1_S4... Reading complete.
    Reading cell RAMB16_S1_S9... Reading complete.
    Reading cell RAMB16_S1_S18... Reading complete.
    Reading cell RAMB16_S1_S36... Reading complete.
    Reading cell RAMB16_S2_S2... Reading complete.
    Reading cell RAMB16_S2_S4... Reading complete.
    Reading cell RAMB16_S2_S9... Reading complete.
    Reading cell RAMB16_S2_S18... Reading complete.
    Reading cell RAMB16_S2_S36... Reading complete.
    Reading cell RAMB16_S4_S4... Reading complete.
    Reading cell RAMB16_S4_S9... Reading complete.
    Reading cell RAMB16_S4_S18... Reading complete.
    Reading cell RAMB16_S4_S36... Reading complete.
    Reading cell RAMB16_S9_S9... Reading complete.
    Reading cell RAMB16_S9_S18... Reading complete.
    Reading cell RAMB16_S9_S36... Reading complete.
    Reading cell RAMB16_S18_S18... Reading complete.
    Reading cell RAMB16_S18_S36... Reading complete.
    Reading cell RAMB16_S36_S36... Reading complete.
    Reading cell RAMB16BWE_S18... Reading complete.
    Reading cell RAMB16BWE_S36... Reading complete.
    Reading cell RAMB16BWE_S18_S9... Reading complete.
    Reading cell RAMB16BWE_S18_S18... Reading complete.
    Reading cell RAMB16BWE_S36_S9... Reading complete.
    Reading cell RAMB16BWE_S36_S18... Reading complete.
    Reading cell RAMB16BWE_S36_S36... Reading complete.
    Reading cell RAMB16BWER... Reading complete.
    Reading cell RAMB8BWER... Reading complete.
    Reading cell FIFO16... Reading complete.
    Reading cell RAMB16... Reading complete.
    Reading cell RAMB32_S64_ECC... Reading complete.
    Reading cell FIFO18... Reading complete.
    Reading cell FIFO18_36... Reading complete.
    Reading cell FIFO36... Reading complete.
    Reading cell FIFO36_72... Reading complete.
    Reading cell RAMB18... Reading complete.
    Reading cell RAMB36... Reading complete.
    Reading cell RAMB18SDP... Reading complete.
    Reading cell RAMB36SDP... Reading complete.
    Reading cell FIFO18E1... Reading complete.
    Reading cell FIFO36E1... Reading complete.
    Reading cell FIFO18E2... Reading complete.
    Reading cell FIFO36E2... Reading complete.
    Reading cell RAMB18E2... Reading complete.
    Reading cell RAMB36E2... Reading complete.
    Reading cell URAM288... Reading complete.
    Reading cell URAM288_BASE... Reading complete.
    Reading cell DSP48E... Reading complete.
    Reading cell DSP48E2... Reading complete.
    Reading cell FDDRCPE... Reading complete.
    Reading cell FDDRRSE... Reading complete.
    Reading cell IFDDRCPE... Reading complete.
    Reading cell IFDDRRSE... Reading complete.
    Reading cell OFDDRCPE... Reading complete.
    Reading cell OFDDRRSE... Reading complete.
    Reading cell OFDDRTCPE... Reading complete.
    Reading cell OFDDRTRSE... Reading complete.
    Reading cell IDDR2... Reading complete.
    Reading cell ODDR2... Reading complete.
    Reading cell IDDR... Reading complete.
    Reading cell IDDR_2CLK... Reading complete.
    Reading cell ODDR... Reading complete.
    Reading cell IDELAYCTRL... Reading complete.
    Reading cell IDELAY... Reading complete.
    Reading cell ISERDES... Reading complete.
    Reading cell OSERDES... Reading complete.
    Reading cell IODELAY... Reading complete.
    Reading cell ISERDES_NODELAY... Reading complete.
    Reading cell IODELAYE1... Reading complete.
    Reading cell ISERDESE1... Reading complete.
    Reading cell OSERDESE1... Reading complete.
    Reading cell IDELAYE2... Reading complete.
    Reading cell ODELAYE2... Reading complete.
    Reading cell ISERDESE2... Reading complete.
    Reading cell OSERDESE2... Reading complete.
    Reading cell PHASER_IN... Reading complete.
    Reading cell PHASER_IN_PHY... Reading complete.
    Reading cell PHASER_OUT... Reading complete.
    Reading cell PHASER_OUT_PHY... Reading complete.
    Reading cell PHASER_REF... Reading complete.
    Reading cell PHY_CONTROL... Reading complete.
    Reading cell IDDRE1... Reading complete.
    Reading cell ODDRE1... Reading complete.
    Reading cell IDELAYE3... Reading complete.
    Reading cell ODELAYE3... Reading complete.
    Reading cell ISERDESE3... Reading complete.
    Reading cell OSERDESE3... Reading complete.
    Reading cell BITSLICE_CONTROL... Reading complete.
    Reading cell RIU_OR... Reading complete.
    Reading cell RX_BITSLICE... Reading complete.
    Reading cell RXTX_BITSLICE... Reading complete.
    Reading cell TX_BITSLICE... Reading complete.
    Reading cell TX_BITSLICE_TRI... Reading complete.
    Reading cell IODELAY2... Reading complete.
    Reading cell IODRP2... Reading complete.
    Reading cell IODRP2_MCB... Reading complete.
    Reading cell ISERDES2... Reading complete.
    Reading cell OSERDES2... Reading complete.
    Reading cell IBUF_DLY_ADJ... Reading complete.
    Reading cell IBUF_IBUFDISABLE... Reading complete.
    Reading cell IBUF_INTERMDISABLE... Reading complete.
    Reading cell IBUF_ANALOG... Reading complete.
    Reading cell IBUFE3... Reading complete.
    Reading cell IBUFDS... Reading complete.
    Reading cell IBUFDS_DLY_ADJ... Reading complete.
    Reading cell IBUFDS_IBUFDISABLE... Reading complete.
    Reading cell IBUFDS_INTERMDISABLE... Reading complete.
    Reading cell IBUFDS_DIFF_OUT... Reading complete.
    Reading cell IBUFDS_DIFF_OUT_IBUFDISABLE... Reading complete.
    Reading cell IBUFDS_DIFF_OUT_INTERMDISABLE... Reading complete.
    Reading cell IBUFDSE3... Reading complete.
    Reading cell IBUFDS_DPHY... Reading complete.
    Reading cell IBUFGDS... Reading complete.
    Reading cell IBUFGDS_DIFF_OUT... Reading complete.
    Reading cell IOBUF_DCIEN... Reading complete.
    Reading cell IOBUF_INTERMDISABLE... Reading complete.
    Reading cell IOBUFE3... Reading complete.
    Reading cell IOBUFDS... Reading complete.
    Reading cell IOBUFDS_DCIEN... Reading complete.
    Reading cell IOBUFDS_INTERMDISABLE... Reading complete.
    Reading cell IOBUFDS_DIFF_OUT... Reading complete.
    Reading cell IOBUFDS_DIFF_OUT_DCIEN... Reading complete.
    Reading cell IOBUFDS_DIFF_OUT_INTERMDISABLE... Reading complete.
    Reading cell IOBUFDSE3... Reading complete.
    Reading cell OBUFDS... Reading complete.
    Reading cell OBUFDS_DPHY... Reading complete.
    Reading cell OBUFTDS... Reading complete.
    Reading cell KEEPER... Reading complete.
    Reading cell PULLDOWN... Reading complete.
    Reading cell PULLUP... Reading complete.
    Reading cell DCIRESET... Reading complete.
    Reading cell HPIO_VREF... Reading complete.
    Reading cell BUFGCE... Reading complete.
    Reading cell BUFGCE_1... Reading complete.
    Reading cell BUFGMUX... Reading complete.
    Reading cell BUFGMUX_1... Reading complete.
    Reading cell BUFGMUX_CTRL... Reading complete.
    Reading cell BUFGMUX_VIRTEX4... Reading complete.
    Reading cell BUFG_GT... Reading complete.
    Reading cell BUFG_GT_SYNC... Reading complete.
    Reading cell BUFG_PS... Reading complete.
    Reading cell BUFGCE_DIV... Reading complete.
    Reading cell BUFH... Reading complete.
    Reading cell BUFIO2... Reading complete.
    Reading cell BUFIO2_2CLK... Reading complete.
    Reading cell BUFIO2FB... Reading complete.
    Reading cell BUFPLL... Reading complete.
    Reading cell BUFPLL_MCB... Reading complete.
    Reading cell BUFIO... Reading complete.
    Reading cell BUFIODQS... Reading complete.
    Reading cell BUFR... Reading complete.
    Reading cell BUFMR... Reading complete.
    Reading cell BUFMRCE... Reading complete.
    Reading cell DCM... Reading complete.
    Reading cell DCM_SP... Reading complete.
    Reading cell DCM_CLKGEN... Reading complete.
    Reading cell DCM_ADV... Reading complete.
    Reading cell DCM_BASE... Reading complete.
    Reading cell DCM_PS... Reading complete.
    Reading cell PMCD... Reading complete.
    Reading cell PLL_ADV... Reading complete.
    Reading cell PLL_BASE... Reading complete.
    Reading cell MMCM_ADV... Reading complete.
    Reading cell MMCM_BASE... Reading complete.
    Reading cell MMCME2_ADV... Reading complete.
    Reading cell MMCME2_BASE... Reading complete.
    Reading cell PLLE2_ADV... Reading complete.
    Reading cell PLLE2_BASE... Reading complete.
    Reading cell MMCME3_ADV... Reading complete.
    Reading cell MMCME3_BASE... Reading complete.
    Reading cell PLLE3_ADV... Reading complete.
    Reading cell PLLE3_BASE... Reading complete.
    Reading cell MMCME4_ADV... Reading complete.
    Reading cell MMCME4_BASE... Reading complete.
    Reading cell PLLE4_ADV... Reading complete.
    Reading cell PLLE4_BASE... Reading complete.
    Reading cell BUFT... Reading complete.
    Reading cell IN_FIFO... Reading complete.
    Reading cell OUT_FIFO... Reading complete.
    Reading cell HARD_SYNC... Reading complete.
    Reading cell STARTUP_SPARTAN3... Reading complete.
    Reading cell STARTUP_SPARTAN3E... Reading complete.
    Reading cell STARTUP_SPARTAN3A... Reading complete.
    Reading cell STARTUP_SPARTAN6... Reading complete.
    Reading cell STARTUP_VIRTEX4... Reading complete.
    Reading cell STARTUP_VIRTEX5... Reading complete.
    Reading cell STARTUP_VIRTEX6... Reading complete.
    Reading cell STARTUPE2... Reading complete.
    Reading cell STARTUPE3... Reading complete.
    Reading cell CAPTURE_SPARTAN3... Reading complete.
    Reading cell CAPTURE_SPARTAN3A... Reading complete.
    Reading cell CAPTURE_VIRTEX4... Reading complete.
    Reading cell CAPTURE_VIRTEX5... Reading complete.
    Reading cell CAPTURE_VIRTEX6... Reading complete.
    Reading cell CAPTUREE2... Reading complete.
    Reading cell ICAP_SPARTAN3A... Reading complete.
    Reading cell ICAP_SPARTAN6... Reading complete.
    Reading cell ICAP_VIRTEX4... Reading complete.
    Reading cell ICAP_VIRTEX5... Reading complete.
    Reading cell ICAP_VIRTEX6... Reading complete.
    Reading cell ICAPE2... Reading complete.
    Reading cell ICAPE3... Reading complete.
    Reading cell BSCAN_SPARTAN3... Reading complete.
    Reading cell BSCAN_SPARTAN3A... Reading complete.
    Reading cell BSCAN_SPARTAN6... Reading complete.
    Reading cell BSCAN_VIRTEX4... Reading complete.
    Reading cell BSCAN_VIRTEX5... Reading complete.
    Reading cell BSCAN_VIRTEX6... Reading complete.
    Reading cell BSCANE2... Reading complete.
    Reading cell DNA_PORT... Reading complete.
    Reading cell DNA_PORTE2... Reading complete.
    Reading cell FRAME_ECC_VIRTEX4... Reading complete.
    Reading cell FRAME_ECC_VIRTEX5... Reading complete.
    Reading cell FRAME_ECC_VIRTEX6... Reading complete.
    Reading cell FRAME_ECCE2... Reading complete.
    Reading cell FRAME_ECCE3... Reading complete.
    Reading cell FRAME_ECCE4... Reading complete.
    Reading cell USR_ACCESS_VIRTEX4... Reading complete.
    Reading cell USR_ACCESS_VIRTEX5... Reading complete.
    Reading cell USR_ACCESS_VIRTEX6... Reading complete.
    Reading cell USR_ACCESSE2... Reading complete.
    Reading cell POST_CRC_INTERNAL... Reading complete.
    Reading cell SUSPEND_SYNC... Reading complete.
    Reading cell KEY_CLEAR... Reading complete.
    Reading cell MASTER_JTAG... Reading complete.
    Reading cell SPI_ACCESS... Reading complete.
    Reading cell EFUSE_USR... Reading complete.
    Reading cell SYSMON... Reading complete.
    Reading cell XADC... Reading complete.
    Reading cell SYSMONE1... Reading complete.
    Reading cell SYSMONE4... Reading complete.
    Reading cell GTPA1_DUAL... Reading complete.
    Reading cell GT11_CUSTOM... Reading complete.
    Reading cell GT11_DUAL... Reading complete.
    Reading cell GT11CLK... Reading complete.
    Reading cell GT11CLK_MGT... Reading complete.
    Reading cell GTP_DUAL... Reading complete.
    Reading cell GTX_DUAL... Reading complete.
    Reading cell CRC32... Reading complete.
    Reading cell CRC64... Reading complete.
    Reading cell GTHE1_QUAD... Reading complete.
    Reading cell GTXE1... Reading complete.
    Reading cell IBUFDS_GTXE1... Reading complete.
    Reading cell IBUFDS_GTHE1... Reading complete.
    Reading cell GTHE2_CHANNEL... Reading complete.
    Reading cell GTHE2_COMMON... Reading complete.
    Reading cell GTPE2_CHANNEL... Reading complete.
    Reading cell GTPE2_COMMON... Reading complete.
    Reading cell GTXE2_CHANNEL... Reading complete.
    Reading cell GTXE2_COMMON... Reading complete.
    Reading cell IBUFDS_GTE2... Reading complete.
    Reading cell GTHE3_CHANNEL... Reading complete.
    Reading cell GTHE3_COMMON... Reading complete.
    Reading cell GTYE3_CHANNEL... Reading complete.
    Reading cell GTYE3_COMMON... Reading complete.
    Reading cell IBUFDS_GTE3... Reading complete.
    Reading cell OBUFDS_GTE3... Reading complete.
    Reading cell OBUFDS_GTE3_ADV... Reading complete.
    Reading cell GTHE4_CHANNEL... Reading complete.
    Reading cell GTHE4_COMMON... Reading complete.
    Reading cell GTYE4_CHANNEL... Reading complete.
    Reading cell GTYE4_COMMON... Reading complete.
    Reading cell IBUFDS_GTE4... Reading complete.
    Reading cell OBUFDS_GTE4... Reading complete.
    Reading cell OBUFDS_GTE4_ADV... Reading complete.
    Reading cell GTM_DUAL... Reading complete.
    Reading cell IBUFDS_GTM... Reading complete.
    Reading cell OBUFDS_GTM... Reading complete.
    Reading cell OBUFDS_GTM_ADV... Reading complete.
    Reading cell HSDAC... Reading complete.
    Reading cell HSADC... Reading complete.
    Reading cell RFDAC... Reading complete.
    Reading cell RFADC... Reading complete.
    Reading cell PCIE_A1... Reading complete.
    Reading cell PCIE_EP... Reading complete.
    Reading cell PCIE_2_0... Reading complete.
    Reading cell PCIE_2_1... Reading complete.
    Reading cell PCIE_3_0... Reading complete.
    Reading cell PCIE_3_1... Reading complete.
    Reading cell PCIE40E4... Reading complete.
    Reading cell PCIE4CE4... Reading complete.
    Reading cell EMAC... Reading complete.
    Reading cell TEMAC... Reading complete.
    Reading cell TEMAC_SINGLE... Reading complete.
    Reading cell CMAC... Reading complete.
    Reading cell CMACE4... Reading complete.
    Reading cell MCB... Reading complete.
    Reading cell HBM_REF_CLK... Reading complete.
    Reading cell HBM_SNGLBLI_INTF_APB... Reading complete.
    Reading cell HBM_SNGLBLI_INTF_AXI... Reading complete.
    Reading cell HBM_ONE_STACK_INTF... Reading complete.
    Reading cell HBM_TWO_STACK_INTF... Reading complete.
    Reading cell PPC405_ADV... Reading complete.
    Reading cell PPC440... Reading complete.
    Reading cell PS7... Reading complete.
    Reading cell PS8... Reading complete.
    Reading cell ILKN... Reading complete.
    Reading cell ILKNE4... Reading complete.
    Reading cell VCU... Reading complete.
    Reading cell FE... Reading complete.
    Reading cell blink... Reading complete.
    Reading cell id00005... Reading complete.
    Reading cell id00006... Reading complete.
    Reading cell id00007... Reading complete.
    Reading cell id00008... Reading complete.
    Reading cell id00009... Reading complete.
Reading library LIB complete.
Reading design library DESIGN...
    Reading cell blink... Reading complete.
Reading library DESIGN complete.
EDIF file reading complete.
Flattening netlist for module blink...
Netlist is flattened.
Reading netlist into FPGA standard database.
Set technology node to TSMC 40nm ULP, timing analysis view to tt1p1v25c_Typical.
Default timing parameters are from 1K_T40ULP.
Merging VDD/GND signals...
Processing global GND signals...
Processing global VDD signals...
Starting redundant-FF reduction...Total 0 FFs reduced after duplicate FF reduction.
Processing RAM/FF/IO control signals...
Reducing LUTs with VDD/GND/BUF/DUP propagation...
Mapping DSPs to FPGA DSP...
Processing DSP registers...
Processing set/reset signals...
Further reducing LUTs with VDD/GND/BUF/DUP propagation...
EDIF Parser complete.


Start LUT-packing & FPGA Mapping:
Total 62 instances to pack...
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                     9.022 


Reading user I/O spec for I/O packing...
IOB OUTPUT 58: g_58_LED_obuf is a FF driving internal signals as well. Making a FF copy to pack into IOB.
Pre-LUT-packing timing:
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                     9.022 



Starting design-rule-driven LUT packing...
Net 35: clk, is a clock net.
       4 new instances packed into    2 CLBs after IO packing.
       0 new instances packed into    2 CLBs after RAM and DSP packing.
       0 new instances clustered into    0 clusters after clock synchronizer FF clustering
      71 new instances packed into   10 CLBs after carry-chain packing.
       0 new instances packed into   10 CLBs after RAM_SRL packing
Complete design-rule-driven LUT packing.

Starting CLB clustering for remaining instances...
       0 new instances clustered into    0 clusters after MUXF/ROM clustering, CLB count 10
      11 new instances clustered into   10 clusters after LUT clustering
       0 new instances packed into   10 CLBs after LUT cluster-packing
       1 new instances clustered into   11 clusters after FF clustering
Complete CLB clustering, 7 non-CLB instances skipped.
Re-computing pre-LUT-packing timing after design-rule-driven packing:
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                     9.022 


Starting timing-driven LUT packing...
       1 new instances packed into   10 CLBs after stage 1 timing-driven LUT packing
       0 new instances packed into   10 CLBs after stage 2 timing-driven LUT packing
       0 new instances packed into   10 CLBs after stage 3 timing-driven LUT packing
       0 new instances packed into   10 CLBs after stage 4 timing-driven LUT packing
       0 new instances packed into   10 CLBs after stage 5 timing-driven LUT packing
       0 new instances packed into   10 CLBs after stage 6 timing-driven LUT packing
       0 new instances packed into   10 CLBs after stage 7 connectivity-timing-driven LUT packing
      11 new instances packed into   11 CLBs after final connectivity-timing-driven LUT packing
   0 instances remain unpacked
Complete LUT packing.

Verifying packed netlist against original, unpacked netlist...
Packing verified: 1
Runtime of packing: 0:0:0(CPU time), 0:0:0(real time)


####   Resource Utilization Report   ####

    Top level module name: blink

    Resource usage:
       9 Logic 6-LUT CLBs
           36 CLB LUTs utilized (up to 4 per CLB)
                 1 of which are 6-input LUTs
                 6 of which are dual 5-input LUTs
                42 LUTs total
           33 CLB FFs utilized (up to 4 pairs per CLB)
                33 of which are LUT-FF combination
                33 FFs total
       2 I/O CLBs
            3 Output pins
            1 Output FFs utilized
       1 Clock
           Clock 0: net    35, clk, Fanout: 10 CLBs
           Total 1 unique clocks
    need 0 DSP and 1 Logic-Memory FPGA 1K Tiles.

 
####   Resource Utilization Complete   ####

Post-LUT-packing timing:
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                    25.403 


Saving packing database file...
,
async type 0
async type 0 done
,.
Resource estimation complete.

RUN_FPGA_PLACER_DONE 1 b938c04
Reading FPGA floorplan information:
FPGA Compiler FPGA-1K only support FPGA-1K Tiles...
Tile chip_x=0 chip_y=0: Logic-Memory Tile
Total tile floorplan size: chip_x=32 chip_y=32
Populating FPGA Tiles...
Tile chip_x=0 chip_y=0:
A FPGA-1K Logic-Memory Tile has:
                       184 IOBs
                       140 Logic 6-LUT CLBs
                              40 CLBs support RAM/SR
Connecting FPGA interconnect network...

### Total FPGA resources from current floorplan: ###
                       184 IOBs
                       140 Logic 6-LUT CLBs
                              40 CLBs support RAM/SR

Usage of Logic CLBs is 6.4%.
    Logic-Memory CLB for RAM/Shift-Register is 0.0%.
Usage of LUTs is 6.4%.
    dual-LUTs is 1.1%.
Usage of FF is 5.9%.
    dual-FF is 0.0%.
Usage of IO CLB is 1.1%.
Reading clock delay files...
Read clock delay file C:/Program Files/Renesas Electronics/Go Configure Software Hub/external/eda-placer/v23/sdf_dly/T40ULP/FPGA_1K_LM_TILE_flat_tt1p1v25c_Typical.combined_clk.csv
Read post-P&R SDF annotation file...
Reading delay files...
Opened L-M tile delay annotation file C:/Program Files/Renesas Electronics/Go Configure Software Hub/external/eda-placer/v23/sdf_dly/T40ULP/FPGA_1K_LM_TILE_flat_tt1p1v25c_Typical.dly...
Done.
,
async type 0
async type 0 done
,.
,
async type 0

Start 4 placement steps with up to 4 CPUs.
(1)
(3)
(0)
(2)


Min-placement step: Set up placement.
There are 13 instances. After combining instances in chains, there are 4 instances to place.
There are 43 nets in the design, 0 of which have fanout larger than 49. Average fanout is 1.77.
There is 1 clock in the design.
Resource usages:
 Type=L: Capacity=140 Utilized=9 NumInst=2. [ChainLen=1]=1 [ChainLen=8]=1
 Type=M: Capacity=40 Utilized=0 NumInst=0.
 Type=IOB: Capacity=184 Utilized=2 NumInst=2.
Min-placement step: Global placement and legalization.
Legalizing chains on CLB-L: Legalizing chains of CLB-L:  Len=8.(1|0) Len=2.(1|0) *
Improving the placement of 2 instances for resource type(s) of CLB-L CLB-M: ...........................................................................................................
Min-placement step ends: Global placement and legalization. Runtime: 0:0:10 (CPU time), 0:0:10 (real time); peak memory: 1304MB.


There are 13 instances. After combining instances in chains, there are 4 instances to place.
There are 43 nets in the design. Average fanout is 1.77.
There is 1 clock in the design.
Resource usages:
 Type=L: Capacity=140 Utilized=9 NumInst=2. [ChainLen=1]=1 [ChainLen=8]=1
 Type=M: Capacity=40 Utilized=0 NumInst=0.
 Type=IOB: Capacity=184 Utilized=2 NumInst=2.
Min-placement step: Replication (mode=1).
Min-placement step ends: Replication (mode=1). Runtime: 0:0:10 (CPU time), 0:0:10 (real time); peak memory: 1337MB.


There are 13 instances. After combining instances in chains, there are 4 instances to place.
There are 43 nets in the design. Average fanout is 1.77.
There is 1 clock in the design.
Resource usages:
 Type=L: Capacity=140 Utilized=9 NumInst=2. [ChainLen=1]=1 [ChainLen=8]=1
 Type=M: Capacity=40 Utilized=0 NumInst=0.
 Type=IOB: Capacity=184 Utilized=2 NumInst=2.
Min-placement step: Detaild placement (mode=2).
Long connection estimation: ...........
Short connection estimation: ...........
[ITER=0] WNS=-8359,M=5.179 TNS=-462031 PathNumObj=2 ***&&&&&!@
[ITER=1] WNS=-8038,M=5.019 TNS=-439057 PathNumObj=2 ***&&&&&!@
[ITER=2] WNS=-7865,M=4.932 TNS=-423305 PathNumObj=2 ***&&&&&!@
[ITER=3] WNS=-7623,M=4.811 TNS=-424623 PathNumObj=2 ***&&&&&!@
[ITER=4] WNS=-7623,M=4.811 TNS=-424623 x PathNumObj=3 ***&&&&&!@
[ITER=5] WNS=-7623,M=4.811 TNS=-424623 PathNumObj=2 ***&&&&&!@
[ITER=6] WNS=-7623,M=4.811 TNS=-424623 x PathNumObj=3 ***&&&&&!@
[ITER=7] WNS=-7623,M=4.811 TNS=-424623 PathNumObj=2 ***&&&&&!@
[ITER=8] WNS=-7623,M=4.811 TNS=-424623 x PathNumObj=3 

Placement timing:
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   103.928 


Min-placement step ends: Detaild placement (mode=2). Runtime: 0:0:10 (CPU time), 0:0:10 (real time); peak memory: 1415MB.


There are 13 instances. After combining instances in chains, there are 4 instances to place.
There are 43 nets in the design. Average fanout is 1.77.
There is 1 clock in the design.
Resource usages:
 Type=L: Capacity=140 Utilized=9 NumInst=2. [ChainLen=1]=1 [ChainLen=8]=1
 Type=M: Capacity=40 Utilized=0 NumInst=0.
 Type=IOB: Capacity=184 Utilized=2 NumInst=2.
Min-placement step: Delay and congestion estimation (fastest_delay=0 gentable=0 mode=1).
Long connection estimation: ..............
Short connection estimation: ...........
Long connection estimation: (50)w---------(60)----------(70)----------(80)----------(90)----------(100)-
Long connection estimation: (50)pxxxxxxxxx(60)xxxxxxxxxx(70)xxxxxxxxxx(80)xxxxxxxxxx(90)xxxxxxxxxx(100)x

Placement timing:
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   103.928 


Min-placement step ends: Delay and congestion estimation (fastest_delay=0 gentable=0 mode=1). Runtime: 0:0:10 (CPU time), 0:0:10 (real time); peak memory: 1374MB.



Finished all placement steps successfully (1 accepted; 3 rejected; 0 failed/aborted).


Placement timing:
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   103.928 


async type 0 done
,.

Performing FPGA hierarchical partitioning and placement:
Current partition and placement level = 0.
Current partition and placement level = 1.
Current partition and placement level = 2.
Current partition and placement level = 3.
Current partition and placement level = 4.
Current partition and placement level = 5.
Current partition and placement level = 6.
Current partition and placement level = 7.
Current partition and placement level = 8.
Current partition and placement level = 9.
Current partition and placement level = 10.
Placement success: 1
Runtime of placement: 0:0:0(CPU time), 0:0:0(real time)

,
async type 0
async type 0 done
,.
FPGA Placement complete.

Reading FPGA floorplan information:

Performing FPGA clock-tree routing and clock-skew balancing...
Clock route delay annotating...

Clock net clk latency:
TileX=0 TileY=0 maxDelay=1295 minDelay=1295
Performing FPGA detailed routing:
,
async type 0
Running router version 0.
Enabling up to 1 CPUs out of 14 CPUs supported in hardware.
Trial route iteration for maximum achievable timing:
.
Congested net count 39. Maximum congestion 4 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.011 

Routing iteration 1:
.
Congested net count 13. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
Routing iteration 2:
.
Congested net count 12. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
Routing iteration 3:
.
Congested net count 10. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
Routing iteration 4:
.
Congested net count 10. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
Routing iteration 5:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 43 seconds.
First convergence at iteration 5. Runtime: 0 seconds(CPU time), 0 seconds(real time).

Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                    93.817 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=10660 ratio=0.8849
Routing iteration 6:
.
Congested net count 12. Maximum congestion 3 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.247 

Routing iteration 7:
.
Congested net count 8. Maximum congestion 3 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 8:
.
Congested net count 7. Maximum congestion 3 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 9:
.
Congested net count 7. Maximum congestion 3 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 10:
.
Congested net count 9. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Switched to intelligent predictive routing after iteration 10
Routing iteration 11:
.
Congested net count 6. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 12:
.
Congested net count 7. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 13:
.
Congested net count 4. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 14:
.
Congested net count 4. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 15:
.
Congested net count 5. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 16:
.
Congested net count 4. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 17:
.
Congested net count 4. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 18:
.
Congested net count 4. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 19:
.
Congested net count 4. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 20:
.
Congested net count 4. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 21:
.
Congested net count 4. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 22:
.
Congested net count 4. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 23:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 24:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 25:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 43 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 26:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 27:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 28:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 29:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 30:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 31:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Switched off predictive routing after iteration 31
Routing iteration 32:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 33:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 34:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 35:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 36:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 37:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.067 

Routing iteration 38:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 39:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.633 

Routing iteration 40:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   103.875 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   103.875 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9628 ratio=0.9798
Enable high effort routing for final few critical paths...
Routing iteration 41:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 42:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 43:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.191 

Routing iteration 44:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.191 

Routing iteration 45:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 46:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 47:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.191 

Routing iteration 48:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.191 

Routing iteration 49:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 50:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 51:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.191 

Routing iteration 52:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.191 

Routing iteration 53:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 54:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 55:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.191 

Routing iteration 56:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.145 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.145 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9603 ratio=0.9823
Enable high effort routing for final few critical paths...
Routing iteration 57:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.191 

Routing iteration 58:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 59:
.
Congested net count 3. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.689 

Routing iteration 60:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.145 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.145 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9603 ratio=0.9823
Enable high effort routing for final few critical paths...
Routing iteration 61:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.208 

Routing iteration 62:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.208 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.208 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9506 ratio=0.9923
Enable high effort routing for final few critical paths...
Routing iteration 63:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.742 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.742 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9458 ratio=0.9974
Enable high effort routing for final few critical paths...
Routing iteration 64:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 65:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.297 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.297 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9589 ratio=0.9837
Enable high effort routing for final few critical paths...
Routing iteration 66:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 67:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.742 

Routing iteration 68:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.208 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.208 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9506 ratio=0.9923
Enable high effort routing for final few critical paths...
Routing iteration 69:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.742 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.742 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9458 ratio=0.9974
Enable high effort routing for final few critical paths...
Routing iteration 70:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 71:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.297 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.297 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9589 ratio=0.9837
Enable high effort routing for final few critical paths...
Routing iteration 72:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 73:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.921 

Routing iteration 74:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.145 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.145 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9603 ratio=0.9823
Enable high effort routing for final few critical paths...
Routing iteration 75:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.689 

Routing iteration 76:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 77:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.297 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.297 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9589 ratio=0.9837
Enable high effort routing for final few critical paths...
Routing iteration 78:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 79:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.921 

Routing iteration 80:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.145 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.145 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9603 ratio=0.9823
Enable high effort routing for final few critical paths...
Routing iteration 81:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   106.689 

Routing iteration 82:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 83:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.297 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.297 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9589 ratio=0.9837
Enable high effort routing for final few critical paths...
Routing iteration 84:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 85:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.742 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.742 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9458 ratio=0.9974
Enable high effort routing for final few critical paths...
Routing iteration 86:
.
Congested net count 2. Maximum congestion 2 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   107.078 

Routing iteration 87:
.
Congested net count 0. Maximum congestion 0 net per resource. Elapsed time 44 seconds.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.297 


Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   104.297 

Timing calculation complete
Timing improvement stat 0: min_worst_timing=9434 worst_timing=9589 ratio=0.9837
Enable high effort routing for final few critical paths...
Timing improvable set to 1 after 10 iterations without timing improvement, quit...

Detailed timing check and route clean-up for routed design...
.
Congested net count 0. Maximum congestion 0 net per resource.
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.742 

Timing calculation complete
Final convergence at iteration 88. Runtime: 0 seconds(CPU time), 0 seconds(real time).
Runtime of routing: 0:0:0(CPU time), 0:0:0(real time)
async type 0 done
,.

Verifying FPGA detailed routing:
      43 routed nets verified.
     104 don't route nets skipped.
Routing verified: 1

Starting FPGA Clock-Concurrent Optimization (CCopt)...
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.742 

Optimizing clock routes for top 1% of critical paths...
Clock route delay annotating...

Clock net clk latency:
TileX=0 TileY=0 maxDelay=1295 minDelay=1295
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.742 

Clock route delay annotating...

Clock net clk latency:
TileX=0 TileY=0 maxDelay=1295 minDelay=1295
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.742 


FPGA Clock-Concurrent Optimization Complete

Checking final set-up and hold-time:
         Clock        Group  Achievable Frequency(MHz)
--------------  -----------  -------------------------
           clk   <UDEF_clk>                   105.742 

FPGA Place-and-Route complete.

Starting FPGA Bitstream Generator...

,
async type 0
Starting CLB Bitstream Generation Checker...
Warning! Clock clk directly fed by port without CLKBUF.
Bitstream checker complete.
Writing FPGA_bitstream.bin...
Writing FPGA_bitstream.log...
Performing AXI generation for 1 columns, 32 wide AXI bus, 32 bits per cycle
Writing AXI bitstream to FPGA_bitstream_AXI.log
async type 0 done
,.

FPGA Bitstream Generator complete.
Bitstream generated.
FPGA Compiler Complete.
FPGA Compiler run complete. Not launching GUI.
Normal Exit
Total runtime: 0:0:44(CPU time), 0:0:44(real time)
Thank you for using FPGA P&R, press any key to exit.

######################################################################11/29/25 7:34 PM > End Place-and-Route
######################################################################
Log

The app throws a couple of warnings and it is safe to ignore them for now. The bit stream file is finally saved as a binary file in the project build directory. The file we need is called FPGA_bitstream_MCU.bin.

Renesas-Go-Configure-Software-Hub-Blink-Project-Directory-CIRCUITSTATE-Electronics-1
Renesas-Go-Configure-Software-Hub-Blink-Build-Directory-CIRCUITSTATE-Electronics-1
Renesas-Go-Configure-Software-Hub-Blink-Bitstream-Files-CIRCUITSTATE-Electronics-1

Code Explained

At first, the Verilog code will look like Python code. That is because whitespaces and indentations are used to make the Verilog code more readable. But Verilog is actually whitespace insensitive just like C/C++. The whitespaces are used only for separating the tokens. Line statements are terminated with semicolons (;). So always write code with readability in mind. The Verilog code conventions are well-explained in the Verilog Style Guide documentation by Vicharak. We will use part of it here.

Yosys (Yosys Open SYnthesis Suite) is an open-source tool for RTL synthesis. The GCSH uses Yosys to synthesize the Verilog code for the SLG47910 FPGA, and therefore we need to follow a few conventions. The statements between two * characters are called Synthesis Attributes. The main attributes are,

  • (* iopad_external_pin *) – This needs to be used for every signal that needs to be mapped to the GPIO. This the Yosys will know not to optimize it or change its name. Only use this for top level IO’s not in every module.

  • (* top *) – This is the identifier for the top module. The synthesizer will consider this module as the top module.

  • (* iopad_external_pin, clkbuf_inhibit *) – This should be used for the clk signal so that the Yosys creates a clock buffer for this signals path. Use this only in the top module.

A module in Verilog represents a real hardware block. So every code should at least a single module. A module can be created by using the module keyword and ended by the endmodule keyword. Everything inside these clauses will be considered as a module. You can also create more modules. Here, we are creating a single module called blink.

(* top *) module blink(
  (* iopad_external_pin, clkbuf_inhibit *) input clk,
  (* iopad_external_pin *) output LED,
  (* iopad_external_pin *) output LED_en,
  (* iopad_external_pin *) output clk_en
  );

// Rest of the code

endmodule 
main.v

The module can also accept arguments that are provided externally during the synthesis. Here, we have clk to accept a clock signal from the clock source, LED to drive an LED, LED_en to control when the LED should be turned on and a clk_en to enable the clock signal. These parameters are assigned with the help of the I/O Planner and passed to the module during synthesis.

Inside the module, we first define two register sets called counter and LED_status. All registers in an FPGA is implemented in the form of Flip-Flops (FF). The counter uses 32 FFs and the LED_status uses a single FF. Since these values exist in the register memory, you can think of them as variables in a software program.

  reg [31:0] counter;
  reg LED_status;
main.v

Next we will do the wirings – LED_en for enabling the GPIO controlling the LED output, clk_en for enabling the clock source. We will set both of these signals to a HIGH level indicated by 1'b1 (the 1 at the start indicates a single bit target). This is a static assignment and we won’t be changing this further. The assign keyword is used to make a connection on the interconnect fabric.

assign LED_en = 1'b1;
assign clk_en = 1'b1;
main.v

The next section is where the main logic begins. always is a keyword that is similar to an interrupt in software programming. It waits until a particular event or state is true. Since we are implementing everything in hardware, the behaviour is mostly this type. We do not have to poll to read an event. Here, the state we are waiting for is a positive edge of a clock signal on the clk input. The clk is an input that we will get from the internal oscillator. If the oscillator is running, the following block of code will be executed (more like the hardware will respond) for every positive edge.

always @ (posedge clk) begin
  counter <= counter + 1'b1;
  if (counter == 50_000_000) begin
    LED_status <= !LED_status;
    counter <= 32'b0;
  end
end
main.v

When a positive edge is detected, the counter variable (register) is incremented by 1. If the counter reaches a value of 50,000,000, we will flip the state of the LED_status variable. So if it is 1 now, we will flip it to 0. The assignment with <= is non-blocking and happens in the hardware in real-time. The counter is also reset to a 32-bit 0 (the 32 at the start of 32'b0 indicates a 32-bit target) allowing fresh counting. Both of these statements are executed at the same time and therefore, the order has no effect. At the end, we will end both the begin calls, enclosing grouped statements together.

Finally, the state of the LED pin is updated. When the LED value is 1, it is turned on and when it is 0, the LED is turned off.

assign LED = LED_status;
main.v

You can change the 50_000_000 to any other value to change the LED timing. The underscore is only used to improve readability and has no effect on the value.

Connecting to PC

When you connect the board to the computer for the first time, the red power LED will turn on. After a second, the two blue LEDs will start to blink. The MCU and the FPGA are running the test program already in them. The device enumerates multiple instances as seen in the Device Manager.

Vicharak-Shrike-Lite-on-Windows-Device-Manager-CIRCUITSTATE-Electronics-1
Shrike-Lite on Windows Device Manager

The device will also appear in the File Explorer as a USB Drive. Opening the drive will reveal two files – blink_all.bin and main.py.

Vicharak-Shrike-Lite-Opened-Drive-CIRCUITSTATE-Electronics-1
Contents of Shrike-Lite from the factory

The main.py has the following contents. This file is used by the MicroPython core running on the RP2040 when it is turned on. As you can see, the program loads the FPGA with the blink_all.bin bitstream file. This causes the FPGA to blink the LED shortly after the board is turned on.

from machine import Pin
import time
import shrike

led_pins = [4, 5, 6, 7, 8, 9, 10, 
            11, 14, 15, 16, 17, 
            18, 19, 20, 21, 22, 23, 24, 25, 26, 27,28,29]

# Initialize all pins as outputs
leds = [Pin(pin, Pin.OUT) for pin in led_pins]

shrike.reset()
shrike.flash("blink_all.bin")

while True:
    # Blink all together
    for led in leds:
        led.value(1)
    time.sleep(1)

    for led in leds:
        led.value(0)
    time.sleep(1)
main.py

Flashing the FPGA

Here, flashing means loading the FPGA SRAM with the bitstream file. Since the FPGA does not have an internal Flash memory or a mechanism to load the bitstream, we have to always rely on an extra microcontroller. The Shrike-Lite board has an RP2040 microcontroller connected to the FPGA’s SPI port. We can save the bitstream to the Flash memory of the MCU and load it to the FPGA when the MCU starts. This means, SLG47910V can only be used as a companion FPGA to a microcontroller system and not as a standalone chip.

In order to achieve this, we are going to create a PlatformIO project for the RP2040. The bitstream file is given to the RP2040 by saving it to the flash memory using LittleFS. The RP2040 then loads the FPGA with this bitstream through the SPI. We make use of the Shrike.h library provided by Vicharak to do this. The original code is an Arduino project which we converted to a PIO one. The PlatformIO project has the following configuration.

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:pico]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = pico
framework = arduino
board_build.core = earlephilhower

; reserve space for a LittleFS partition (pick size that fits your flash)
board_build.filesystem = littlefs
board_build.filesystem_size = 1m

; debug_tool = cmsis-dap
; debug_speed = 35000
; upload_protocol = cmsis-dap
; upload_protocol = picoprobe
build_type = debug

lib_deps = 
  https://github.com/vicharak-in/shrike_arduino.git
platformio.ini

Following is the main code.

#include <Arduino.h>
#include <EEPROM.h>
#include <Shrike.h>

ShrikeFlash fpga;

void setup() {
  delay (2000);
  Serial.begin (115200);
  while (!Serial) {
    delay (10);
  }

  Serial.println ("Shrike Flash Example");
  
  // Initialize the library
  if (!fpga.begin()) {
    Serial.println ("Initialization failed!");
    while (1) {
      Serial.println ("FPGA is not running!");
    }
  }
  
  // Flash the FPGA
  Serial.print ("Flashing FPGA..");
  fpga.flash ("/FPGA_bitstream_MCU.bin");
  Serial.println (" Done.");
}

void loop() {
  // Your code here
  Serial.println ("FPGA is running!");
  delay (1000);
}
main.cpp

We have to move the bitstream file to a new folder called data. You need to use the Build Filesystem Image option to build and Upload Filesystem Image option to flash. If you use the regular build and upload, it won’t work. After compiling and uploading, you should see some log coming from the microcontroller. Following is the serial monitor log.

Blink-Code-Running-on-Shrike-Lite-FPGA-MCU-Board-VS-Code-CIRCUITSTATE-Electronics-1

With that we can wrap up this tutorial. Hope you have enjoyed learning and working with an FPGA. We will publish more tutorial around the Vicharak Shrike-Lite in the future. If you have any questions, post them in the comments. Happy coding 🖥️

Share to your friends
Vishnu Mohanan

Vishnu Mohanan

Founder and CEO at CIRCUITSTATE Electronics

Articles: 107

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.