From 48154cb6f452d3bdb4da36cc267b4b6c45588dc9 Mon Sep 17 00:00:00 2001
From: Clifford Wolf
Date: Sat, 18 Jul 2015 13:10:40 +0200
Subject: Imported full dev sources
---
docs/checkerboard.png | Bin 0 -> 1083 bytes
docs/checkerboard.sh | 21 +
docs/colbuf.svg | 184 ++
docs/format.html | 151 ++
docs/index.html | 321 +++
docs/io_tile.html | 496 +++++
docs/iosp.svg | 1394 ++++++++++++
docs/logic_tile.html | 327 +++
docs/ram_tile.html | 95 +
docs/sp4h.svg | 2076 ++++++++++++++++++
docs/sp4v.svg | 3982 +++++++++++++++++++++++++++++++++
icebox/Makefile | 8 +-
icebox/icebox.py | 1249 +++++++++--
icebox/icebox_chipdb.py | 89 +-
icebox/icebox_diff.py | 36 +-
icebox/icebox_html.py | 2 +-
icebox/icebox_vlog.py | 275 ++-
icebox/iceboxdb.py | 3040 +++++++++++++++++++++++--
icefuzz/Makefile | 97 +
icefuzz/cached_io.txt | 2270 +++++++++++++++++++
icefuzz/cached_logic.txt | 4140 +++++++++++++++++++++++++++++++++++
icefuzz/cached_ramb.txt | 3586 ++++++++++++++++++++++++++++++
icefuzz/cached_ramb_8k.txt | 3575 ++++++++++++++++++++++++++++++
icefuzz/cached_ramt.txt | 3586 ++++++++++++++++++++++++++++++
icefuzz/cached_ramt_8k.txt | 3597 ++++++++++++++++++++++++++++++
icefuzz/check.sh | 50 +
icefuzz/convert_ram8k.py | 28 +
icefuzz/database.py | 140 ++
icefuzz/export.py | 13 +
icefuzz/extract.py | 60 +
icefuzz/fuzzconfig.py | 36 +
icefuzz/glbmapbits.py | 34 +
icefuzz/icecube.sh | 190 ++
icefuzz/make_binop.py | 28 +
icefuzz/make_cluster.py | 29 +
icefuzz/make_fanout.py | 29 +
icefuzz/make_fflogic.py | 54 +
icefuzz/make_gbio.py | 84 +
icefuzz/make_gbio2.py | 83 +
icefuzz/make_io.py | 61 +
icefuzz/make_iopack.py | 59 +
icefuzz/make_logic.py | 34 +
icefuzz/make_mesh.py | 29 +
icefuzz/make_pin2pin.py | 27 +
icefuzz/make_pll.py | 139 ++
icefuzz/make_prim.py | 51 +
icefuzz/make_ram40.py | 113 +
icefuzz/pinloc/pinloc-1k-tq144.sh | 33 +
icefuzz/pinloc/pinloc-8k-ct256.sh | 44 +
icefuzz/pinloc/pinlocdb.py | 46 +
icefuzz/runloop.sh | 19 +
icefuzz/tests/all_luts_ffff.bin | Bin 0 -> 32299 bytes
icefuzz/tests/bitop.pcf | 3 +
icefuzz/tests/bitop.v | 3 +
icefuzz/tests/bram.pcf | 1 +
icefuzz/tests/bram.v | 40 +
icefuzz/tests/carry.v | 8 +
icefuzz/tests/colbuf.py | 22 +
icefuzz/tests/colbuf.sh | 48 +
icefuzz/tests/colbuf_8k.sh | 52 +
icefuzz/tests/colbuf_io.sh | 38 +
icefuzz/tests/colbuf_io_8k.sh | 50 +
icefuzz/tests/colbuf_logic.sh | 29 +
icefuzz/tests/colbuf_logic_8k.sh | 29 +
icefuzz/tests/colbuf_ram.sh | 57 +
icefuzz/tests/colbuf_ram_8k.sh | 57 +
icefuzz/tests/cross_0.pcf | 17 +
icefuzz/tests/cross_0.v | 9 +
icefuzz/tests/example_hx8kboard.pcf | 9 +
icefuzz/tests/example_hx8kboard.sdc | 1 +
icefuzz/tests/example_hx8kboard.sh | 2 +
icefuzz/tests/example_hx8kboard.v | 32 +
icefuzz/tests/example_icestick.pcf | 6 +
icefuzz/tests/example_icestick.sdc | 1 +
icefuzz/tests/example_icestick.sh | 2 +
icefuzz/tests/example_icestick.v | 29 +
icefuzz/tests/icegate.pcf | 4 +
icefuzz/tests/icegate.v | 18 +
icefuzz/tests/io_glb_netwk.pcf | 10 +
icefuzz/tests/io_glb_netwk.v | 42 +
icefuzz/tests/io_latched.sh | 28 +
icefuzz/tests/io_latched.v | 23 +
icefuzz/tests/ioctrl.py | 21 +
icefuzz/tests/ioctrl.sh | 30 +
icefuzz/tests/lut_cascade.pcf | 2 +
icefuzz/tests/lut_cascade.v | 23 +
icefuzz/tests/raminits.pcf | 16 +
icefuzz/tests/raminits.v | 490 +++++
icefuzz/tests/sb_dff.v | 3 +
icefuzz/tests/sb_dffe.v | 3 +
icefuzz/tests/sb_dffer.v | 3 +
icefuzz/tests/sb_dffes.v | 3 +
icefuzz/tests/sb_dffesr.v | 3 +
icefuzz/tests/sb_dffess.v | 3 +
icefuzz/tests/sb_dffr.v | 3 +
icefuzz/tests/sb_dffs.v | 3 +
icefuzz/tests/sb_dffsr.v | 3 +
icefuzz/tests/sb_dffss.v | 3 +
icefuzz/tests/sb_gb.v | 9 +
icefuzz/tests/sb_gb_io.v | 32 +
icefuzz/tests/sb_io.pcf | 12 +
icefuzz/tests/sb_io.v | 64 +
icefuzz/tests/sb_io_negclk.pcf | 2 +
icefuzz/tests/sb_io_negclk.v | 39 +
icefuzz/tests/sb_pll40_core.v | 67 +
icefuzz/tests/sb_ram40.pcf | 4 +
icefuzz/tests/sb_ram40.v | 80 +
icefuzz/tests/sb_warmboot.v | 7 +
icefuzz/tests/test_pio.sh | 60 +
icefuzz/tests/test_pio_tb.v | 126 ++
icepack/icepack.cc | 38 +-
iceprog/iceprog.c | 89 +-
112 files changed, 37659 insertions(+), 362 deletions(-)
create mode 100644 docs/checkerboard.png
create mode 100644 docs/checkerboard.sh
create mode 100644 docs/colbuf.svg
create mode 100644 docs/format.html
create mode 100644 docs/index.html
create mode 100644 docs/io_tile.html
create mode 100644 docs/iosp.svg
create mode 100644 docs/logic_tile.html
create mode 100644 docs/ram_tile.html
create mode 100644 docs/sp4h.svg
create mode 100644 docs/sp4v.svg
create mode 100644 icefuzz/Makefile
create mode 100644 icefuzz/cached_io.txt
create mode 100644 icefuzz/cached_logic.txt
create mode 100644 icefuzz/cached_ramb.txt
create mode 100644 icefuzz/cached_ramb_8k.txt
create mode 100644 icefuzz/cached_ramt.txt
create mode 100644 icefuzz/cached_ramt_8k.txt
create mode 100644 icefuzz/check.sh
create mode 100644 icefuzz/convert_ram8k.py
create mode 100644 icefuzz/database.py
create mode 100644 icefuzz/export.py
create mode 100644 icefuzz/extract.py
create mode 100644 icefuzz/fuzzconfig.py
create mode 100644 icefuzz/glbmapbits.py
create mode 100644 icefuzz/icecube.sh
create mode 100644 icefuzz/make_binop.py
create mode 100644 icefuzz/make_cluster.py
create mode 100644 icefuzz/make_fanout.py
create mode 100644 icefuzz/make_fflogic.py
create mode 100644 icefuzz/make_gbio.py
create mode 100644 icefuzz/make_gbio2.py
create mode 100644 icefuzz/make_io.py
create mode 100644 icefuzz/make_iopack.py
create mode 100644 icefuzz/make_logic.py
create mode 100644 icefuzz/make_mesh.py
create mode 100644 icefuzz/make_pin2pin.py
create mode 100644 icefuzz/make_pll.py
create mode 100644 icefuzz/make_prim.py
create mode 100644 icefuzz/make_ram40.py
create mode 100644 icefuzz/pinloc/pinloc-1k-tq144.sh
create mode 100644 icefuzz/pinloc/pinloc-8k-ct256.sh
create mode 100644 icefuzz/pinloc/pinlocdb.py
create mode 100644 icefuzz/runloop.sh
create mode 100644 icefuzz/tests/all_luts_ffff.bin
create mode 100644 icefuzz/tests/bitop.pcf
create mode 100644 icefuzz/tests/bitop.v
create mode 100644 icefuzz/tests/bram.pcf
create mode 100644 icefuzz/tests/bram.v
create mode 100644 icefuzz/tests/carry.v
create mode 100644 icefuzz/tests/colbuf.py
create mode 100644 icefuzz/tests/colbuf.sh
create mode 100644 icefuzz/tests/colbuf_8k.sh
create mode 100644 icefuzz/tests/colbuf_io.sh
create mode 100644 icefuzz/tests/colbuf_io_8k.sh
create mode 100644 icefuzz/tests/colbuf_logic.sh
create mode 100644 icefuzz/tests/colbuf_logic_8k.sh
create mode 100644 icefuzz/tests/colbuf_ram.sh
create mode 100644 icefuzz/tests/colbuf_ram_8k.sh
create mode 100644 icefuzz/tests/cross_0.pcf
create mode 100644 icefuzz/tests/cross_0.v
create mode 100644 icefuzz/tests/example_hx8kboard.pcf
create mode 100644 icefuzz/tests/example_hx8kboard.sdc
create mode 100644 icefuzz/tests/example_hx8kboard.sh
create mode 100644 icefuzz/tests/example_hx8kboard.v
create mode 100644 icefuzz/tests/example_icestick.pcf
create mode 100644 icefuzz/tests/example_icestick.sdc
create mode 100644 icefuzz/tests/example_icestick.sh
create mode 100644 icefuzz/tests/example_icestick.v
create mode 100644 icefuzz/tests/icegate.pcf
create mode 100644 icefuzz/tests/icegate.v
create mode 100644 icefuzz/tests/io_glb_netwk.pcf
create mode 100644 icefuzz/tests/io_glb_netwk.v
create mode 100644 icefuzz/tests/io_latched.sh
create mode 100644 icefuzz/tests/io_latched.v
create mode 100644 icefuzz/tests/ioctrl.py
create mode 100644 icefuzz/tests/ioctrl.sh
create mode 100644 icefuzz/tests/lut_cascade.pcf
create mode 100644 icefuzz/tests/lut_cascade.v
create mode 100644 icefuzz/tests/raminits.pcf
create mode 100644 icefuzz/tests/raminits.v
create mode 100644 icefuzz/tests/sb_dff.v
create mode 100644 icefuzz/tests/sb_dffe.v
create mode 100644 icefuzz/tests/sb_dffer.v
create mode 100644 icefuzz/tests/sb_dffes.v
create mode 100644 icefuzz/tests/sb_dffesr.v
create mode 100644 icefuzz/tests/sb_dffess.v
create mode 100644 icefuzz/tests/sb_dffr.v
create mode 100644 icefuzz/tests/sb_dffs.v
create mode 100644 icefuzz/tests/sb_dffsr.v
create mode 100644 icefuzz/tests/sb_dffss.v
create mode 100644 icefuzz/tests/sb_gb.v
create mode 100644 icefuzz/tests/sb_gb_io.v
create mode 100644 icefuzz/tests/sb_io.pcf
create mode 100644 icefuzz/tests/sb_io.v
create mode 100644 icefuzz/tests/sb_io_negclk.pcf
create mode 100644 icefuzz/tests/sb_io_negclk.v
create mode 100644 icefuzz/tests/sb_pll40_core.v
create mode 100644 icefuzz/tests/sb_ram40.pcf
create mode 100644 icefuzz/tests/sb_ram40.v
create mode 100644 icefuzz/tests/sb_warmboot.v
create mode 100644 icefuzz/tests/test_pio.sh
create mode 100644 icefuzz/tests/test_pio_tb.v
diff --git a/docs/checkerboard.png b/docs/checkerboard.png
new file mode 100644
index 0000000..72478de
Binary files /dev/null and b/docs/checkerboard.png differ
diff --git a/docs/checkerboard.sh b/docs/checkerboard.sh
new file mode 100644
index 0000000..dd045ee
--- /dev/null
+++ b/docs/checkerboard.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+pbm_to_ppm() {
+ read line; echo "P3"
+ read line; echo "$line"; echo "2"
+ sed "s,0,x,g; s,1,y,g; s,x,$1,g; s,y,$2,g;"
+
+}
+
+../icepack/icepack -uc -B0 ../tests/example.bin | pbm_to_ppm "0 0 0" "0 0 2" > checkerboard_0.ppm
+../icepack/icepack -ucc -B0 ../tests/example.bin | pbm_to_ppm "0 0 0" "0 1 0" > checkerboard_1.ppm
+../icepack/icepack -uc -B1 ../tests/example.bin | pbm_to_ppm "0 0 0" "0 1 1" > checkerboard_2.ppm
+../icepack/icepack -ucc -B1 ../tests/example.bin | pbm_to_ppm "0 0 0" "1 0 0" > checkerboard_3.ppm
+../icepack/icepack -uc -B2 ../tests/example.bin | pbm_to_ppm "0 0 0" "1 0 1" > checkerboard_4.ppm
+../icepack/icepack -ucc -B2 ../tests/example.bin | pbm_to_ppm "0 0 0" "1 1 0" > checkerboard_5.ppm
+../icepack/icepack -uc -B3 ../tests/example.bin | pbm_to_ppm "0 0 0" "1 1 1" > checkerboard_6.ppm
+../icepack/icepack -ucc -B3 ../tests/example.bin | pbm_to_ppm "0 0 0" "0 1 0" > checkerboard_7.ppm
+
+convert -evaluate-sequence add checkerboard_[01234567].ppm checkerboard.png
+rm -f checkerboard_[01234567].ppm
+
diff --git a/docs/colbuf.svg b/docs/colbuf.svg
new file mode 100644
index 0000000..e903e19
--- /dev/null
+++ b/docs/colbuf.svg
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/format.html b/docs/format.html
new file mode 100644
index 0000000..654a75d
--- /dev/null
+++ b/docs/format.html
@@ -0,0 +1,151 @@
+Project IceStorm – Bitstream File Format Documentation
+Project IceStorm – Bitstream File Format Documentation
+
+
+Project IceStorm aims at documenting the bitstream format of Lattice iCE40
+FPGAs and providing simple tools for analyzing and creating bitstream files.
+This is work in progress.
+
+
+General Description of the File Format
+
+
+The bitstream file starts with the bytes 0xFF 0x00, followed by a sequence of
+zero-terminated comment strings, followed by 0x00 0xFF. However, there seems to be
+a bug in the Lattice "bitstream" tool that moves the terminating 0x00 0xFF a few
+bytes into the comment string in some cases.
+
+
+
+After the comment sections the token 0x7EAA997E (MSB first) starts the actual
+bit stream. The bitstream consists of one-byte commands, followed by a payload
+word, followed by an optional block of data. The MSB nibble of the command byte
+is the command opcode, the LSB nibble is the length of the command payload in
+bytes. The commands that do not require a payload are using the opcode 0, with
+the command encoded in the payload field. Note that this "payload" in this
+context refers to a single integer argument, not the blocks of data that
+follows the command in case of the CRAM and BRAM commands.
+
+
+
+The following commands are known:
+
+
+
+
+Opcode Description
+0 payload=0: CRAM Data
+ payload=3: BRAM Data
+ payload=5: Reset CRC
+ payload=6: Wakeup
+1 Set bank number
+2 CRC check
+5 Set internal oscillator frequency range
+ payload=0: low
+ payload=1: medium
+ payload=2: high
+6 Set bank width
+7 Set bank height
+8 Set bank offset
+9 payload=0: Disable warm boot
+ payload=32: Enable warm boot
+
+
+
+
+Use iceunpack -vv to display the commands as they are interpreted by the tool.
+
+
+
+Note: The format itself seems to be very flexible. At the moment it is unclear what the FPGA
+devices will do when presented with a bitstream that use the commands in a different way
+than the bitstreams generated by the lattice tools.
+
+
+Writing SRAM content
+
+
+Most bytes in the bitstream are SRAM data bytes that should be written to the various SRAM banks
+in the FPGA. The following sequence is used to program an SRAM cell:
+
+
+
+Set bank width (opcode 6)
+Set bank height (opcode 7)
+Set bank offset (opcode 8)
+Set bank number (opcode 1)
+CRAM or BRAM Data Command
+(width * height / 8) data bytes
+two zero bytes
+
+
+
+The bank width and height parameters reflect the width and height of the SRAM bank. A large SRAM can
+be written in smaller junks. In this case height parameter may be smaller and the offset parameter
+reflects the vertical start position.
+
+
+
+There are four CRAM and four BRAM banks in an iCE40 FPGA. The different devices from the family
+use different widths and heights, but the same number of banks.
+
+
+
+The CRAM banks hold the configuration bits for the FPGA fabric and hard IP blocks, the BRAM
+corresponds to the contents of the block ram resources.
+
+
+
+The ordering of the data bits is in MSB first row-major order.
+
+
+Organization of the CRAM
+
+
+
+
+The chip is organized into four quadrants. Each CRAM memory bank contains the configuration bits for one quadrant.
+The address 0 is always the corner of the quadrant, i.e. in one quadrant the bit addresses increase with the tile x/y
+coordinates, in another they increase with the tile x coordinate but decrease with the tile y coordinate, and so on.
+
+
+
+For an iCE40 1k device, that has 12 x 16 tiles (not counting the io tiles), the CRAM bank 0 is the one containing the corner tile (1 1),
+the CRAM bank 1 contains the corner tile (1 16), the CRAM bank 2 contains the corner tile (12 1) and the CRAM bank 3 contains the
+corner tile (12 16). The entire CRAM of such a device is depicted on the right (bank 0 is in the lower left corner in blue/green).
+
+
+
+The checkerboard pattern in the picture visualizes which bits are assoziated
+with which tile. The height of the configuration block is 16 for all tile
+types, but the width is different for each tile type. IO tiles have
+configurations that are 18 bits wide, LOGIC tiles are 54 bits wide, and
+RAM tiles are 42 bits wide. (Notice the two slightly smaller columns for the RAM tiles.)
+
+
+
+The IO tiles on the top and bottom of the chip use a strange permutation pattern for their bits. It can be seen in the picture that
+their columns are spread out horizontally. What cannot be seen in the picture is the columns also are not in order and the bit
+positions are vertically permutated as well. The CramIndexConverter class in icepack.cc encapsulates the calculations
+that are neccessary to convert between tile-relative bit addresses and CRAM bank-relative bit addresses.
+
+
+
+The black pixels in the image correspond to CRAM bits that are not assoziated with any IO, LOGIC or RAM tile.
+Some of them are unused, others are used by hard IPs or other global resources. The iceunpack tool reports
+such bits, when set, with the ".extra_bit bank x y " statement in the ASCII output format.
+
+
+Organization of the BRAM
+
+
+This part of the documentation has not been written yet.
+
+
+CRC Check
+
+
+The CRC is a 16 bit CRC. The (truncated) polynomial is 0x1021 (CRC-16-CCITT). The "Reset CRC" command sets
+the CRC to 0xFFFF. No zero padding is performed.
+
+
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 0000000..dbd8ba6
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,321 @@
+Project IceStorm
+Project IceStorm
+
+
+2015-05-27: We have a working fully Open Source flow with Yosys and Arachne-pnr ! Video: http://youtu.be/yUiNlmvVOq8
+2015-04-13: Complete rewrite of IceUnpack, added IcePack, some major documentation updates
+2015-03-22: First public release and short YouTube video demonstrating our work: http://youtu.be/u1ZHcSNDQMM
+
+
+What is Project IceStorm?
+
+
+Project IceStorm aims at documenting the bitstream format of Lattice iCE40
+FPGAs and providing simple tools for analyzing and creating bitstream files.
+At the moment the focus of the project is on the HX1K-TQ144 device, but
+most of the information is device-independent.
+
+
+Why the Lattice iCE40?
+
+
+It has a very minimalistic architecture with a very regular structure. There are not many
+different kinds of tiles or special function units. This makes it both ideal for
+reverse engineering and as a reference platform for general purpose FPGA tool development.
+
+
+
+Also, with the iCEstick there is
+a cheap and easy to use development platform available, which makes the part interesting
+for all kinds of projects.
+
+
+What is the Status of the Project?
+
+
+We have enough bits mapped that we can create a functional verilog model for almost all
+bitstreams generated by Lattice iCEcube2 for the iCE40 HX1K-TQ144, as long as no
+block memories or PLLs are used. (Both are fully documented, but the
+icebox_vlog.py script does not create verilog models for them yet.)
+
+
+
+Next on the TODO list: PLLs, Timing Analysis, support for HX8K chips.
+
+
+What is the Status of the Fully Open Source iCE40 Flow?
+
+
+Synthesis for iCE40 FPGAs can be done with Yosys .
+Place-and-route can be done with arachne-pnr .
+Here is an example script for implementing and programming the rot example from
+arachne-pnr (this example targets the iCEstick development board):
+
+
+yosys -p "synth_ice40 -blif rot.blif" rot.v
+arachne-pnr -d 1k -p rot.pcf rot.blif -o rot.txt
+icepack rot.txt rot.bin
+iceprog rot.bin
+
+Where are the Tools?
+
+
+Here is the current snapshot of our toolchain: icestorm-snapshot-150526.zip
+This is work under construction and highly experimental! Use at your own risk!
+
+
+
+All snapshots in reverse chronological order:
+
+
+
+
+IcePack/IceUnpack
+
+
+The iceunpack program converts an iCE40 .bin file into the IceBox ASCII format
+that has blocks of 0 and 1 for the config bits for each tile in the chip. The
+icepack program converts such an ASCII file back to an iCE40 .bin file.
+
+
+IceBox
+
+
+A python library and various tools for working with IceBox ASCII files and accessing
+the device database. For example icebox_vlog.py converts our ASCII file
+dump of a bitstream into a verilog file that implements an equivalent circuit.
+
+
+IceProg
+
+
+A small driver programm for the FTDI-based programmer used on the iCEstick and HX8K development boards.
+
+
+
+The tools are written by Clifford Wolf. IcePack/IceUnpack is based on a reference implementation provided by Mathias Lasser.
+
+
+Where is the Documentation?
+
+
+Recommended reading:
+Lattice iCE40 LP/HX Family Datasheet ,
+Lattice iCE Technology Library
+(Especially the three pages on "Architecture Overview", "PLB Blocks", "Routing", and "Clock/Control Distribution Network" in
+the Lattice iCE40 LP/HX Family Datasheet. Read that first, then come back here.)
+
+
+
+The FPGA fabric is divided into tiles. There are IO, RAM and LOGIC tiles.
+
+
+
+
+
+The iceunpack program can be used to convert the bitstream into an ASCII file
+that has a block of 0 and 1 characters for each tile. For example:
+
+
+.logic_tile 12 12
+000000000000000000000000000000000000000000000000000000
+000000000000000000000011010000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000001011000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000001000001000010101010000000000
+000000000000000000000000000101010000101010100000000000
+
+
+This bits are referred to as By [x ] in the documentation. For example, B0 is the first
+line, B0[0] the first bit in the first line, and B15[53] the last bit in the last line.
+
+
+
+The icebox_explain.py program can be used to turn this block of config bits into a description of the cell
+configuration:
+
+
+.logic_tile 12 12
+LC_7 0101010110101010 0000
+buffer local_g0_2 lutff_7/in_3
+buffer local_g1_4 lutff_7/in_0
+buffer sp12_h_r_18 local_g0_2
+buffer sp12_h_r_20 local_g1_4
+
+
+IceBox contains a database of the wires and configuration bits that can be found in iCE40 tiles. This database can be accessed
+via the IceBox Python API. But IceBox is a large hack. So it is recommended to only use the IceBox API
+to export this database into a format that fits the target application. See icebox_chipdb.py for
+an example program that does that.
+
+
+
+The recommended approach for learning how to use this documentation is to synthesize very simple circuits using
+Lattice iCEcube2, run our toolchain on the resulting bitstream files, and analyze the results using the HTML export of the database
+mentioned above. icebox_vlog.py can be used to convert the bitstream to verilog. The output file of
+this tool will also outline the signal paths in comments added to the generated verilog.
+
+
+
+For example, using the top_bitmap.bin from the following Verilog and PCF files:
+
+
+module top (input a, b, output y);
+ assign y = a & b;
+endmodule
+
+set_io a 1
+set_io b 10
+set_io y 11
+
+
+We would get something like the following icebox_explain.py output:
+
+
+$ iceunpack top_bitmap.bin top_bitmap.txt
+$ icebox_explain top_bitmap.txt
+Reading file 'top_bitmap.txt'..
+Fabric size (without IO tiles): 12 x 16
+
+.io_tile 0 10
+IOB_1 PINTYPE_0
+IOB_1 PINTYPE_3
+IOB_1 PINTYPE_4
+IoCtrl IE_0
+IoCtrl IE_1
+IoCtrl REN_0
+buffer local_g1_2 io_1/D_OUT_0
+buffer logic_op_tnr_2 local_g1_2
+
+.io_tile 0 14
+IOB_1 PINTYPE_0
+IoCtrl IE_1
+IoCtrl REN_0
+buffer io_1/D_IN_0 span4_horz_28
+
+.io_tile 0 11
+IOB_0 PINTYPE_0
+IoCtrl IE_0
+IoCtrl REN_1
+
+.logic_tile 1 11
+LC_2 0000000001010101 0000
+buffer local_g1_4 lutff_2/in_3
+buffer local_g3_1 lutff_2/in_0
+buffer neigh_op_lft_4 local_g1_4
+buffer sp4_r_v_b_41 local_g3_1
+
+.logic_tile 2 14
+routing sp4_h_l_41 sp4_v_b_4
+
+
+And something like the following icebox_vlog.py output:
+
+
+$ icebox_vlog top_bitmap.txt
+// Reading file 'top_bitmap.txt'..
+
+module chip (output io_0_10_1, input io_0_11_0, input io_0_14_1);
+
+wire io_0_10_1;
+// io_0_10_1
+// (0, 10, 'io_1/D_OUT_0')
+// (0, 10, 'io_1/PAD')
+// (0, 10, 'local_g1_2')
+// (0, 10, 'logic_op_tnr_2')
+// (0, 11, 'logic_op_rgt_2')
+// (0, 12, 'logic_op_bnr_2')
+// (1, 10, 'neigh_op_top_2')
+// (1, 11, 'lutff_2/out')
+// (1, 12, 'neigh_op_bot_2')
+// (2, 10, 'neigh_op_tnl_2')
+// (2, 11, 'neigh_op_lft_2')
+// (2, 12, 'neigh_op_bnl_2')
+
+wire io_0_11_0;
+// io_0_11_0
+// (0, 11, 'io_0/D_IN_0')
+// (0, 11, 'io_0/PAD')
+// (1, 10, 'neigh_op_tnl_0')
+// (1, 10, 'neigh_op_tnl_4')
+// (1, 11, 'local_g1_4')
+// (1, 11, 'lutff_2/in_3')
+// (1, 11, 'neigh_op_lft_0')
+// (1, 11, 'neigh_op_lft_4')
+// (1, 12, 'neigh_op_bnl_0')
+// (1, 12, 'neigh_op_bnl_4')
+
+wire io_0_14_1;
+// io_0_14_1
+// (0, 14, 'io_1/D_IN_0')
+// (0, 14, 'io_1/PAD')
+// (0, 14, 'span4_horz_28')
+// (1, 11, 'local_g3_1')
+// (1, 11, 'lutff_2/in_0')
+// (1, 11, 'sp4_r_v_b_41')
+// (1, 12, 'sp4_r_v_b_28')
+// (1, 13, 'neigh_op_tnl_2')
+// (1, 13, 'neigh_op_tnl_6')
+// (1, 13, 'sp4_r_v_b_17')
+// (1, 14, 'neigh_op_lft_2')
+// (1, 14, 'neigh_op_lft_6')
+// (1, 14, 'sp4_h_r_41')
+// (1, 14, 'sp4_r_v_b_4')
+// (1, 15, 'neigh_op_bnl_2')
+// (1, 15, 'neigh_op_bnl_6')
+// (2, 10, 'sp4_v_t_41')
+// (2, 11, 'sp4_v_b_41')
+// (2, 12, 'sp4_v_b_28')
+// (2, 13, 'sp4_v_b_17')
+// (2, 14, 'sp4_h_l_41')
+// (2, 14, 'sp4_v_b_4')
+
+assign io_0_10_1 = /* LUT 1 11 2 */ io_0_11_0 ? io_0_14_1 : 0;
+
+endmodule
+
+
+
+
+
+
+In papers and reports, please refer to Project IceStorm as follows: Clifford Wolf, Mathias Lasser. Project IceStorm. http://www.clifford.at/icestorm/,
+e.g. using the following BibTeX code:
+
+
+@MISC{IceStorm,
+ author = {Clifford Wolf and Mathias Lasser},
+ title = {Project IceStorm},
+ howpublished = "\url{http://www.clifford.at/icestorm/}"
+}
+
+
+
+
+
+
+Documentation mostly by Clifford Wolf <clifford@clifford.at> in 2015. Based on research by Mathias Lasser and Clifford Wolf.
+Buy an iCEstick from Lattice and see what you can do with the information provided here. Buy a few because you might break some..
+
diff --git a/docs/io_tile.html b/docs/io_tile.html
new file mode 100644
index 0000000..0324ac8
--- /dev/null
+++ b/docs/io_tile.html
@@ -0,0 +1,496 @@
+Project IceStorm – IO Tile Documentation
+Project IceStorm – IO Tile Documentation
+
+
+Project IceStorm aims at documenting the bitstream format of Lattice iCE40
+FPGAs and providing simple tools for analyzing and creating bitstream files.
+This is work in progress.
+
+
+Span-4 and Span-12 Wires
+
+
+
+
+The image on the right shows the span-wires of a left (or right) io cell (click to enlarge).
+
+
+
+A left/right io cell has 16 connections named span4_vert_t_0 to span4_vert_t_15 on its top edge and
+16 connections named span4_vert_b_0 to span4_vert_b_15 on its bottom edge. The nets span4_vert_t_0
+to span4_vert_t_11 are connected to span4_vert_b_4 to span4_vert_b_15 . The span-4 and span-12 wires
+of the adjacent logic cell are connected to the nets span4_horz_0 to span4_horz_47 and span12_horz_0
+to span12_horz_23 .
+
+
+
+A top/bottom io cell has 16 connections named span4_vert_l_0 to span4_vert_l_15 on its top edge and
+16 connections named span4_vert_r_0 to span4_vert_r_15 on its bottom edge. The nets span4_vert_l_0
+to span4_vert_l_11 are connected to span4_vert_r_4 to span4_vert_r_15 . The span-4 and span-12 wires
+of the adjacent logic cell are connected to the nets span4_vert_0 to span4_vert_47 and span12_vert_0
+to span12_vert_23 .
+
+
+
+The vertical span4 wires of left/right io cells are connected "around the corner" to the horizontal span4 wires of the top/bottom
+io cells. For example span4_vert_b_0 of IO cell (0 1) is connected to span4_horz_l_0 (span4_horz_r_4 )
+of IO cell (1 0).
+
+
+
+Note that unlike the span-wires connection LOGIC and RAM tiles, the span-wires
+connecting IO tiles to each other are not pairwised crossed out.
+
+
+IO Blocks
+
+
+Each IO tile contains two IO blocks. Each IO block essentially implements the SB_IO
+primitive from the Lattice iCE Technology Library .
+Some inputs are shared between the two IO blocks. The following table lists how the
+wires in the logic tile map to the SB_IO primitive ports:
+
+
+
+
+SB_IO Port IO Block 0 IO Block 1
+D_IN_0 io_0/D_IN_0 io_1/D_IN_0
+D_IN_1 io_0/D_IN_1 io_1/D_IN_1
+D_OUT_0 io_0/D_OUT_0 io_1/D_OUT_0
+D_OUT_1 io_0/D_OUT_1 io_1/D_OUT_1
+OUTPUT_ENABLE io_0/OUT_ENB io_1/OUT_ENB
+CLOCK_ENABLE io_global/cen
+INPUT_CLK io_global/inclk
+OUTPUT_CLK io_global/outclk
+LATCH_INPUT_VALUE io_global/latch
+
+
+
+
+Like the inputs to logic cells, the inputs to IO blocks are routed to the IO block via a two-stage process. A signal
+is first routed to one of 16 local tracks in the IO tile and then from the local track to the IO block.
+
+
+
+The io_global/latch signal is shared among all IO tiles on an edge of the chip and is driven by wire_gbuf/in
+from one dedicated IO tile on that edge. For the HX1K chips the tiles driving the io_global/latch signal are:
+(0, 7), (13, 10), (5, 0), and (8, 17)
+
+
+
+A logic tile sends the output of its eight logic cells to its neighbour tiles. An IO tile does the same thing with the four D_IN
+signals created by its two IO blocks. The D_IN signals map to logic function indices as follows:
+
+
+
+
+Function Index D_IN Wire
+0 io_0/D_IN_0
+1 io_0/D_IN_1
+2 io_1/D_IN_0
+3 io_1/D_IN_1
+4 io_0/D_IN_0
+5 io_0/D_IN_1
+6 io_1/D_IN_0
+7 io_1/D_IN_1
+
+
+
+
+For example the signal io_1/D_IN_0 in IO tile (0, 5) can be seen as neigh_op_lft_2 and neigh_op_lft_6 in LOGIC tile (1, 5).
+
+
+
+Each IO Tile has 2 NegClk configuration bits, suggesting that the
+clock signals can be inverted independently for the the two IO blocks in the
+tile. However, the Lattice tools refuse to pack to IO blocks with different block
+polarity into the same IO tile. In our tests we only managed to either set or clear
+both NegClk bits.
+
+
+
+Each IO block has two IoCtrl IE bits that enable the input buffers and
+two IoCtrl REN bits that enable the pull up resistors. Both bits are active
+low, i.e. an unused IO tile will have both IE bits set and both REN bits cleared (the
+default behavior is to enable pullup resistors on all unused pins). Note that
+icebox_explain.py will ignore all IO tiles that only have the two IoCtrl
+IE bits set.
+
+
+
+However, the IoCtrl IE_0/IE_1 and IoCtrl REN_0/REN_1 do not
+necessarily configure the IO PIN that are connected to the IO block in the same tile,
+and if they do the numbers (0/1) do not necessarily match. As a general rule, the pins
+on the right and bottom side of the chips match up with the IO blocks and for the pins
+on the left and top side the numbers must be swapped. But in some cases the IO block
+and the set of IE/REN are not even located in the same tile. The following
+table lists the correlation between IO blocks and IE/REN bits for the
+1K chip:
+
+
+
+
+
+
+
+IO Block IE/REN Block
+0 14 1 0 14 0
+0 14 0 0 14 1
+0 13 1 0 13 0
+0 13 0 0 13 1
+0 12 1 0 12 0
+0 12 0 0 12 1
+0 11 1 0 11 0
+0 11 0 0 11 1
+0 10 1 0 10 0
+0 10 0 0 10 1
+0 9 1 0 9 0
+0 9 0 0 9 1
+0 8 1 0 8 0
+0 8 0 0 8 1
+0 6 1 0 6 0
+0 6 0 0 6 1
+0 5 1 0 5 0
+0 5 0 0 5 1
+0 4 1 0 4 0
+0 4 0 0 4 1
+0 3 1 0 3 0
+0 3 0 0 3 1
+0 2 1 0 2 0
+0 2 0 0 2 1
+
+
+
+
+
+IO Block IE/REN Block
+ 1 0 0 1 0 0
+ 1 0 1 1 0 1
+ 2 0 0 2 0 0
+ 2 0 1 2 0 1
+ 3 0 0 3 0 0
+ 3 0 1 3 0 1
+ 4 0 0 4 0 0
+ 4 0 1 4 0 1
+ 5 0 0 5 0 0
+ 5 0 1 5 0 1
+ 6 0 1 6 0 0
+ 7 0 0 6 0 1
+ 6 0 0 7 0 0
+ 7 0 1 7 0 1
+ 8 0 0 8 0 0
+ 8 0 1 8 0 1
+ 9 0 0 9 0 0
+ 9 0 1 9 0 1
+10 0 0 10 0 0
+10 0 1 10 0 1
+11 0 0 11 0 0
+11 0 1 11 0 1
+12 0 0 12 0 0
+12 0 1 12 0 1
+
+
+
+
+
+IO Block IE/REN Block
+13 1 0 13 1 0
+13 1 1 13 1 1
+13 2 0 13 2 0
+13 2 1 13 2 1
+13 3 1 13 3 1
+13 4 0 13 4 0
+13 4 1 13 4 1
+13 6 0 13 6 0
+13 6 1 13 6 1
+13 7 0 13 7 0
+13 7 1 13 7 1
+13 8 0 13 8 0
+13 8 1 13 8 1
+13 9 0 13 9 0
+13 9 1 13 9 1
+13 11 0 13 10 0
+13 11 1 13 10 1
+13 12 0 13 11 0
+13 12 1 13 11 1
+13 13 0 13 13 0
+13 13 1 13 13 1
+13 14 0 13 14 0
+13 14 1 13 14 1
+13 15 0 13 15 0
+13 15 1 13 15 1
+
+
+
+
+
+IO Block IE/REN Block
+12 17 1 12 17 1
+12 17 0 12 17 0
+11 17 1 11 17 1
+11 17 0 11 17 0
+10 17 1 9 17 1
+10 17 0 9 17 0
+ 9 17 1 10 17 1
+ 9 17 0 10 17 0
+ 8 17 1 8 17 1
+ 8 17 0 8 17 0
+ 7 17 1 7 17 1
+ 7 17 0 7 17 0
+ 6 17 1 6 17 1
+ 5 17 1 5 17 1
+ 5 17 0 5 17 0
+ 4 17 1 4 17 1
+ 4 17 0 4 17 0
+ 3 17 1 3 17 1
+ 3 17 0 3 17 0
+ 2 17 1 2 17 1
+ 2 17 0 2 17 0
+ 1 17 1 1 17 1
+ 1 17 0 1 17 0
+
+
+
+
+
+
+When an input pin pair is used as LVDS pair (IO standard
+SB_LVDS_INPUT , bank 3 / left edge only), then the four bits
+IoCtrl IE_0/IE_1 and IoCtrl REN_0/REN_1 are all set, as well
+as the IoCtrl LVDS bit.
+
+
+
+In the iCE 8k devices the IoCtrl IE bits are active high. So an unused
+IO tile on an 8k chip has all bits cleared.
+
+
+Global Nets
+
+
+iCE40 FPGAs have 8 global nets. Each global net can be driven directly from an
+IO pin. In the FPGA bitstream, routing of external signals to global nets is
+not controlled by bits in the IO tile. Instead bits that do not belong to any
+tile are used. In IceBox nomenclature such bits are called "extra bits".
+
+
+
+The following table lists which pins / IO blocks may be used to drive
+which global net, and what .extra statements in the IceBox ASCII file
+format to represent the corresponding configuration bits:
+
+
+
+
+
+Glb Net Pin (HX1K-TQ144) IO Tile + Block # IceBox Statement
+0 93 13 8 1 .extra_bit 0 330 142
+1 21 0 8 1 .extra_bit 0 331 142
+2 128 7 17 0 .extra_bit 1 330 143
+3 50 7 0 0 .extra_bit 1 331 143
+4 20 0 9 0 .extra_bit 1 330 142
+5 94 13 9 0 .extra_bit 1 331 142
+6 49 6 0 1 .extra_bit 0 330 143
+7 129 6 17 1 .extra_bit 0 331 143
+
+
+
+
+Signals internal to the FPGA can also be routed to the global nets. This is done by routing the signal
+to the wire_gbuf/in net on an IO tile. The same set of I/O tiles is used for this, but in this
+case each of the I/O tiles corresponds to a different global net:
+
+
+
+
+Glb Net
+0
+1
+2
+3
+4
+5
+6
+7
+IO Tile
+ 7 0
+ 7 17
+13 9
+ 0 9
+ 6 17
+ 6 0
+ 0 8
+13 8
+
+
+
+
+
+Column Buffer Control Bits
+
+
+Each LOGIC, IO, and RAMB tile has 8 ColBufCtrl bits, one for each global net. In most tiles this
+bits have no function, but in tiles in rows 4, 5, 12, and 13 (for RAM columns: rows 3, 5, 11, and 13) this bits
+control which global nets are driven to the column of tiles below and/or above that tile (including that tile),
+as illustrated in the image to the right (click to enlarge).
+
+
+
+In 8k chips the rows 8, 9, 24, and 25 contain the column buffers. 8k RAMB and
+RAMT tiles can control column buffers, so the pattern looks the same for RAM, LOGIC, and
+IO columns.
+
+
+Warmboot
+
+
+The SB_WARMBOOT primitive in iCE40 FPGAs has three inputs and no outputs. The three inputs of that cell
+are driven by the wire_gbuf/in signal from three IO tiles. In HX1K chips the tiles connected to the
+SB_WARMBOOT primitive are:
+
+
+
+
+Warmboot Pin IO Tile
+BOOT 12 0
+S0 13 1
+S1 13 2
+
+
+
+PLL Cores
+
+
+The PLL primitives in iCE40 FPGAs are configured using the PLLCONFIG_*
+bits in the IO tiles. The configuration for a single PLL cell is spread out
+over many IO tiles. For example, the PLL cell in the 1K chip are configured as
+follows (bits listed from LSB to MSB):
+
+
+
+
+
+
+IO Tile Config Bit SB_PLL40_* Parameter
+
+0 3 PLLCONFIG_5 Select PLL Type:
+000 = DISABLED
+010 = SB_PLL40_PAD
+100 = SB_PLL40_2_PAD
+110 = SB_PLL40_2F_PAD
+011 = SB_PLL40_CORE
+111 = SB_PLL40_2F_CORE
+0 5 PLLCONFIG_1
+0 5 PLLCONFIG_3
+
+0 5 PLLCONFIG_5 FEEDBACK_PATH
+000 = "DELAY"
+001 = "SIMPLE"
+010 = "PHASE_AND_DELAY"
+110 = "EXTERNAL"
+0 2 PLLCONFIG_9
+0 3 PLLCONFIG_1
+
+0 4 PLLCONFIG_4 DELAY_ADJUSTMENT_MODE_FEEDBACK
+0 = "FIXED"
+1 = "DYNAMIC"
+
+0 4 PLLCONFIG_9 DELAY_ADJUSTMENT_MODE_RELATIVE
+0 = "FIXED"
+1 = "DYNAMIC"
+
+0 3 PLLCONFIG_6 PLLOUT_SELECT PLLOUT_SELECT_PORTA
+00 = "GENCLK"
+01 = "GENCLK_HALF"
+10 = "SHIFTREG_90deg"
+11 = "SHIFTREG_0deg"
+0 3 PLLCONFIG_7
+
+0 3 PLLCONFIG_2 PLLOUT_SELECT_PORTB
+00 = "GENCLK"
+01 = "GENCLK_HALF"
+10 = "SHIFTREG_90deg"
+11 = "SHIFTREG_0deg"
+0 3 PLLCONFIG_3
+
+0 3 PLLCONFIG_4 SHIFTREG_DIV_MODE
+
+0 3 PLLCONFIG_8 TEST_MODE
+
+
+
+
+IO Tile Config Bit SB_PLL40_* Parameter
+
+0 3 PLLCONFIG_9 FDA_FEEDBACK
+0 4 PLLCONFIG_1
+0 4 PLLCONFIG_2
+0 4 PLLCONFIG_3
+
+0 5 PLLCONFIG_5 FDA_RELATIVE
+0 4 PLLCONFIG_6
+0 4 PLLCONFIG_7
+0 4 PLLCONFIG_8
+
+0 1 PLLCONFIG_1 DIVR
+0 1 PLLCONFIG_2
+0 1 PLLCONFIG_3
+0 1 PLLCONFIG_4
+
+0 1 PLLCONFIG_5 DIVF
+0 1 PLLCONFIG_6
+0 1 PLLCONFIG_7
+0 1 PLLCONFIG_8
+0 1 PLLCONFIG_9
+0 2 PLLCONFIG_1
+0 2 PLLCONFIG_2
+
+0 2 PLLCONFIG_3 DIVQ
+0 2 PLLCONFIG_4
+0 2 PLLCONFIG_5
+
+0 2 PLLCONFIG_6 FILTER_RANGE
+0 2 PLLCONFIG_7
+0 2 PLLCONFIG_8
+
+
+
+
+
+
+The PLL inputs are routed to the PLL via the wire_gbuf/in signal from various IO tiles. The non-clock
+PLL outputs are routed via otherwise unused neigh_op_* signals in fabric corners. For example in case
+of the 1k chip:
+
+
+
+
+Tile Net-Segment SB_PLL40_* Port Name
+0 1 wire_gbuf/in REFERENCECLK
+0 2 wire_gbuf/in EXTFEEDBACK
+0 4 wire_gbuf/in DYNAMICDELAY
+0 5 wire_gbuf/in
+0 6 wire_gbuf/in
+0 10 wire_gbuf/in
+0 11 wire_gbuf/in
+0 12 wire_gbuf/in
+0 13 wire_gbuf/in
+0 14 wire_gbuf/in
+1 1 neigh_op_bnl_1 LOCK
+1 0 wire_gbuf/in BYPASS
+2 0 wire_gbuf/in RESETB
+5 0 wire_gbuf/in LATCHINPUTVALUE
+12 1 neigh_op_bnl_1 SDO
+4 0 wire_gbuf/in SDI
+5 0 wire_gbuf/in SCLK
+
+
+
+
+The PLL clock outputs are fed directly into the input path of certain IO tiles.
+In case of the 1k chip the PORTA clock is fed into PIO 1 of IO Tile (6 0) and
+the PORTB clock is fed into PIO 0 of IO Tile (7 0). Because of this, those two
+PIOs can only be used as output Pins by the FPGA fabric when the PLL ports
+are being used.
+
+
diff --git a/docs/iosp.svg b/docs/iosp.svg
new file mode 100644
index 0000000..e7b130f
--- /dev/null
+++ b/docs/iosp.svg
@@ -0,0 +1,1394 @@
+
+
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+ span4_vert_t_0
+
+ span4_vert_t_1
+
+
+ span4_vert_t_2
+
+
+
+ span4_vert_t_4
+
+
+
+ span4_vert_t_5
+
+
+
+ span4_vert_t_6
+
+
+
+ span4_vert_t_7
+
+
+
+ span4_vert_t_8
+
+
+
+ span4_vert_t_9
+
+
+
+
+ span4_vert_t_13
+
+
+ span4_vert_t_10
+
+
+
+ span4_vert_t_11
+
+
+
+ span4_vert_t_12
+
+
+
+ span4_vert_t_3
+
+
+
+ span4_vert_t_14
+
+
+
+ span4_vert_t_15
+
+
+ span4_vert_b_0
+
+ span4_vert_b_1
+
+
+ span4_vert_b_2
+
+
+
+ span4_vert_b_3
+
+
+
+ span4_vert_b_4
+
+
+
+ span4_vert_b_5
+
+
+
+ span4_vert_b_6
+
+
+
+ span4_vert_b_7
+
+
+
+ span4_vert_b_8
+
+
+
+ span4_vert_b_9
+
+
+
+ span4_vert_b_10
+
+
+
+ span4_vert_b_11
+
+
+
+ span4_vert_b_12
+
+
+
+ span4_vert_b_13
+
+
+
+ span4_vert_b_14
+
+
+
+ span4_vert_b_15
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ span4_horz_0 .. span4_horz_47
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ span12_horz_0 .. span12_horz_23
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/logic_tile.html b/docs/logic_tile.html
new file mode 100644
index 0000000..8e3dcad
--- /dev/null
+++ b/docs/logic_tile.html
@@ -0,0 +1,327 @@
+Project IceStorm – LOGIC Tile Documentation
+Project IceStorm – LOGIC Tile Documentation
+
+
+Project IceStorm aims at documenting the bitstream format of Lattice iCE40
+FPGAs and providing simple tools for analyzing and creating bitstream files.
+This is work in progress.
+
+
+Span-4 and Span-12 Wires
+
+
+The span-4 and span-12 wires are the main interconnect resource in iCE40 FPGAs. They "span" (have a length of)
+4 or 12 cells in horizontal or vertical direction.
+
+
+
+The bits marked routing in the bitstream do enable switches (transfer gates) that can
+be used to connect wire segments bidirectionally to each other in order to create larger
+segments. The bits marked buffer in the bitstream enable tristate buffers that drive
+the signal in one direction from one wire to another. Both types of bits exist for routing between
+span-wires. See the auto generated documentation for the LOGIC Tile configuration bits for details.
+
+
+
+Only directional tristate buffers are used to route signals between the span-wires and the logic cells.
+
+
+Span-4 Horizontal
+
+
+
+
+The image on the right shows the horizontal span-4 wires of a logic or ram cell (click to enlarge).
+
+
+
+On the left side of the cell there are 48 connections named sp4_h_l_0 to sp4_h_l_47 . The lower 36 of those
+wires are connected to sp4_h_r_12 to sp4_h_r_47 on the right side of the cell. (IceStorm normalizes this
+wire names to sp4_h_r_0 to sp4_h_r_35 . Note: the Lattice tools use a different normalization scheme
+for this wire names.) The wires connecting the left and right horizontal span-4 ports are pairwise crossed-out.
+
+
+
+The wires sp4_h_l_36 to sp4_h_l_47 terminate in the cell, so do the wires sp4_h_r_0 to sp4_h_r_11 .
+
+
+
+This wires "span" 4 cells, i.e. they connect 5 cells if you count the cells on
+both ends of the wire.
+
+
+
+For example, the wire sp4_h_r_0 in cell (x, y) has the following names:
+
+
+
+
+Cell Coordinates sp4_h_l_* wire name sp4_h_r_* wire name
+x, y - sp4_h_r_0
+x+1, y sp4_h_l_0 sp4_h_r_13
+x+2, y sp4_h_l_13 sp4_h_r_24
+x+3, y sp4_h_l_24 sp4_h_r_37
+x+4, y sp4_h_l_37 -
+
+
+
+Span-4 Vertical
+
+
+
+
+The image on the right shows the veritical span-4 wires of a logic or ram cell (click to enlarge).
+
+
+
+Similar to the horizontal span-4 wires there are 48 connections on the top (sp4_v_t_0 to sp4_v_t_47 ) and
+48 connections on the bottom (sp4_v_b_0 to sp4_v_b_47 ). The wires sp4_v_t_0 to sp4_v_t_35
+are connected to sp4_v_b_12 to sp4_v_b_47 (with pairwise crossing out). Wire names are normalized
+to sp4_v_b_12 to sp4_v_b_47 .
+
+
+
+But in addition to that, each cell also has access to sp4_v_b_0 to sp4_v_b_47 of its right neighbour.
+This are the wires sp4_r_v_b_0 to sp4_r_v_b_47 . So over all a single veritical span-4 wire
+connects 9 cells. For example, the wire sp4_v_b_0 in cell (x, y) has the following names:
+
+
+
+
+Cell Coordinates sp4_v_t_* wire name sp4_v_b_* wire name sp4_r_v_b_* wire name
+x, y - sp4_v_b_0 -
+x, y-1 sp4_v_t_0 sp4_v_b_13 -
+x, y-2 sp4_v_t_13 sp4_v_b_24 -
+x, y-3 sp4_v_t_24 sp4_v_b_37 -
+x, y-4 sp4_v_t_37 - -
+x-1, y - - sp4_r_v_b_0
+x-1, y-1 - - sp4_r_v_b_13
+x-1, y-2 - - sp4_r_v_b_24
+x-1, y-3 - - sp4_r_v_b_37
+
+
+
+Span-12 Horizontal and Vertical
+
+
+Similar to the span-4 wires there are also longer horizontal and vertical span-12 wires.
+
+
+
+There are 24 connections sp12_v_t_0 to sp12_v_t_23 on the top of the
+cell and 24 connections sp12_v_b_0 to sp12_v_b_23 on the bottom of the
+cell. The wires sp12_v_t_0 to sp12_v_t_21 are connected to
+sp12_v_b_2 to sp12_v_b_23 (with pairwise crossing out). The connections
+sp12_v_b_0 , sp12_v_b_1 , sp12_v_t_22 , and sp12_v_t_23
+terminate in the cell. Wire names are normalized to sp12_v_b_2 to sp12_v_b_23 .
+
+
+
+There are also 24 connections sp12_h_l_0 to sp12_h_l_23 on the left of the
+cell and 24 connections sp12_h_r_0 to sp12_h_r_23 on the right of the
+cell. The wires sp12_h_l_0 to sp12_h_l_21 are connected to
+sp12_h_r_2 to sp12_h_r_23 (with pairwise crossing out). The connections
+sp12_h_r_0 , sp12_h_r_1 , sp12_h_l_22 , and sp12_h_l_23
+terminate in the cell. Wire names are normalized to sp12_v_r_2 to sp12_h_r_23 .
+
+
+Local Tracks
+
+
+The local tracks are the gateway to the logic cell inputs. Signals from the span-wires
+and the logic cell ouputs of the eight neighbour cells can be routed to the local tracks and
+signals from the local tracks can be routed to the logic cell inputs.
+
+
+
+Each logic tile has 32 local tracks. They are organized in 4 groups of 8 wires each:
+local_g0_0 to local_g3_7 .
+
+
+
+The span wires, global signals, and neighbour outputs can be routed to the local tracks. But not
+every of those signals can be routed to every of the local tracks. Instead there is a different
+mix of 16 signals for each local track.
+
+
+
+The buffer driving the local track has 5 configuration bits. One enable bit and 4 bits that select
+the input wire. For example for local_g0_0 (copy&paste from the bitstream doku):
+
+
+
+
+B0[14]
+B1[14]
+B1[15]
+B1[16]
+B1[17]
+Function Source-Net Destination-Net
+0 0 0 0 1 buffer sp4_r_v_b_24 local_g0_0
+0 0 0 1 1 buffer sp12_h_r_8 local_g0_0
+0 0 1 0 1 buffer neigh_op_bot_0 local_g0_0
+0 0 1 1 1 buffer sp4_v_b_16 local_g0_0
+0 1 0 0 1 buffer sp4_r_v_b_35 local_g0_0
+0 1 0 1 1 buffer sp12_h_r_16 local_g0_0
+0 1 1 0 1 buffer neigh_op_top_0 local_g0_0
+0 1 1 1 1 buffer sp4_h_r_0 local_g0_0
+1 0 0 0 1 buffer lutff_0/out local_g0_0
+1 0 0 1 1 buffer sp4_v_b_0 local_g0_0
+1 0 1 0 1 buffer neigh_op_lft_0 local_g0_0
+1 0 1 1 1 buffer sp4_h_r_8 local_g0_0
+1 1 0 0 1 buffer neigh_op_bnr_0 local_g0_0
+1 1 0 1 1 buffer sp4_v_b_8 local_g0_0
+1 1 1 0 1 buffer sp12_h_r_0 local_g0_0
+1 1 1 1 1 buffer sp4_h_r_16 local_g0_0
+
+
+
+
+Then the signals on the local tracks can be routed to the input pins of the logic cells. Like before,
+not every local track can be routed to every logic cell input pin. Instead there is a different mix
+of 16 local track for each logic cell input. For example for lutff_0/in_0 :
+
+
+
+
+B0[26]
+B1[26]
+B1[27]
+B1[28]
+B1[29]
+Function Source-Net Destination-Net
+0 0 0 0 1 buffer local_g0_0 lutff_0/in_0
+0 0 0 1 1 buffer local_g2_0 lutff_0/in_0
+0 0 1 0 1 buffer local_g1_1 lutff_0/in_0
+0 0 1 1 1 buffer local_g3_1 lutff_0/in_0
+0 1 0 0 1 buffer local_g0_2 lutff_0/in_0
+0 1 0 1 1 buffer local_g2_2 lutff_0/in_0
+0 1 1 0 1 buffer local_g1_3 lutff_0/in_0
+0 1 1 1 1 buffer local_g3_3 lutff_0/in_0
+1 0 0 0 1 buffer local_g0_4 lutff_0/in_0
+1 0 0 1 1 buffer local_g2_4 lutff_0/in_0
+1 0 1 0 1 buffer local_g1_5 lutff_0/in_0
+1 0 1 1 1 buffer local_g3_5 lutff_0/in_0
+1 1 0 0 1 buffer local_g0_6 lutff_0/in_0
+1 1 0 1 1 buffer local_g2_6 lutff_0/in_0
+1 1 1 0 1 buffer local_g1_7 lutff_0/in_0
+1 1 1 1 1 buffer local_g3_7 lutff_0/in_0
+
+
+
+
+The 8 global nets on the iCE40 can be routed to the local track via the glb2local_0 to glb2local_3
+nets using a similar two-stage process. The logic block clock-enable and set-reset inputs can be driven
+directly from one of 4 global nets or from one of 4 local tracks. The logic block clock input can be driven
+from any of the global nets and from a few local tracks. See the bitstream documentation for details.
+
+
+Logic Block
+
+
+Each logic tile has a logic block containing 8 logic cells. Each logic cell contains a 4-input LUT, a carry
+unit and a flip-flop. Clock, clock enable, and set/reset inputs are shared along the 8 logic cells. So is the
+bit that configures positive/negative edge for the flip flops. But the three configuration bits that specify if
+the flip flop should be used, if it is set or reset by the set/reset input, and if the set/reset is synchronous
+or asynchrouns exist for each logic cell individually.
+
+
+
+Each LUT i has four input wires lutff_i /in_0 to lutff_i /in_3 . Input
+lutff_i /in_3 can be configured to be driven by the carry output of the previous logic cell,
+or by carry_in_mux in case of i =0. Input lutff_i /in_2 can be configured to
+be driven by the output of the previous LUT for i >0. The LUT uses its 4 input signals to
+calculate lutff_i /out .
+
+
+
+The carry unit calculates lutff_i /cout = lutff_i /in_1 + lutff_i /in_2 + lutff_(i-1) /cout > 1. In case of i =0, carry_in_mux is used as third input. carry_in_mux can be configured to be constant 0, 1 or the lutff_7/cout signal from the logic tile below.
+
+
+
+Part of the functionality described above is documented as part of the routing
+bitstream documentation (see the buffers for luttff_ inputs). The NegClk
+bit switches all 8 FFs in the tile to negative edge mode. The CarryInSet
+bit drives the carry_in_mux high (it defaults to low when not driven via the buffer from
+carry_in ).
+
+
+
+The remaining functions of the logic cell are configured via the LC_i bits. This
+are 20 bit per logic cell. We have arbitrarily labeld those bits as follows:
+
+
+
+
+Label LC_0 LC_1 LC_2 LC_3 LC_4 LC_5 LC_6 LC_7
+LC_i [0] B0[36] B2[36] B4[36] B6[36] B8[36] B10[36] B12[36] B14[36]
+LC_i [1] B0[37] B2[37] B4[37] B6[37] B8[37] B10[37] B12[37] B14[37]
+LC_i [2] B0[38] B2[38] B4[38] B6[38] B8[38] B10[38] B12[38] B14[38]
+LC_i [3] B0[39] B2[39] B4[39] B6[39] B8[39] B10[39] B12[39] B14[39]
+LC_i [4] B0[40] B2[40] B4[40] B6[40] B8[40] B10[40] B12[40] B14[40]
+LC_i [5] B0[41] B2[41] B4[41] B6[41] B8[41] B10[41] B12[41] B14[41]
+LC_i [6] B0[42] B2[42] B4[42] B6[42] B8[42] B10[42] B12[42] B14[42]
+LC_i [7] B0[43] B2[43] B4[43] B6[43] B8[43] B10[43] B12[43] B14[43]
+LC_i [8] B0[44] B2[44] B4[44] B6[44] B8[44] B10[44] B12[44] B14[44]
+LC_i [9] B0[45] B2[45] B4[45] B6[45] B8[45] B10[45] B12[45] B14[45]
+LC_i [10] B1[36] B3[36] B5[36] B7[36] B9[36] B11[36] B13[36] B15[36]
+LC_i [11] B1[37] B3[37] B5[37] B7[37] B9[37] B11[37] B13[37] B15[37]
+LC_i [12] B1[38] B3[38] B5[38] B7[38] B9[38] B11[38] B13[38] B15[38]
+LC_i [13] B1[39] B3[39] B5[39] B7[39] B9[39] B11[39] B13[39] B15[39]
+LC_i [14] B1[40] B3[40] B5[40] B7[40] B9[40] B11[40] B13[40] B15[40]
+LC_i [15] B1[41] B3[41] B5[41] B7[41] B9[41] B11[41] B13[41] B15[41]
+LC_i [16] B1[42] B3[42] B5[42] B7[42] B9[42] B11[42] B13[42] B15[42]
+LC_i [17] B1[43] B3[43] B5[43] B7[43] B9[43] B11[43] B13[43] B15[43]
+LC_i [18] B1[44] B3[44] B5[44] B7[44] B9[44] B11[44] B13[44] B15[44]
+LC_i [19] B1[45] B3[45] B5[45] B7[45] B9[45] B11[45] B13[45] B15[45]
+
+
+
+
+LC_i [8] is the CarryEnable bit. This bit must be set if the carry logic is used.
+
+
+
+LC_i [9] is the DffEnable bit. It enables the output flip-flop for the LUT.
+
+
+
+LC_i [18] is the Set_NoReset bit. When this bit is set then the set/reset signal will set, not reset the flip-flop.
+
+
+
+LC_i [19] is the AsyncSetReset bit. When this bit is set then the set/reset signal is asynchronous to the clock.
+
+
+
+The LUT implements the following truth table:
+
+
+
+
+in_3 in_2 in_1 in_0 out
+0 0 0 0 LC_i [4]
+0 0 0 1 LC_i [14]
+0 0 1 0 LC_i [15]
+0 0 1 1 LC_i [5]
+0 1 0 0 LC_i [6]
+0 1 0 1 LC_i [16]
+0 1 1 0 LC_i [17]
+0 1 1 1 LC_i [7]
+1 0 0 0 LC_i [3]
+1 0 0 1 LC_i [13]
+1 0 1 0 LC_i [12]
+1 0 1 1 LC_i [2]
+1 1 0 0 LC_i [1]
+1 1 0 1 LC_i [11]
+1 1 1 0 LC_i [10]
+1 1 1 1 LC_i [0]
+
+
+
+
+LUT inputs that are not connected to anything are driven low. The set/reset
+signal is also driven low if not connected to any other driver, and the clock
+enable signal is driven high when left unconnected.
+
+
diff --git a/docs/ram_tile.html b/docs/ram_tile.html
new file mode 100644
index 0000000..3121f57
--- /dev/null
+++ b/docs/ram_tile.html
@@ -0,0 +1,95 @@
+Project IceStorm – RAM Tile Documentation
+Project IceStorm – RAM Tile Documentation
+
+
+Project IceStorm aims at documenting the bitstream format of Lattice iCE40
+FPGAs and providing simple tools for analyzing and creating bitstream files.
+This is work in progress.
+
+
+Span-4 and Span-12 Wires
+
+
+Regarding the Span-4 and Span-12 Wires a RAM tile behaves exactly like a LOGIC tile. So for simple
+applications that do not need the block ram resources, the RAM tiles can be handled like a LOGIC
+tiles without logic cells in them.
+
+
+Block RAM Resources
+
+
+A pair or RAM tiles (odd and even y-coordinates) provides an interface to a block ram cell. Like with
+LOGIC tiles, signals entering the RAM tile have to be routed over local tracks to the block ram
+inputs. Tiles with odd y-coordinates are "bottom" RAM Tiles (RAMB Tiles), and tiles with even y-coordinates
+are "top" RAM Tiles (RAMT Tiles). Each pair of RAMB/RAMT tiles implements a SB_RAM40_4K cell. The
+cell ports are spread out over the two tiles as follows:
+
+
+
+
+SB_RAM40_4K RAMB Tile RAMT Tile
+RDATA[15:0] RDATA[7:0] RDATA[15:8]
+RADDR[10:0] - RADDR[10:0]
+WADDR[10:0] WADDR[10:0] -
+MASK[15:0] MASK[7:0] MASK[15:8]
+WDATA[15:0] WDATA[7:0] WDATA[15:8]
+RCLKE - RCLKE
+RCLK - RCLK
+RE - RE
+WCLKE WCLKE -
+WCLK WCLK -
+WE WE -
+
+
+
+
+The configuration bit RamConfig PowerUp in the RAMB tile enables the memory. This bit
+is active-low in 1k chips, i.e. an unused RAM block has only this bit set. Note that icebox_explain.py
+will ignore all RAMB tiles that only have the RamConfig PowerUp bit set.
+
+
+
+In 8k chips the RamConfig PowerUp bit is active-high. So an unused RAM block has all bits cleared
+in the 8k config bitstream.
+
+
+
+The RamConfig CBIT_* bits in the RAMT tile configure the read/write width of the
+memory. Those bits map to the SB_RAM40_4K cell parameters as follows:
+
+
+
+
+SB_RAM40_4K RAMT Config Bit
+WRITE_MODE[0] RamConfig CBIT_0
+WRITE_MODE[1] RamConfig CBIT_1
+READ_MODE[0] RamConfig CBIT_2
+READ_MODE[1] RamConfig CBIT_3
+
+
+
+
+The read/write mode selects the width of the read/write port:
+
+
+
+
+MODE DATA Width Used WDATA/RDATA Bits
+0 16 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
+1 8 14, 12, 10, 8, 6, 4, 2, 0
+2 4 13, 9, 5, 1
+3 2 11, 3
+
+
+
+
+The NegClk bit in the RAMB tile negates the polarity of the WCLK port,
+and the NegClk bit in the RAMT tile negates the polarity of the RCLK port.
+
+
+
+A logic tile sends the output of its eight logic cells to its neighbour tiles. A RAM tile does the same thing
+with the RDATA outputs. Each RAMB tile exports its RDATA[7:0] outputs and each RAMT tile
+exports its RDATA[15:8] outputs via this mechanism.
+
+
diff --git a/docs/sp4h.svg b/docs/sp4h.svg
new file mode 100644
index 0000000..cd074eb
--- /dev/null
+++ b/docs/sp4h.svg
@@ -0,0 +1,2076 @@
+
+
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+ sp4_l_47
+
+ sp4_l_46
+
+ sp4_l_45
+
+ sp4_l_44
+
+ sp4_l_43
+
+ sp4_l_42
+
+ sp4_l_41
+
+ sp4_l_40
+
+ sp4_l_39
+
+ sp4_l_38
+
+ sp4_l_37
+
+ sp4_l_36
+
+ sp4_l_35
+
+ sp4_l_34
+
+ sp4_l_33
+
+ sp4_l_32
+
+ sp4_l_31
+
+ sp4_l_30
+
+ sp4_l_29
+
+ sp4_l_28
+
+ sp4_l_27
+
+ sp4_l_26
+
+ sp4_l_25
+
+ sp4_l_24
+
+ sp4_l_23
+
+ sp4_l_22
+
+ sp4_l_21
+
+ sp4_l_20
+
+ sp4_l_19
+
+ sp4_l_18
+
+ sp4_l_17
+
+ sp4_l_16
+
+ sp4_l_15
+
+ sp4_l_14
+
+ sp4_l_13
+
+ sp4_l_12
+
+ sp4_l_11
+
+ sp4_l_10
+
+ sp4_l_9
+
+ sp4_l_8
+
+ sp4_l_7
+
+ sp4_l_6
+
+ sp4_l_5
+
+ sp4_l_4
+
+ sp4_l_3
+
+ sp4_l_2
+
+ sp4_l_1
+
+ sp4_l_0
+
+ sp4_r_47
+
+ sp4_r_46
+
+ sp4_r_45
+
+ sp4_r_44
+
+ sp4_r_43
+
+ sp4_r_42
+
+ sp4_r_41
+
+ sp4_r_40
+
+ sp4_r_39
+
+ sp4_r_38
+
+ sp4_r_37
+
+ sp4_r_36
+
+ sp4_r_35
+
+ sp4_r_34
+
+ sp4_r_33
+
+ sp4_r_32
+
+ sp4_r_31
+
+ sp4_r_30
+
+ sp4_r_29
+
+ sp4_r_28
+
+ sp4_r_27
+
+ sp4_r_26
+
+ sp4_r_25
+
+ sp4_r_24
+
+ sp4_r_23
+
+ sp4_r_22
+
+ sp4_r_21
+
+ sp4_r_20
+
+ sp4_r_19
+
+ sp4_r_18
+
+ sp4_r_17
+
+ sp4_r_16
+
+ sp4_r_15
+
+ sp4_r_14
+
+ sp4_r_13
+
+ sp4_r_12
+
+ sp4_r_11
+
+ sp4_r_10
+
+ sp4_r_9
+
+ sp4_r_8
+
+ sp4_r_7
+
+ sp4_r_6
+
+ sp4_r_5
+
+ sp4_r_4
+
+ sp4_r_3
+
+ sp4_r_2
+
+ sp4_r_1
+
+ sp4_r_0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/sp4v.svg b/docs/sp4v.svg
new file mode 100644
index 0000000..2d4a5b0
--- /dev/null
+++ b/docs/sp4v.svg
@@ -0,0 +1,3982 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+ sp4_v_t_1
+
+
+
+ sp4_v_t_0
+
+
+
+ sp4_v_t_3
+
+
+
+ sp4_v_t_2
+
+
+
+ sp4_v_t_5
+
+
+
+ sp4_v_t_4
+
+
+
+ sp4_v_t_7
+
+
+
+ sp4_v_t_6
+
+
+
+ sp4_v_t_9
+
+
+
+ sp4_v_t_8
+
+
+
+ sp4_v_t_11
+
+
+
+ sp4_v_t_10
+
+
+
+
+
+ sp4_v_t_13
+
+
+
+ sp4_v_t_12
+
+
+
+ sp4_v_t_15
+
+
+
+ sp4_v_t_14
+
+
+
+ sp4_v_t_17
+
+
+
+ sp4_v_t_15
+
+
+
+ sp4_v_t_19
+
+
+
+ sp4_v_t_18
+
+
+
+ sp4_v_t_21
+
+
+
+ sp4_v_t_20
+
+
+
+ sp4_v_t_23
+
+
+
+ sp4_v_t_22
+
+
+
+
+
+ sp4_v_t_25
+
+
+
+ sp4_v_t_24
+
+
+
+ sp4_v_t_27
+
+
+
+ sp4_v_t_26
+
+
+
+ sp4_v_t_29
+
+
+
+ sp4_v_t_28
+
+
+
+ sp4_v_t_31
+
+
+
+ sp4_v_t_30
+
+
+
+ sp4_v_t_33
+
+
+
+ sp4_v_t_32
+
+
+
+ sp4_v_t_35
+
+
+
+ sp4_v_t_34
+
+
+
+
+
+ sp4_v_t_37
+
+
+
+ sp4_v_t_36
+
+
+
+ sp4_v_t_39
+
+
+
+ sp4_v_t_38
+
+
+
+ sp4_v_t_41
+
+
+
+ sp4_v_t_40
+
+
+
+ sp4_v_t_43
+
+
+
+ sp4_v_t_42
+
+
+
+ sp4_v_t_45
+
+
+
+ sp4_v_t_44
+
+
+
+ sp4_v_t_47
+
+
+
+ sp4_v_t_46
+
+
+
+
+
+ sp4_v_b_1
+
+
+
+ sp4_v_b_0
+
+
+
+ sp4_v_b_3
+
+
+
+ sp4_v_b_2
+
+
+
+ sp4_v_b_5
+
+
+
+ sp4_v_b_4
+
+
+
+ sp4_v_b_7
+
+
+
+ sp4_v_b_6
+
+
+
+ sp4_v_b_9
+
+
+
+ sp4_v_b_8
+
+
+
+ sp4_v_b_11
+
+
+
+ sp4_v_b_10
+
+
+
+
+
+ sp4_v_b_13
+
+
+
+ sp4_v_b_12
+
+
+
+ sp4_v_b_15
+
+
+
+ sp4_v_b_14
+
+
+
+ sp4_v_b_17
+
+
+
+ sp4_v_b_15
+
+
+
+ sp4_v_b_19
+
+
+
+ sp4_v_b_18
+
+
+
+ sp4_v_b_21
+
+
+
+ sp4_v_b_20
+
+
+
+ sp4_v_b_23
+
+
+
+ sp4_v_b_22
+
+
+
+
+
+ sp4_v_b_25
+
+
+
+ sp4_v_b_24
+
+
+
+ sp4_v_b_27
+
+
+
+ sp4_v_b_26
+
+
+
+ sp4_v_b_29
+
+
+
+ sp4_v_b_28
+
+
+
+ sp4_v_b_31
+
+
+
+ sp4_v_b_30
+
+
+
+ sp4_v_b_33
+
+
+
+ sp4_v_b_32
+
+
+
+ sp4_v_b_35
+
+
+
+ sp4_v_b_34
+
+
+
+
+ sp4_v_b_37
+
+
+ sp4_v_b_36
+
+ sp4_r_v_b_0 ... sp4_r_v_b_11
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sp4_r_v_b_12 ... sp4_r_v_b_23
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sp4_r_v_b_24 ... sp4_r_v_b_35
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sp4_r_v_b_36 ... sp4_r_v_b_47
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sp4_v_b_39
+
+
+
+ sp4_v_b_38
+
+
+
+ sp4_v_b_41
+
+
+
+ sp4_v_b_40
+
+
+
+ sp4_v_b_43
+
+
+
+ sp4_v_b_42
+
+
+
+ sp4_v_b_45
+
+
+
+ sp4_v_b_44
+
+
+
+ sp4_v_b_47
+
+
+
+ sp4_v_b_46
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/icebox/Makefile b/icebox/Makefile
index 64549b3..000836a 100644
--- a/icebox/Makefile
+++ b/icebox/Makefile
@@ -1,13 +1,18 @@
-chipdb: chipdb-1k.txt
+chipdb: chipdb-1k.txt chipdb-8k.txt
chipdb-1k.txt: icebox.py iceboxdb.py icebox_chipdb.py
python icebox_chipdb.py > chipdb-1k.new
mv chipdb-1k.new chipdb-1k.txt
+chipdb-8k.txt: icebox.py iceboxdb.py icebox_chipdb.py
+ python icebox_chipdb.py -8 > chipdb-8k.new
+ mv chipdb-8k.new chipdb-8k.txt
+
install: chipdb
mkdir -p /usr/local/share/icebox
cp chipdb-1k.txt /usr/local/share/icebox/
+ cp chipdb-8k.txt /usr/local/share/icebox/
cp icebox.py /usr/local/bin/icebox.py
cp iceboxdb.py /usr/local/bin/iceboxdb.py
cp icebox_chipdb.py /usr/local/bin/icebox_chipdb
@@ -27,6 +32,7 @@ uninstall:
rm -f /usr/local/bin/icebox_maps
rm -f /usr/local/bin/icebox_vlog
rm -f /usr/local/share/icebox/chipdb-1k.txt
+ rm -f /usr/local/share/icebox/chipdb-8k.txt
-rmdir /usr/local/share/icebox
.PHONY: install uninstall
diff --git a/icebox/icebox.py b/icebox/icebox.py
index cad6831..c7d76ce 100644
--- a/icebox/icebox.py
+++ b/icebox/icebox.py
@@ -59,6 +59,30 @@ class iceconfig:
self.io_tiles[(0, y)] = ["0" * 18 for i in range(16)]
self.io_tiles[(self.max_x, y)] = ["0" * 18 for i in range(16)]
+ def setup_empty_8k(self):
+ self.clear()
+ self.device = "8k"
+ self.max_x = 33
+ self.max_y = 33
+
+ for x in range(1, self.max_x):
+ for y in range(1, self.max_y):
+ if x in (8, 25):
+ if y % 2 == 1:
+ self.ramb_tiles[(x, y)] = ["0" * 42 for i in range(16)]
+ else:
+ self.ramt_tiles[(x, y)] = ["0" * 42 for i in range(16)]
+ else:
+ self.logic_tiles[(x, y)] = ["0" * 54 for i in range(16)]
+
+ for x in range(1, self.max_x):
+ self.io_tiles[(x, 0)] = ["0" * 18 for i in range(16)]
+ self.io_tiles[(x, self.max_y)] = ["0" * 18 for i in range(16)]
+
+ for y in range(1, self.max_y):
+ self.io_tiles[(0, y)] = ["0" * 18 for i in range(16)]
+ self.io_tiles[(self.max_x, y)] = ["0" * 18 for i in range(16)]
+
def lookup_extra_bit(self, bit):
assert self.device in extra_bits_db
if bit in extra_bits_db[self.device]:
@@ -73,8 +97,9 @@ class iceconfig:
return None
def pinloc_db(self):
- assert self.device == "1k"
- return pinloc_db
+ if self.device == "1k": return pinloc_db["1k-tq144"]
+ if self.device == "8k": return pinloc_db["8k-ct256"]
+ assert False
def gbufin_db(self):
return gbufin_db[self.device]
@@ -91,29 +116,55 @@ class iceconfig:
def ieren_db(self):
return ieren_db[self.device]
+ def pll_list(self):
+ if self.device == "1k":
+ return ["1k"]
+ if self.device == "8k":
+ return ["8k_0", "8k_1"]
+ assert False
+
def colbuf_db(self):
- assert self.device == "1k"
- entries = list()
- for x in range(self.max_x+1):
- for y in range(self.max_y+1):
- src_y = None
- if 0 <= y <= 4: src_y = 4
- if 5 <= y <= 8: src_y = 5
- if 9 <= y <= 12: src_y = 12
- if 13 <= y <= 17: src_y = 13
- if x in [3, 10] and src_y == 4: src_y = 3
- if x in [3, 10] and src_y == 12: src_y = 11
- entries.append((x, src_y, x, y))
- return entries
+ if self.device == "1k":
+ entries = list()
+ for x in range(self.max_x+1):
+ for y in range(self.max_y+1):
+ src_y = None
+ if 0 <= y <= 4: src_y = 4
+ if 5 <= y <= 8: src_y = 5
+ if 9 <= y <= 12: src_y = 12
+ if 13 <= y <= 17: src_y = 13
+ if x in [3, 10] and src_y == 4: src_y = 3
+ if x in [3, 10] and src_y == 12: src_y = 11
+ entries.append((x, src_y, x, y))
+ return entries
+
+ if self.device == "8k":
+ entries = list()
+ for x in range(self.max_x+1):
+ for y in range(self.max_y+1):
+ src_y = None
+ if 0 <= y <= 8: src_y = 8
+ if 9 <= y <= 16: src_y = 9
+ if 17 <= y <= 24: src_y = 24
+ if 25 <= y <= 33: src_y = 25
+ entries.append((x, src_y, x, y))
+ return entries
+
+ assert False
def tile_db(self, x, y):
if x == 0: return iotile_l_db
if y == 0: return iotile_b_db
if x == self.max_x: return iotile_r_db
if y == self.max_y: return iotile_t_db
- if (x, y) in self.ramb_tiles: return rambtile_db
- if (x, y) in self.ramt_tiles: return ramttile_db
- if (x, y) in self.logic_tiles: return logictile_db
+ if self.device == "1k":
+ if (x, y) in self.logic_tiles: return logictile_db
+ if (x, y) in self.ramb_tiles: return rambtile_db
+ if (x, y) in self.ramt_tiles: return ramttile_db
+ if self.device == "8k":
+ if (x, y) in self.logic_tiles: return logictile_8k_db
+ if (x, y) in self.ramb_tiles: return rambtile_8k_db
+ if (x, y) in self.ramt_tiles: return ramttile_8k_db
assert False
def tile_type(self, x, y):
@@ -205,9 +256,19 @@ class iceconfig:
if (nx, ny) in self.logic_tiles:
return (nx, ny, "lutff_%d/out" % func)
if (nx, ny) in self.ramb_tiles:
- return (nx, ny, "ram/RDATA_%d" % func)
+ if self.device == "1k":
+ return (nx, ny, "ram/RDATA_%d" % func)
+ elif self.device == "8k":
+ return (nx, ny, "ram/RDATA_%d" % (15-func))
+ else:
+ assert False
if (nx, ny) in self.ramt_tiles:
- return (nx, ny, "ram/RDATA_%d" % (8+func))
+ if self.device == "1k":
+ return (nx, ny, "ram/RDATA_%d" % (8+func))
+ elif self.device == "8k":
+ return (nx, ny, "ram/RDATA_%d" % (7-func))
+ else:
+ assert False
elif pos == "x" and npos in ("l", "r", "t", "b"):
if func in (0, 4): return (nx, ny, "io_0/D_IN_0")
@@ -242,7 +303,12 @@ class iceconfig:
match = re.match(r"ram/RDATA_(\d+)", netname)
if match:
- funcnets |= self.follow_funcnet(x, y, int(match.group(1)) % 8)
+ if self.device == "1k":
+ funcnets |= self.follow_funcnet(x, y, int(match.group(1)) % 8)
+ elif self.device == "8k":
+ funcnets |= self.follow_funcnet(x, y, 7 - int(match.group(1)) % 8)
+ else:
+ assert False
return funcnets
@@ -372,16 +438,31 @@ class iceconfig:
for idx, tile in self.logic_tiles.items():
if idx in all_from_tiles:
seed_segments.add((idx[0], idx[1], "lutff_7/cout"))
- add_seed_segments(idx, tile, logictile_db)
+ if self.device == "1k":
+ add_seed_segments(idx, tile, logictile_db)
+ elif self.device == "8k":
+ add_seed_segments(idx, tile, logictile_8k_db)
+ else:
+ assert False
for idx, tile in self.ramb_tiles.items():
- add_seed_segments(idx, tile, rambtile_db)
+ if self.device == "1k":
+ add_seed_segments(idx, tile, rambtile_db)
+ elif self.device == "8k":
+ add_seed_segments(idx, tile, rambtile_8k_db)
+ else:
+ assert False
for idx, tile in self.ramt_tiles.items():
- add_seed_segments(idx, tile, ramttile_db)
+ if self.device == "1k":
+ add_seed_segments(idx, tile, ramttile_db)
+ elif self.device == "8k":
+ add_seed_segments(idx, tile, ramttile_8k_db)
+ else:
+ assert False
for padin, pio in enumerate(self.padin_pio_db()):
- s1 = (pio[0], pio[1], "wire_gbuf/padin_%d" % pio[2])
+ s1 = (pio[0], pio[1], "padin_%d" % pio[2])
s2 = (pio[0], pio[1], "glb_netwk_%d" % padin)
if s1 in seed_segments or (pio[0], pio[1]) in all_from_tiles:
connected_segments.setdefault(s1, set()).add(s2)
@@ -395,7 +476,7 @@ class iceconfig:
if entry[1] == 0 or entry[1] == self.max_y:
iocells = [(i, entry[1]) for i in range(1, self.max_x)]
for cell in iocells:
- s1 = (entry[0], entry[1], "wire_gbuf/in")
+ s1 = (entry[0], entry[1], "fabout")
s2 = (cell[0], cell[1], "io_global/latch")
if s1 in seed_segments or s2 in seed_segments or \
(entry[0], entry[1]) in all_from_tiles or (cell[0], cell[1]) in all_from_tiles:
@@ -406,7 +487,7 @@ class iceconfig:
if connect_gb:
for entry in self.gbufin_db():
- s1 = (entry[0], entry[1], "wire_gbuf/in")
+ s1 = (entry[0], entry[1], "fabout")
s2 = (entry[0], entry[1], "glb_netwk_%d" % entry[2])
if s1 in seed_segments or (pio[0], pio[1]) in all_from_tiles:
connected_segments.setdefault(s1, set()).add(s2)
@@ -494,7 +575,7 @@ class iceconfig:
self.extra_bits.add((int(line[1]), int(line[2]), int(line[3])))
continue
if line[0] == ".device":
- assert line[1] in ["1k"]
+ assert line[1] in ["1k", "8k"]
self.device = line[1]
continue
if line[0] in [".comment", ".sym"]:
@@ -636,7 +717,7 @@ def sp12v_normalize(netname, edge=""):
return netname
-def netname_normalize(netname, edge="", ramb=False, ramt=False):
+def netname_normalize(netname, edge="", ramb=False, ramt=False, ramb_8k=False, ramt_8k=False):
if netname.startswith("sp4_v_"): return sp4v_normalize(netname, edge)
if netname.startswith("sp4_h_"): return sp4h_normalize(netname, edge)
if netname.startswith("sp12_v_"): return sp12v_normalize(netname, edge)
@@ -647,11 +728,13 @@ def netname_normalize(netname, edge="", ramb=False, ramt=False):
netname = netname.replace("wire_logic_cluster/", "")
netname = netname.replace("wire_io_cluster/", "")
netname = netname.replace("wire_bram/", "")
- if (ramb or ramt) and netname.startswith("input"):
+ if (ramb or ramt or ramb_8k or ramt_8k) and netname.startswith("input"):
match = re.match(r"input(\d)_(\d)", netname)
idx1, idx2 = (int(match.group(1)), int(match.group(2)))
if ramb: netname="ram/WADDR_%d" % (idx1*4 + idx2)
if ramt: netname="ram/RADDR_%d" % (idx1*4 + idx2)
+ if ramb_8k: netname="ram/RADDR_%d" % ([7, 6, 5, 4, 3, 2, 1, 0, -1, -1, -1, -1, -1, 10, 9, 8][idx1*4 + idx2])
+ if ramt_8k: netname="ram/WADDR_%d" % ([7, 6, 5, 4, 3, 2, 1, 0, -1, -1, -1, -1, -1, 10, 9, 8][idx1*4 + idx2])
match = re.match(r"(...)_op_(.*)", netname)
if match:
netname = "neigh_op_%s_%s" % (match.group(1), match.group(2))
@@ -850,6 +933,7 @@ def run_checks_neigh():
print("Running consistency checks on neighbour finder..")
ic = iceconfig()
ic.setup_empty_1k()
+ # ic.setup_empty_8k()
all_segments = set()
@@ -865,17 +949,12 @@ def run_checks_neigh():
for y in range(ic.max_x+1):
if x in (0, ic.max_x) and y in (0, ic.max_y):
continue
- if x in (0, ic.max_x) or y in (0, ic.max_y):
- add_segments((x, y), ic.tile_db(x, y))
- elif (x, y) in ic.ramb_tiles:
- add_segments((x, y), ic.tile_db(x, y))
- elif (x, y) in ic.ramt_tiles:
- add_segments((x, y), ic.tile_db(x, y))
- else:
- add_segments((x, y), logictile_db)
+ add_segments((x, y), ic.tile_db(x, y))
+ if (x, y) in ic.logic_tiles:
all_segments.add((x, y, "lutff_7/cout"))
for s1 in all_segments:
+ # if s1[1] > 4: continue
for s2 in ic.follow_net(s1):
if s1 not in ic.follow_net(s2):
print("ERROR: %s -> %s, but not vice versa!" % (s1, s2))
@@ -890,9 +969,19 @@ def run_checks_neigh():
def run_checks():
run_checks_neigh()
-def parse_db(text):
+def parse_db(text, grep_8k=False):
db = list()
for line in text.split("\n"):
+ line_1k = line.replace("1k_glb_netwk_", "glb_netwk_")
+ line_8k = line.replace("8k_glb_netwk_", "glb_netwk_")
+ if line_1k != line:
+ if grep_8k:
+ continue
+ line = line_1k
+ elif line_8k != line:
+ if not grep_8k:
+ continue
+ line = line_8k
line = line.split("\t")
if len(line) == 0 or line[0] == "":
continue
@@ -910,6 +999,16 @@ extra_bits_db = {
(1, 331, 142): ("padin_glb_netwk", "5"),
(0, 330, 143): ("padin_glb_netwk", "6"),
(0, 331, 143): ("padin_glb_netwk", "7"),
+ },
+ "8k": {
+ (0, 870, 270): ("padin_glb_netwk", "0"),
+ (0, 871, 270): ("padin_glb_netwk", "1"),
+ (1, 870, 271): ("padin_glb_netwk", "2"),
+ (1, 871, 271): ("padin_glb_netwk", "3"),
+ (1, 870, 270): ("padin_glb_netwk", "4"),
+ (1, 871, 270): ("padin_glb_netwk", "5"),
+ (0, 870, 271): ("padin_glb_netwk", "6"),
+ (0, 871, 271): ("padin_glb_netwk", "7"),
}
}
@@ -923,6 +1022,16 @@ gbufin_db = {
(13, 9, 2),
( 6, 0, 5),
( 6, 17, 4),
+ ],
+ "8k": [
+ (33, 16, 7),
+ ( 0, 16, 6),
+ (17, 33, 1),
+ (17, 0, 0),
+ ( 0, 17, 3),
+ (33, 17, 2),
+ (16, 0, 5),
+ (16, 33, 4),
]
}
@@ -931,43 +1040,311 @@ iolatch_db = {
( 0, 7),
(13, 10),
( 5, 0),
- ( 8, 17)
- ]
+ ( 8, 17),
+ ],
+ "8k": [
+ ( 0, 15),
+ (33, 18),
+ (18, 0),
+ (15, 33),
+ ],
}
-pllinfo_db = {
+warmbootinfo_db = {
"1k": {
- "SHIFTREG_DIV_MODE": (0, 3, "B2[2]"),
- "FDA_FEEDBACK_0": (0, 3, "B7[3]"),
- "FDA_FEEDBACK_1": (0, 4, "B0[2]"),
- "FDA_FEEDBACK_2": (0, 4, "B0[3]"),
- "FDA_FEEDBACK_3": (0, 4, "B3[3]"),
- "FDA_RELATIVE_0": (0, 4, "B2[3]"),
- "FDA_RELATIVE_1": (0, 4, "B5[3]"),
- "FDA_RELATIVE_2": (0, 4, "B4[2]"),
- "FDA_RELATIVE_3": (0, 4, "B4[3]"),
- "DIVR_0": (0, 1, "B0[2]"),
- "DIVR_1": (0, 1, "B0[3]"),
- "DIVR_2": (0, 1, "B3[3]"),
- "DIVR_3": (0, 1, "B2[2]"),
- "DIVF_0": (0, 1, "B2[3]"),
- "DIVF_1": (0, 1, "B5[3]"),
- "DIVF_2": (0, 1, "B4[2]"),
- "DIVF_3": (0, 1, "B4[3]"),
- "DIVF_4": (0, 1, "B7[3]"),
- "DIVF_5": (0, 2, "B0[2]"),
- "DIVF_6": (0, 2, "B0[3]"),
- "DIVQ_0": (0, 0, "?"),
- "DIVQ_1": (0, 0, "?"),
- "DIVQ_2": (0, 0, "?"),
- "FILTER_RANGE_0": (0, 2, "B5[3]"),
- "FILTER_RANGE_1": (0, 2, "B4[2]"),
- "FILTER_RANGE_2": (0, 2, "B4[3]"),
- "ENABLE_ICEGATE": (0, 0, "?"),
- "TEST_MODE": (0, 3, "B4[3]"),
+ "BOOT": ( 12, 0, "fabout" ),
+ "S0": ( 13, 1, "fabout" ),
+ "S1": ( 13, 2, "fabout" ),
+ },
+ "8k": {
+ "BOOT": ( 31, 0, "fabout" ),
+ "S0": ( 33, 1, "fabout" ),
+ "S1": ( 33, 2, "fabout" ),
}
}
+pllinfo_db = {
+ "1k": {
+ "LOC" : (6, 0),
+
+ # 3'b000 = "DISABLED"
+ # 3'b010 = "SB_PLL40_PAD"
+ # 3'b100 = "SB_PLL40_2_PAD"
+ # 3'b110 = "SB_PLL40_2F_PAD"
+ # 3'b011 = "SB_PLL40_CORE"
+ # 3'b111 = "SB_PLL40_2F_CORE"
+ "PLLTYPE_0": ( 0, 3, "PLLCONFIG_5"),
+ "PLLTYPE_1": ( 0, 5, "PLLCONFIG_1"),
+ "PLLTYPE_2": ( 0, 5, "PLLCONFIG_3"),
+
+ # 3'b000 = "DELAY"
+ # 3'b001 = "SIMPLE"
+ # 3'b010 = "PHASE_AND_DELAY"
+ # 3'b110 = "EXTERNAL"
+ "FEEDBACK_PATH_0": ( 0, 5, "PLLCONFIG_5"),
+ "FEEDBACK_PATH_1": ( 0, 2, "PLLCONFIG_9"),
+ "FEEDBACK_PATH_2": ( 0, 3, "PLLCONFIG_1"),
+
+ # 1'b0 = "FIXED"
+ # 1'b1 = "DYNAMIC" (also set FDA_FEEDBACK=4'b1111)
+ "DELAY_ADJMODE_FB": ( 0, 4, "PLLCONFIG_4"),
+
+ # 1'b0 = "FIXED"
+ # 1'b1 = "DYNAMIC" (also set FDA_RELATIVE=4'b1111)
+ "DELAY_ADJMODE_REL": ( 0, 4, "PLLCONFIG_9"),
+
+ # 2'b00 = "GENCLK"
+ # 2'b01 = "GENCLK_HALF"
+ # 2'b10 = "SHIFTREG_90deg"
+ # 2'b11 = "SHIFTREG_0deg"
+ "PLLOUT_SELECT_A_0": ( 0, 3, "PLLCONFIG_6"),
+ "PLLOUT_SELECT_A_1": ( 0, 3, "PLLCONFIG_7"),
+
+ # 2'b00 = "GENCLK"
+ # 2'b01 = "GENCLK_HALF"
+ # 2'b10 = "SHIFTREG_90deg"
+ # 2'b11 = "SHIFTREG_0deg"
+ "PLLOUT_SELECT_B_0": ( 0, 3, "PLLCONFIG_2"),
+ "PLLOUT_SELECT_B_1": ( 0, 3, "PLLCONFIG_3"),
+
+ # Numeric Parameters
+ "SHIFTREG_DIV_MODE": ( 0, 3, "PLLCONFIG_4"),
+ "FDA_FEEDBACK_0": ( 0, 3, "PLLCONFIG_9"),
+ "FDA_FEEDBACK_1": ( 0, 4, "PLLCONFIG_1"),
+ "FDA_FEEDBACK_2": ( 0, 4, "PLLCONFIG_2"),
+ "FDA_FEEDBACK_3": ( 0, 4, "PLLCONFIG_3"),
+ "FDA_RELATIVE_0": ( 0, 4, "PLLCONFIG_5"),
+ "FDA_RELATIVE_1": ( 0, 4, "PLLCONFIG_6"),
+ "FDA_RELATIVE_2": ( 0, 4, "PLLCONFIG_7"),
+ "FDA_RELATIVE_3": ( 0, 4, "PLLCONFIG_8"),
+ "DIVR_0": ( 0, 1, "PLLCONFIG_1"),
+ "DIVR_1": ( 0, 1, "PLLCONFIG_2"),
+ "DIVR_2": ( 0, 1, "PLLCONFIG_3"),
+ "DIVR_3": ( 0, 1, "PLLCONFIG_4"),
+ "DIVF_0": ( 0, 1, "PLLCONFIG_5"),
+ "DIVF_1": ( 0, 1, "PLLCONFIG_6"),
+ "DIVF_2": ( 0, 1, "PLLCONFIG_7"),
+ "DIVF_3": ( 0, 1, "PLLCONFIG_8"),
+ "DIVF_4": ( 0, 1, "PLLCONFIG_9"),
+ "DIVF_5": ( 0, 2, "PLLCONFIG_1"),
+ "DIVF_6": ( 0, 2, "PLLCONFIG_2"),
+ "DIVQ_0": ( 0, 2, "PLLCONFIG_3"),
+ "DIVQ_1": ( 0, 2, "PLLCONFIG_4"),
+ "DIVQ_2": ( 0, 2, "PLLCONFIG_5"),
+ "FILTER_RANGE_0": ( 0, 2, "PLLCONFIG_6"),
+ "FILTER_RANGE_1": ( 0, 2, "PLLCONFIG_7"),
+ "FILTER_RANGE_2": ( 0, 2, "PLLCONFIG_8"),
+ "TEST_MODE": ( 0, 3, "PLLCONFIG_8"),
+
+ # PLL Ports
+ "PLLOUT_A": ( 6, 0, 1),
+ "PLLOUT_B": ( 7, 0, 0),
+ "REFERENCECLK": ( 0, 1, "fabout"),
+ "EXTFEEDBACK": ( 0, 2, "fabout"),
+ "DYNAMICDELAY_0": ( 0, 4, "fabout"),
+ "DYNAMICDELAY_1": ( 0, 5, "fabout"),
+ "DYNAMICDELAY_2": ( 0, 6, "fabout"),
+ "DYNAMICDELAY_3": ( 0, 10, "fabout"),
+ "DYNAMICDELAY_4": ( 0, 11, "fabout"),
+ "DYNAMICDELAY_5": ( 0, 12, "fabout"),
+ "DYNAMICDELAY_6": ( 0, 13, "fabout"),
+ "DYNAMICDELAY_7": ( 0, 14, "fabout"),
+ "LOCK": ( 1, 1, "neigh_op_bnl_1"),
+ "BYPASS": ( 1, 0, "fabout"),
+ "RESETB": ( 2, 0, "fabout"),
+ "LATCHINPUTVALUE": ( 5, 0, "fabout"),
+ "SDO": (12, 1, "neigh_op_bnr_3"),
+ "SDI": ( 4, 0, "fabout"),
+ "SCLK": ( 3, 0, "fabout"),
+ },
+ "8k_0": {
+ "LOC" : (16, 0),
+
+ # 3'b000 = "DISABLED"
+ # 3'b010 = "SB_PLL40_PAD"
+ # 3'b100 = "SB_PLL40_2_PAD"
+ # 3'b110 = "SB_PLL40_2F_PAD"
+ # 3'b011 = "SB_PLL40_CORE"
+ # 3'b111 = "SB_PLL40_2F_CORE"
+ "PLLTYPE_0": ( 16, 0, "PLLCONFIG_5"),
+ "PLLTYPE_1": ( 18, 0, "PLLCONFIG_1"),
+ "PLLTYPE_2": ( 18, 0, "PLLCONFIG_3"),
+
+ # 3'b000 = "DELAY"
+ # 3'b001 = "SIMPLE"
+ # 3'b010 = "PHASE_AND_DELAY"
+ # 3'b110 = "EXTERNAL"
+ "FEEDBACK_PATH_0": ( 18, 0, "PLLCONFIG_5"),
+ "FEEDBACK_PATH_1": ( 15, 0, "PLLCONFIG_9"),
+ "FEEDBACK_PATH_2": ( 16, 0, "PLLCONFIG_1"),
+
+ # 1'b0 = "FIXED"
+ # 1'b1 = "DYNAMIC" (also set FDA_FEEDBACK=4'b1111)
+ "DELAY_ADJMODE_FB": ( 17, 0, "PLLCONFIG_4"),
+
+ # 1'b0 = "FIXED"
+ # 1'b1 = "DYNAMIC" (also set FDA_RELATIVE=4'b1111)
+ "DELAY_ADJMODE_REL": ( 17, 0, "PLLCONFIG_9"),
+
+ # 2'b00 = "GENCLK"
+ # 2'b01 = "GENCLK_HALF"
+ # 2'b10 = "SHIFTREG_90deg"
+ # 2'b11 = "SHIFTREG_0deg"
+ "PLLOUT_SELECT_A_0": ( 16, 0, "PLLCONFIG_6"),
+ "PLLOUT_SELECT_A_1": ( 16, 0, "PLLCONFIG_7"),
+
+ # 2'b00 = "GENCLK"
+ # 2'b01 = "GENCLK_HALF"
+ # 2'b10 = "SHIFTREG_90deg"
+ # 2'b11 = "SHIFTREG_0deg"
+ "PLLOUT_SELECT_B_0": ( 16, 0, "PLLCONFIG_2"),
+ "PLLOUT_SELECT_B_1": ( 16, 0, "PLLCONFIG_3"),
+
+ # Numeric Parameters
+ "SHIFTREG_DIV_MODE": ( 16, 0, "PLLCONFIG_4"),
+ "FDA_FEEDBACK_0": ( 16, 0, "PLLCONFIG_9"),
+ "FDA_FEEDBACK_1": ( 17, 0, "PLLCONFIG_1"),
+ "FDA_FEEDBACK_2": ( 17, 0, "PLLCONFIG_2"),
+ "FDA_FEEDBACK_3": ( 17, 0, "PLLCONFIG_3"),
+ "FDA_RELATIVE_0": ( 17, 0, "PLLCONFIG_5"),
+ "FDA_RELATIVE_1": ( 17, 0, "PLLCONFIG_6"),
+ "FDA_RELATIVE_2": ( 17, 0, "PLLCONFIG_7"),
+ "FDA_RELATIVE_3": ( 17, 0, "PLLCONFIG_8"),
+ "DIVR_0": ( 14, 0, "PLLCONFIG_1"),
+ "DIVR_1": ( 14, 0, "PLLCONFIG_2"),
+ "DIVR_2": ( 14, 0, "PLLCONFIG_3"),
+ "DIVR_3": ( 14, 0, "PLLCONFIG_4"),
+ "DIVF_0": ( 14, 0, "PLLCONFIG_5"),
+ "DIVF_1": ( 14, 0, "PLLCONFIG_6"),
+ "DIVF_2": ( 14, 0, "PLLCONFIG_7"),
+ "DIVF_3": ( 14, 0, "PLLCONFIG_8"),
+ "DIVF_4": ( 14, 0, "PLLCONFIG_9"),
+ "DIVF_5": ( 15, 0, "PLLCONFIG_1"),
+ "DIVF_6": ( 15, 0, "PLLCONFIG_2"),
+ "DIVQ_0": ( 15, 0, "PLLCONFIG_3"),
+ "DIVQ_1": ( 15, 0, "PLLCONFIG_4"),
+ "DIVQ_2": ( 15, 0, "PLLCONFIG_5"),
+ "FILTER_RANGE_0": ( 15, 0, "PLLCONFIG_6"),
+ "FILTER_RANGE_1": ( 15, 0, "PLLCONFIG_7"),
+ "FILTER_RANGE_2": ( 15, 0, "PLLCONFIG_8"),
+ "TEST_MODE": ( 16, 0, "PLLCONFIG_8"),
+
+ # PLL Ports
+ "PLLOUT_A": ( 16, 0, 1),
+ "PLLOUT_B": ( 17, 0, 0),
+ "REFERENCECLK": ( 13, 0, "fabout"),
+ "EXTFEEDBACK": ( 14, 0, "fabout"),
+ "DYNAMICDELAY_0": ( 5, 0, "fabout"),
+ "DYNAMICDELAY_1": ( 6, 0, "fabout"),
+ "DYNAMICDELAY_2": ( 7, 0, "fabout"),
+ "DYNAMICDELAY_3": ( 8, 0, "fabout"),
+ "DYNAMICDELAY_4": ( 9, 0, "fabout"),
+ "DYNAMICDELAY_5": ( 10, 0, "fabout"),
+ "DYNAMICDELAY_6": ( 11, 0, "fabout"),
+ "DYNAMICDELAY_7": ( 12, 0, "fabout"),
+ "LOCK": ( 1, 1, "neigh_op_bnl_1"),
+ "BYPASS": ( 19, 0, "fabout"),
+ "RESETB": ( 20, 0, "fabout"),
+ "LATCHINPUTVALUE": ( 15, 0, "fabout"),
+ "SDO": ( 32, 1, "neigh_op_bnr_3"),
+ "SDI": ( 22, 0, "fabout"),
+ "SCLK": ( 21, 0, "fabout"),
+ },
+ "8k_1": {
+ "LOC" : (16, 33),
+
+ # 3'b000 = "DISABLED"
+ # 3'b010 = "SB_PLL40_PAD"
+ # 3'b100 = "SB_PLL40_2_PAD"
+ # 3'b110 = "SB_PLL40_2F_PAD"
+ # 3'b011 = "SB_PLL40_CORE"
+ # 3'b111 = "SB_PLL40_2F_CORE"
+ "PLLTYPE_0": ( 16, 33, "PLLCONFIG_5"),
+ "PLLTYPE_1": ( 18, 33, "PLLCONFIG_1"),
+ "PLLTYPE_2": ( 18, 33, "PLLCONFIG_3"),
+
+ # 3'b000 = "DELAY"
+ # 3'b001 = "SIMPLE"
+ # 3'b010 = "PHASE_AND_DELAY"
+ # 3'b110 = "EXTERNAL"
+ "FEEDBACK_PATH_0": ( 18, 33, "PLLCONFIG_5"),
+ "FEEDBACK_PATH_1": ( 15, 33, "PLLCONFIG_9"),
+ "FEEDBACK_PATH_2": ( 16, 33, "PLLCONFIG_1"),
+
+ # 1'b0 = "FIXED"
+ # 1'b1 = "DYNAMIC" (also set FDA_FEEDBACK=4'b1111)
+ "DELAY_ADJMODE_FB": ( 17, 33, "PLLCONFIG_4"),
+
+ # 1'b0 = "FIXED"
+ # 1'b1 = "DYNAMIC" (also set FDA_RELATIVE=4'b1111)
+ "DELAY_ADJMODE_REL": ( 17, 33, "PLLCONFIG_9"),
+
+ # 2'b00 = "GENCLK"
+ # 2'b01 = "GENCLK_HALF"
+ # 2'b10 = "SHIFTREG_90deg"
+ # 2'b11 = "SHIFTREG_0deg"
+ "PLLOUT_SELECT_A_0": ( 16, 33, "PLLCONFIG_6"),
+ "PLLOUT_SELECT_A_1": ( 16, 33, "PLLCONFIG_7"),
+
+ # 2'b00 = "GENCLK"
+ # 2'b01 = "GENCLK_HALF"
+ # 2'b10 = "SHIFTREG_90deg"
+ # 2'b11 = "SHIFTREG_0deg"
+ "PLLOUT_SELECT_B_0": ( 16, 33, "PLLCONFIG_2"),
+ "PLLOUT_SELECT_B_1": ( 16, 33, "PLLCONFIG_3"),
+
+ # Numeric Parameters
+ "SHIFTREG_DIV_MODE": ( 16, 33, "PLLCONFIG_4"),
+ "FDA_FEEDBACK_0": ( 16, 33, "PLLCONFIG_9"),
+ "FDA_FEEDBACK_1": ( 17, 33, "PLLCONFIG_1"),
+ "FDA_FEEDBACK_2": ( 17, 33, "PLLCONFIG_2"),
+ "FDA_FEEDBACK_3": ( 17, 33, "PLLCONFIG_3"),
+ "FDA_RELATIVE_0": ( 17, 33, "PLLCONFIG_5"),
+ "FDA_RELATIVE_1": ( 17, 33, "PLLCONFIG_6"),
+ "FDA_RELATIVE_2": ( 17, 33, "PLLCONFIG_7"),
+ "FDA_RELATIVE_3": ( 17, 33, "PLLCONFIG_8"),
+ "DIVR_0": ( 14, 33, "PLLCONFIG_1"),
+ "DIVR_1": ( 14, 33, "PLLCONFIG_2"),
+ "DIVR_2": ( 14, 33, "PLLCONFIG_3"),
+ "DIVR_3": ( 14, 33, "PLLCONFIG_4"),
+ "DIVF_0": ( 14, 33, "PLLCONFIG_5"),
+ "DIVF_1": ( 14, 33, "PLLCONFIG_6"),
+ "DIVF_2": ( 14, 33, "PLLCONFIG_7"),
+ "DIVF_3": ( 14, 33, "PLLCONFIG_8"),
+ "DIVF_4": ( 14, 33, "PLLCONFIG_9"),
+ "DIVF_5": ( 15, 33, "PLLCONFIG_1"),
+ "DIVF_6": ( 15, 33, "PLLCONFIG_2"),
+ "DIVQ_0": ( 15, 33, "PLLCONFIG_3"),
+ "DIVQ_1": ( 15, 33, "PLLCONFIG_4"),
+ "DIVQ_2": ( 15, 33, "PLLCONFIG_5"),
+ "FILTER_RANGE_0": ( 15, 33, "PLLCONFIG_6"),
+ "FILTER_RANGE_1": ( 15, 33, "PLLCONFIG_7"),
+ "FILTER_RANGE_2": ( 15, 33, "PLLCONFIG_8"),
+ "TEST_MODE": ( 16, 33, "PLLCONFIG_8"),
+
+ # PLL Ports
+ "PLLOUT_A": ( 16, 33, 1),
+ "PLLOUT_B": ( 17, 33, 0),
+ "REFERENCECLK": ( 13, 33, "fabout"),
+ "EXTFEEDBACK": ( 14, 33, "fabout"),
+ "DYNAMICDELAY_0": ( 5, 33, "fabout"),
+ "DYNAMICDELAY_1": ( 6, 33, "fabout"),
+ "DYNAMICDELAY_2": ( 7, 33, "fabout"),
+ "DYNAMICDELAY_3": ( 8, 33, "fabout"),
+ "DYNAMICDELAY_4": ( 9, 33, "fabout"),
+ "DYNAMICDELAY_5": ( 10, 33, "fabout"),
+ "DYNAMICDELAY_6": ( 11, 33, "fabout"),
+ "DYNAMICDELAY_7": ( 12, 33, "fabout"),
+ "LOCK": ( 1, 32, "neigh_op_tnl_1"),
+ "BYPASS": ( 19, 33, "fabout"),
+ "RESETB": ( 20, 33, "fabout"),
+ "LATCHINPUTVALUE": ( 15, 33, "fabout"),
+ "SDO": ( 32, 32, "neigh_op_tnr_1"),
+ "SDI": ( 22, 33, "fabout"),
+ "SCLK": ( 21, 33, "fabout"),
+ },
+}
+
padin_pio_db = {
"1k": [
(13, 8, 1), # glb_netwk_0
@@ -978,116 +1355,645 @@ padin_pio_db = {
(13, 9, 0), # glb_netwk_5
( 6, 0, 1), # glb_netwk_6
( 6, 17, 1), # glb_netwk_7
+ ],
+ "8k": [
+ (33, 16, 1),
+ ( 0, 16, 1),
+ (17, 33, 0),
+ (17, 0, 0),
+ ( 0, 17, 0),
+ (33, 17, 0),
+ (16, 0, 1),
+ (16, 33, 1),
]
}
ieren_db = {
"1k": [
# IO-block (X, Y, Z) <-> IeRen-block (X, Y, Z)
- ( 0, 14, 1, 0, 14, 0),
- ( 0, 14, 0, 0, 14, 1),
- ( 0, 13, 1, 0, 13, 0),
- ( 0, 13, 0, 0, 13, 1),
- ( 0, 12, 1, 0, 12, 0),
- ( 0, 12, 0, 0, 12, 1),
- ( 0, 11, 1, 0, 11, 0),
- ( 0, 11, 0, 0, 11, 1),
- ( 0, 10, 1, 0, 10, 0),
- ( 0, 10, 0, 0, 10, 1),
- ( 0, 9, 1, 0, 9, 0),
- ( 0, 9, 0, 0, 9, 1),
- ( 0, 8, 1, 0, 8, 0),
- ( 0, 8, 0, 0, 8, 1),
- ( 0, 6, 1, 0, 6, 0),
- ( 0, 6, 0, 0, 6, 1),
- ( 0, 5, 1, 0, 5, 0),
- ( 0, 5, 0, 0, 5, 1),
- ( 0, 4, 1, 0, 4, 0),
- ( 0, 4, 0, 0, 4, 1),
- ( 0, 3, 1, 0, 3, 0),
- ( 0, 3, 0, 0, 3, 1),
- ( 0, 2, 1, 0, 2, 0),
- ( 0, 2, 0, 0, 2, 1),
- ( 1, 0, 0, 1, 0, 0),
- ( 1, 0, 1, 1, 0, 1),
- ( 2, 0, 0, 2, 0, 0),
- ( 2, 0, 1, 2, 0, 1),
- ( 3, 0, 0, 3, 0, 0),
- ( 3, 0, 1, 3, 0, 1),
- ( 4, 0, 0, 4, 0, 0),
- ( 4, 0, 1, 4, 0, 1),
- ( 5, 0, 0, 5, 0, 0),
- ( 5, 0, 1, 5, 0, 1),
- ( 6, 0, 1, 6, 0, 0),
- ( 7, 0, 0, 6, 0, 1),
- ( 6, 0, 0, 7, 0, 0),
- ( 7, 0, 1, 7, 0, 1),
- ( 8, 0, 0, 8, 0, 0),
- ( 8, 0, 1, 8, 0, 1),
- ( 9, 0, 0, 9, 0, 0),
- ( 9, 0, 1, 9, 0, 1),
- (10, 0, 0, 10, 0, 0),
- (10, 0, 1, 10, 0, 1),
- (11, 0, 0, 11, 0, 0),
- (11, 0, 1, 11, 0, 1),
- (12, 0, 0, 12, 0, 0),
- (12, 0, 1, 12, 0, 1),
- (13, 1, 0, 13, 1, 0),
- (13, 1, 1, 13, 1, 1),
- (13, 2, 0, 13, 2, 0),
- (13, 2, 1, 13, 2, 1),
- (13, 3, 1, 13, 3, 1),
- (13, 4, 0, 13, 4, 0),
- (13, 4, 1, 13, 4, 1),
- (13, 6, 0, 13, 6, 0),
- (13, 6, 1, 13, 6, 1),
- (13, 7, 0, 13, 7, 0),
- (13, 7, 1, 13, 7, 1),
- (13, 8, 0, 13, 8, 0),
- (13, 8, 1, 13, 8, 1),
- (13, 9, 0, 13, 9, 0),
- (13, 9, 1, 13, 9, 1),
- (13, 11, 0, 13, 10, 0),
- (13, 11, 1, 13, 10, 1),
- (13, 12, 0, 13, 11, 0),
- (13, 12, 1, 13, 11, 1),
- (13, 13, 0, 13, 13, 0),
- (13, 13, 1, 13, 13, 1),
- (13, 14, 0, 13, 14, 0),
- (13, 14, 1, 13, 14, 1),
- (13, 15, 0, 13, 15, 0),
- (13, 15, 1, 13, 15, 1),
- (12, 17, 1, 12, 17, 1),
- (12, 17, 0, 12, 17, 0),
- (11, 17, 1, 11, 17, 1),
- (11, 17, 0, 11, 17, 0),
- (10, 17, 1, 9, 17, 1),
- (10, 17, 0, 9, 17, 0),
- ( 9, 17, 1, 10, 17, 1),
- ( 9, 17, 0, 10, 17, 0),
- ( 8, 17, 1, 8, 17, 1),
- ( 8, 17, 0, 8, 17, 0),
- ( 7, 17, 1, 7, 17, 1),
- ( 7, 17, 0, 7, 17, 0),
- ( 6, 17, 1, 6, 17, 1),
- ( 5, 17, 1, 5, 17, 1),
- ( 5, 17, 0, 5, 17, 0),
- ( 4, 17, 1, 4, 17, 1),
- ( 4, 17, 0, 4, 17, 0),
- ( 3, 17, 1, 3, 17, 1),
- ( 3, 17, 0, 3, 17, 0),
- ( 2, 17, 1, 2, 17, 1),
- ( 2, 17, 0, 2, 17, 0),
- ( 1, 17, 1, 1, 17, 1),
- ( 1, 17, 0, 1, 17, 0)
+ ( 0, 2, 0, 0, 2, 1),
+ ( 0, 2, 1, 0, 2, 0),
+ ( 0, 3, 0, 0, 3, 1),
+ ( 0, 3, 1, 0, 3, 0),
+ ( 0, 4, 0, 0, 4, 1),
+ ( 0, 4, 1, 0, 4, 0),
+ ( 0, 5, 0, 0, 5, 1),
+ ( 0, 5, 1, 0, 5, 0),
+ ( 0, 6, 0, 0, 6, 1),
+ ( 0, 6, 1, 0, 6, 0),
+ ( 0, 8, 0, 0, 8, 1),
+ ( 0, 8, 1, 0, 8, 0),
+ ( 0, 9, 0, 0, 9, 1),
+ ( 0, 9, 1, 0, 9, 0),
+ ( 0, 10, 0, 0, 10, 1),
+ ( 0, 10, 1, 0, 10, 0),
+ ( 0, 11, 0, 0, 11, 1),
+ ( 0, 11, 1, 0, 11, 0),
+ ( 0, 12, 0, 0, 12, 1),
+ ( 0, 12, 1, 0, 12, 0),
+ ( 0, 13, 0, 0, 13, 1),
+ ( 0, 13, 1, 0, 13, 0),
+ ( 0, 14, 0, 0, 14, 1),
+ ( 0, 14, 1, 0, 14, 0),
+ ( 1, 0, 0, 1, 0, 0),
+ ( 1, 0, 1, 1, 0, 1),
+ ( 1, 17, 0, 1, 17, 0),
+ ( 1, 17, 1, 1, 17, 1),
+ ( 2, 0, 0, 2, 0, 0),
+ ( 2, 0, 1, 2, 0, 1),
+ ( 2, 17, 0, 2, 17, 0),
+ ( 2, 17, 1, 2, 17, 1),
+ ( 3, 0, 0, 3, 0, 0),
+ ( 3, 0, 1, 3, 0, 1),
+ ( 3, 17, 0, 3, 17, 0),
+ ( 3, 17, 1, 3, 17, 1),
+ ( 4, 0, 0, 4, 0, 0),
+ ( 4, 0, 1, 4, 0, 1),
+ ( 4, 17, 0, 4, 17, 0),
+ ( 4, 17, 1, 4, 17, 1),
+ ( 5, 0, 0, 5, 0, 0),
+ ( 5, 0, 1, 5, 0, 1),
+ ( 5, 17, 0, 5, 17, 0),
+ ( 5, 17, 1, 5, 17, 1),
+ ( 6, 0, 0, 7, 0, 0),
+ ( 6, 0, 1, 6, 0, 0),
+ ( 6, 17, 1, 6, 17, 1),
+ ( 7, 0, 0, 6, 0, 1),
+ ( 7, 0, 1, 7, 0, 1),
+ ( 7, 17, 0, 7, 17, 0),
+ ( 7, 17, 1, 7, 17, 1),
+ ( 8, 0, 0, 8, 0, 0),
+ ( 8, 0, 1, 8, 0, 1),
+ ( 8, 17, 0, 8, 17, 0),
+ ( 8, 17, 1, 8, 17, 1),
+ ( 9, 0, 0, 9, 0, 0),
+ ( 9, 0, 1, 9, 0, 1),
+ ( 9, 17, 0, 10, 17, 0),
+ ( 9, 17, 1, 10, 17, 1),
+ (10, 0, 0, 10, 0, 0),
+ (10, 0, 1, 10, 0, 1),
+ (10, 17, 0, 9, 17, 0),
+ (10, 17, 1, 9, 17, 1),
+ (11, 0, 0, 11, 0, 0),
+ (11, 0, 1, 11, 0, 1),
+ (11, 17, 0, 11, 17, 0),
+ (11, 17, 1, 11, 17, 1),
+ (12, 0, 0, 12, 0, 0),
+ (12, 0, 1, 12, 0, 1),
+ (12, 17, 0, 12, 17, 0),
+ (12, 17, 1, 12, 17, 1),
+ (13, 1, 0, 13, 1, 0),
+ (13, 1, 1, 13, 1, 1),
+ (13, 2, 0, 13, 2, 0),
+ (13, 2, 1, 13, 2, 1),
+ (13, 3, 1, 13, 3, 1),
+ (13, 4, 0, 13, 4, 0),
+ (13, 4, 1, 13, 4, 1),
+ (13, 6, 0, 13, 6, 0),
+ (13, 6, 1, 13, 6, 1),
+ (13, 7, 0, 13, 7, 0),
+ (13, 7, 1, 13, 7, 1),
+ (13, 8, 0, 13, 8, 0),
+ (13, 8, 1, 13, 8, 1),
+ (13, 9, 0, 13, 9, 0),
+ (13, 9, 1, 13, 9, 1),
+ (13, 11, 0, 13, 10, 0),
+ (13, 11, 1, 13, 10, 1),
+ (13, 12, 0, 13, 11, 0),
+ (13, 12, 1, 13, 11, 1),
+ (13, 13, 0, 13, 13, 0),
+ (13, 13, 1, 13, 13, 1),
+ (13, 14, 0, 13, 14, 0),
+ (13, 14, 1, 13, 14, 1),
+ (13, 15, 0, 13, 15, 0),
+ (13, 15, 1, 13, 15, 1),
+ ],
+ "8k": [
+ ( 0, 3, 0, 0, 3, 0),
+ ( 0, 3, 1, 0, 3, 1),
+ ( 0, 4, 0, 0, 4, 0),
+ ( 0, 4, 1, 0, 4, 1),
+ ( 0, 5, 0, 0, 5, 0),
+ ( 0, 5, 1, 0, 5, 1),
+ ( 0, 6, 0, 0, 6, 0),
+ ( 0, 6, 1, 0, 6, 1),
+ ( 0, 7, 0, 0, 7, 0),
+ ( 0, 7, 1, 0, 7, 1),
+ ( 0, 8, 0, 0, 8, 0),
+ ( 0, 8, 1, 0, 8, 1),
+ ( 0, 9, 0, 0, 9, 0),
+ ( 0, 9, 1, 0, 9, 1),
+ ( 0, 10, 0, 0, 10, 0),
+ ( 0, 10, 1, 0, 10, 1),
+ ( 0, 11, 0, 0, 11, 0),
+ ( 0, 11, 1, 0, 11, 1),
+ ( 0, 12, 0, 0, 12, 0),
+ ( 0, 12, 1, 0, 12, 1),
+ ( 0, 13, 0, 0, 13, 0),
+ ( 0, 13, 1, 0, 13, 1),
+ ( 0, 14, 0, 0, 14, 0),
+ ( 0, 14, 1, 0, 14, 1),
+ ( 0, 16, 0, 0, 16, 0),
+ ( 0, 16, 1, 0, 16, 1),
+ ( 0, 17, 0, 0, 17, 0),
+ ( 0, 17, 1, 0, 17, 1),
+ ( 0, 18, 0, 0, 18, 0),
+ ( 0, 18, 1, 0, 18, 1),
+ ( 0, 19, 0, 0, 19, 0),
+ ( 0, 19, 1, 0, 19, 1),
+ ( 0, 20, 0, 0, 20, 0),
+ ( 0, 20, 1, 0, 20, 1),
+ ( 0, 21, 0, 0, 21, 0),
+ ( 0, 21, 1, 0, 21, 1),
+ ( 0, 22, 0, 0, 22, 0),
+ ( 0, 22, 1, 0, 22, 1),
+ ( 0, 23, 0, 0, 23, 0),
+ ( 0, 23, 1, 0, 23, 1),
+ ( 0, 24, 0, 0, 24, 0),
+ ( 0, 24, 1, 0, 24, 1),
+ ( 0, 25, 0, 0, 25, 0),
+ ( 0, 25, 1, 0, 25, 1),
+ ( 0, 27, 0, 0, 27, 0),
+ ( 0, 27, 1, 0, 27, 1),
+ ( 0, 28, 0, 0, 28, 0),
+ ( 0, 28, 1, 0, 28, 1),
+ ( 0, 30, 0, 0, 30, 0),
+ ( 0, 30, 1, 0, 30, 1),
+ ( 0, 31, 0, 0, 31, 0),
+ ( 0, 31, 1, 0, 31, 1),
+ ( 1, 33, 0, 1, 33, 0),
+ ( 1, 33, 1, 1, 33, 1),
+ ( 2, 0, 0, 2, 0, 0),
+ ( 2, 0, 1, 2, 0, 1),
+ ( 2, 33, 0, 2, 33, 0),
+ ( 2, 33, 1, 2, 33, 1),
+ ( 3, 0, 0, 3, 0, 0),
+ ( 3, 0, 1, 3, 0, 1),
+ ( 3, 33, 0, 3, 33, 0),
+ ( 3, 33, 1, 3, 33, 1),
+ ( 4, 0, 0, 4, 0, 0),
+ ( 4, 0, 1, 4, 0, 1),
+ ( 4, 33, 0, 4, 33, 0),
+ ( 4, 33, 1, 4, 33, 1),
+ ( 5, 0, 0, 5, 0, 0),
+ ( 5, 0, 1, 5, 0, 1),
+ ( 5, 33, 0, 5, 33, 0),
+ ( 5, 33, 1, 5, 33, 1),
+ ( 6, 0, 0, 6, 0, 0),
+ ( 6, 0, 1, 6, 0, 1),
+ ( 6, 33, 1, 6, 33, 1),
+ ( 7, 0, 1, 7, 0, 1),
+ ( 7, 33, 0, 7, 33, 0),
+ ( 7, 33, 1, 7, 33, 1),
+ ( 8, 0, 0, 8, 0, 0),
+ ( 8, 33, 0, 8, 33, 0),
+ ( 8, 33, 1, 8, 33, 1),
+ ( 9, 0, 0, 9, 0, 0),
+ ( 9, 0, 1, 9, 0, 1),
+ ( 9, 33, 0, 9, 33, 0),
+ ( 9, 33, 1, 9, 33, 1),
+ (10, 0, 0, 10, 0, 0),
+ (10, 0, 1, 10, 0, 1),
+ (10, 33, 0, 10, 33, 0),
+ (10, 33, 1, 10, 33, 1),
+ (11, 0, 1, 11, 0, 1),
+ (11, 33, 0, 11, 33, 0),
+ (11, 33, 1, 11, 33, 1),
+ (12, 0, 0, 12, 0, 0),
+ (12, 0, 1, 12, 0, 1),
+ (12, 33, 0, 12, 33, 0),
+ (13, 0, 0, 13, 0, 0),
+ (13, 0, 1, 13, 0, 1),
+ (13, 33, 0, 13, 33, 0),
+ (14, 0, 0, 14, 0, 0),
+ (14, 0, 1, 14, 0, 1),
+ (14, 33, 1, 14, 33, 1),
+ (15, 0, 0, 15, 0, 0),
+ (15, 0, 1, 15, 0, 1),
+ (16, 0, 0, 16, 0, 0),
+ (16, 0, 1, 16, 0, 1),
+ (16, 33, 0, 16, 33, 0),
+ (16, 33, 1, 16, 33, 1),
+ (17, 0, 0, 17, 0, 0),
+ (17, 0, 1, 17, 0, 1),
+ (17, 33, 0, 17, 33, 0),
+ (17, 33, 1, 17, 33, 1),
+ (18, 33, 1, 18, 33, 1),
+ (19, 0, 0, 19, 0, 0),
+ (19, 0, 1, 19, 0, 1),
+ (19, 33, 0, 19, 33, 0),
+ (19, 33, 1, 19, 33, 1),
+ (20, 0, 0, 20, 0, 0),
+ (20, 0, 1, 20, 0, 1),
+ (20, 33, 0, 20, 33, 0),
+ (20, 33, 1, 20, 33, 1),
+ (21, 0, 0, 21, 0, 0),
+ (21, 0, 1, 21, 0, 1),
+ (22, 0, 1, 22, 0, 1),
+ (22, 33, 0, 22, 33, 0),
+ (22, 33, 1, 22, 33, 1),
+ (23, 0, 0, 23, 0, 0),
+ (23, 0, 1, 23, 0, 1),
+ (23, 33, 0, 23, 33, 0),
+ (23, 33, 1, 23, 33, 1),
+ (24, 0, 0, 24, 0, 0),
+ (24, 33, 0, 24, 33, 0),
+ (24, 33, 1, 24, 33, 1),
+ (25, 33, 0, 25, 33, 0),
+ (25, 33, 1, 25, 33, 1),
+ (26, 0, 0, 26, 0, 0),
+ (26, 0, 1, 26, 0, 1),
+ (26, 33, 0, 26, 33, 0),
+ (26, 33, 1, 26, 33, 1),
+ (27, 0, 0, 27, 0, 0),
+ (27, 0, 1, 27, 0, 1),
+ (27, 33, 0, 27, 33, 0),
+ (27, 33, 1, 27, 33, 1),
+ (28, 0, 0, 28, 0, 0),
+ (28, 33, 1, 28, 33, 1),
+ (29, 0, 0, 29, 0, 0),
+ (29, 0, 1, 29, 0, 1),
+ (29, 33, 0, 29, 33, 0),
+ (29, 33, 1, 29, 33, 1),
+ (30, 0, 0, 30, 0, 0),
+ (30, 0, 1, 30, 0, 1),
+ (30, 33, 0, 30, 33, 0),
+ (30, 33, 1, 30, 33, 1),
+ (31, 0, 0, 31, 0, 0),
+ (31, 0, 1, 31, 0, 1),
+ (31, 33, 0, 31, 33, 0),
+ (31, 33, 1, 31, 33, 1),
+ (33, 1, 0, 33, 1, 0),
+ (33, 1, 1, 33, 1, 1),
+ (33, 2, 0, 33, 2, 0),
+ (33, 2, 1, 33, 2, 1),
+ (33, 3, 0, 33, 3, 0),
+ (33, 3, 1, 33, 3, 1),
+ (33, 4, 0, 33, 4, 0),
+ (33, 4, 1, 33, 4, 1),
+ (33, 5, 0, 33, 5, 0),
+ (33, 5, 1, 33, 5, 1),
+ (33, 6, 0, 33, 6, 0),
+ (33, 6, 1, 33, 6, 1),
+ (33, 7, 0, 33, 7, 0),
+ (33, 7, 1, 33, 7, 1),
+ (33, 8, 0, 33, 8, 0),
+ (33, 9, 1, 33, 9, 1),
+ (33, 10, 0, 33, 10, 0),
+ (33, 10, 1, 33, 10, 1),
+ (33, 11, 0, 33, 11, 0),
+ (33, 11, 1, 33, 11, 1),
+ (33, 12, 0, 33, 12, 0),
+ (33, 13, 0, 33, 13, 0),
+ (33, 13, 1, 33, 13, 1),
+ (33, 14, 1, 33, 14, 1),
+ (33, 15, 0, 33, 15, 0),
+ (33, 15, 1, 33, 15, 1),
+ (33, 16, 0, 33, 16, 0),
+ (33, 16, 1, 33, 16, 1),
+ (33, 17, 0, 33, 17, 0),
+ (33, 17, 1, 33, 17, 1),
+ (33, 19, 0, 33, 19, 0),
+ (33, 19, 1, 33, 19, 1),
+ (33, 20, 0, 33, 20, 0),
+ (33, 20, 1, 33, 20, 1),
+ (33, 21, 0, 33, 21, 0),
+ (33, 21, 1, 33, 21, 1),
+ (33, 22, 0, 33, 22, 0),
+ (33, 22, 1, 33, 22, 1),
+ (33, 23, 0, 33, 23, 0),
+ (33, 23, 1, 33, 23, 1),
+ (33, 24, 0, 33, 24, 0),
+ (33, 24, 1, 33, 24, 1),
+ (33, 25, 0, 33, 25, 0),
+ (33, 25, 1, 33, 25, 1),
+ (33, 26, 0, 33, 26, 0),
+ (33, 26, 1, 33, 26, 1),
+ (33, 27, 1, 33, 27, 1),
+ (33, 28, 0, 33, 28, 0),
+ (33, 28, 1, 33, 28, 1),
+ (33, 30, 0, 33, 30, 0),
+ (33, 30, 1, 33, 30, 1),
+ (33, 31, 0, 33, 31, 0),
+ ]
+}
+
+pinloc_db = {
+ "1k-tq144": [
+ ( "1", 0, 14, 1),
+ ( "10", 0, 11, 0),
+ ("101", 13, 13, 0),
+ ("102", 13, 13, 1),
+ ("104", 13, 14, 0),
+ ("105", 13, 14, 1),
+ ("106", 13, 15, 0),
+ ("107", 13, 15, 1),
+ ( "11", 0, 10, 1),
+ ("112", 12, 17, 1),
+ ("113", 12, 17, 0),
+ ("114", 11, 17, 1),
+ ("115", 11, 17, 0),
+ ("116", 10, 17, 1),
+ ("117", 10, 17, 0),
+ ("118", 9, 17, 1),
+ ("119", 9, 17, 0),
+ ( "12", 0, 10, 0),
+ ("120", 8, 17, 1),
+ ("121", 8, 17, 0),
+ ("122", 7, 17, 1),
+ ("128", 7, 17, 0),
+ ("129", 6, 17, 1),
+ ("134", 5, 17, 1),
+ ("135", 5, 17, 0),
+ ("136", 4, 17, 1),
+ ("137", 4, 17, 0),
+ ("138", 3, 17, 1),
+ ("139", 3, 17, 0),
+ ("141", 2, 17, 1),
+ ("142", 2, 17, 0),
+ ("143", 1, 17, 1),
+ ("144", 1, 17, 0),
+ ( "19", 0, 9, 1),
+ ( "2", 0, 14, 0),
+ ( "20", 0, 9, 0),
+ ( "21", 0, 8, 1),
+ ( "22", 0, 8, 0),
+ ( "23", 0, 6, 1),
+ ( "24", 0, 6, 0),
+ ( "25", 0, 5, 1),
+ ( "26", 0, 5, 0),
+ ( "28", 0, 4, 1),
+ ( "29", 0, 4, 0),
+ ( "3", 0, 13, 1),
+ ( "31", 0, 3, 1),
+ ( "32", 0, 3, 0),
+ ( "33", 0, 2, 1),
+ ( "34", 0, 2, 0),
+ ( "37", 1, 0, 0),
+ ( "38", 1, 0, 1),
+ ( "39", 2, 0, 0),
+ ( "4", 0, 13, 0),
+ ( "41", 2, 0, 1),
+ ( "42", 3, 0, 0),
+ ( "43", 3, 0, 1),
+ ( "44", 4, 0, 0),
+ ( "45", 4, 0, 1),
+ ( "47", 5, 0, 0),
+ ( "48", 5, 0, 1),
+ ( "49", 6, 0, 1),
+ ( "50", 7, 0, 0),
+ ( "52", 6, 0, 0),
+ ( "56", 7, 0, 1),
+ ( "58", 8, 0, 0),
+ ( "60", 8, 0, 1),
+ ( "61", 9, 0, 0),
+ ( "62", 9, 0, 1),
+ ( "63", 10, 0, 0),
+ ( "64", 10, 0, 1),
+ ( "67", 11, 0, 0),
+ ( "68", 11, 0, 1),
+ ( "7", 0, 12, 1),
+ ( "70", 12, 0, 0),
+ ( "71", 12, 0, 1),
+ ( "73", 13, 1, 0),
+ ( "74", 13, 1, 1),
+ ( "75", 13, 2, 0),
+ ( "76", 13, 2, 1),
+ ( "78", 13, 3, 1),
+ ( "79", 13, 4, 0),
+ ( "8", 0, 12, 0),
+ ( "80", 13, 4, 1),
+ ( "81", 13, 6, 0),
+ ( "87", 13, 6, 1),
+ ( "88", 13, 7, 0),
+ ( "9", 0, 11, 1),
+ ( "90", 13, 7, 1),
+ ( "91", 13, 8, 0),
+ ( "93", 13, 8, 1),
+ ( "94", 13, 9, 0),
+ ( "95", 13, 9, 1),
+ ( "96", 13, 11, 0),
+ ( "97", 13, 11, 1),
+ ( "98", 13, 12, 0),
+ ( "99", 13, 12, 1),
+ ],
+ "8k-ct256": [
+ ( "A1", 4, 33, 1),
+ ("A10", 22, 33, 1),
+ ("A11", 22, 33, 0),
+ ("A15", 27, 33, 0),
+ ("A16", 27, 33, 1),
+ ( "A2", 5, 33, 1),
+ ( "A5", 8, 33, 0),
+ ( "A6", 9, 33, 0),
+ ( "A7", 12, 33, 0),
+ ( "A9", 18, 33, 1),
+ ( "B1", 0, 30, 0),
+ ("B10", 24, 33, 0),
+ ("B11", 23, 33, 1),
+ ("B12", 24, 33, 1),
+ ("B13", 26, 33, 1),
+ ("B14", 30, 33, 0),
+ ("B15", 31, 33, 0),
+ ("B16", 33, 30, 0),
+ ( "B2", 0, 31, 0),
+ ( "B3", 3, 33, 0),
+ ( "B4", 6, 33, 1),
+ ( "B5", 7, 33, 1),
+ ( "B6", 10, 33, 1),
+ ( "B7", 11, 33, 0),
+ ( "B8", 13, 33, 0),
+ ( "B9", 16, 33, 0),
+ ( "C1", 0, 28, 1),
+ ("C10", 23, 33, 0),
+ ("C11", 25, 33, 1),
+ ("C12", 29, 33, 1),
+ ("C13", 28, 33, 1),
+ ("C14", 31, 33, 1),
+ ("C16", 33, 28, 0),
+ ( "C2", 0, 28, 0),
+ ( "C3", 1, 33, 0),
+ ( "C4", 3, 33, 1),
+ ( "C5", 4, 33, 0),
+ ( "C6", 10, 33, 0),
+ ( "C7", 11, 33, 1),
+ ( "C8", 17, 33, 0),
+ ( "C9", 20, 33, 0),
+ ( "D1", 0, 25, 0),
+ ("D10", 20, 33, 1),
+ ("D11", 25, 33, 0),
+ ("D13", 30, 33, 1),
+ ("D14", 33, 31, 0),
+ ("D15", 33, 26, 0),
+ ("D16", 33, 24, 0),
+ ( "D2", 0, 27, 0),
+ ( "D3", 1, 33, 1),
+ ( "D4", 2, 33, 1),
+ ( "D5", 5, 33, 0),
+ ( "D6", 8, 33, 1),
+ ( "D7", 9, 33, 1),
+ ( "D8", 14, 33, 1),
+ ( "D9", 19, 33, 0),
+ ("E10", 26, 33, 0),
+ ("E11", 29, 33, 0),
+ ("E13", 33, 30, 1),
+ ("E14", 33, 27, 1),
+ ("E16", 33, 23, 0),
+ ( "E2", 0, 23, 0),
+ ( "E3", 0, 24, 0),
+ ( "E4", 0, 31, 1),
+ ( "E5", 2, 33, 0),
+ ( "E6", 7, 33, 0),
+ ( "E9", 19, 33, 1),
+ ( "F1", 0, 20, 0),
+ ("F11", 33, 26, 1),
+ ("F12", 33, 25, 1),
+ ("F13", 33, 28, 1),
+ ("F14", 33, 25, 0),
+ ("F15", 33, 22, 0),
+ ("F16", 33, 21, 0),
+ ( "F2", 0, 21, 0),
+ ( "F3", 0, 22, 0),
+ ( "F4", 0, 27, 1),
+ ( "F5", 0, 30, 1),
+ ( "F7", 16, 33, 1),
+ ( "F9", 17, 33, 1),
+ ( "G1", 0, 17, 0),
+ ("G10", 33, 20, 1),
+ ("G11", 33, 21, 1),
+ ("G12", 33, 24, 1),
+ ("G13", 33, 23, 1),
+ ("G14", 33, 22, 1),
+ ("G15", 33, 20, 0),
+ ("G16", 33, 19, 0),
+ ( "G2", 0, 19, 0),
+ ( "G3", 0, 22, 1),
+ ( "G4", 0, 24, 1),
+ ( "G5", 0, 25, 1),
+ ( "H1", 0, 16, 0),
+ ("H11", 33, 16, 1),
+ ("H12", 33, 19, 1),
+ ("H13", 33, 16, 0),
+ ("H14", 33, 17, 1),
+ ("H16", 33, 17, 0),
+ ( "H2", 0, 18, 0),
+ ( "H3", 0, 21, 1),
+ ( "H4", 0, 19, 1),
+ ( "H5", 0, 23, 1),
+ ( "H6", 0, 20, 1),
+ ( "J1", 0, 14, 0),
+ ("J10", 33, 7, 1),
+ ("J11", 33, 9, 1),
+ ("J12", 33, 14, 1),
+ ("J13", 33, 15, 0),
+ ("J14", 33, 13, 1),
+ ("J15", 33, 11, 1),
+ ("J16", 33, 15, 1),
+ ( "J2", 0, 14, 1),
+ ( "J3", 0, 16, 1),
+ ( "J4", 0, 18, 1),
+ ( "J5", 0, 17, 1),
+ ( "K1", 0, 13, 1),
+ ("K11", 29, 0, 0),
+ ("K12", 33, 6, 1),
+ ("K13", 33, 10, 1),
+ ("K14", 33, 11, 0),
+ ("K15", 33, 12, 0),
+ ("K16", 33, 13, 0),
+ ( "K3", 0, 13, 0),
+ ( "K4", 0, 11, 1),
+ ( "K5", 0, 9, 1),
+ ( "K9", 17, 0, 0),
+ ( "L1", 0, 12, 0),
+ ("L10", 19, 0, 1),
+ ("L11", 26, 0, 1),
+ ("L12", 33, 4, 1),
+ ("L13", 33, 5, 1),
+ ("L14", 33, 6, 0),
+ ("L16", 33, 10, 0),
+ ( "L3", 0, 10, 0),
+ ( "L4", 0, 12, 1),
+ ( "L5", 0, 6, 1),
+ ( "L6", 0, 10, 1),
+ ( "L7", 0, 8, 1),
+ ( "L9", 13, 0, 0),
+ ( "M1", 0, 11, 0),
+ ("M11", 23, 0, 1),
+ ("M12", 27, 0, 1),
+ ("M13", 33, 3, 1),
+ ("M14", 33, 4, 0),
+ ("M15", 33, 8, 0),
+ ("M16", 33, 7, 0),
+ ( "M2", 0, 9, 0),
+ ( "M3", 0, 7, 0),
+ ( "M4", 0, 5, 0),
+ ( "M5", 0, 4, 0),
+ ( "M6", 0, 7, 1),
+ ( "M7", 8, 0, 0),
+ ( "M8", 10, 0, 0),
+ ( "M9", 16, 0, 0),
+ ("N10", 20, 0, 1),
+ ("N12", 26, 0, 0),
+ ("N16", 33, 5, 0),
+ ( "N2", 0, 8, 0),
+ ( "N3", 0, 6, 0),
+ ( "N4", 0, 3, 0),
+ ( "N5", 4, 0, 0),
+ ( "N6", 2, 0, 0),
+ ( "N7", 9, 0, 0),
+ ( "N9", 15, 0, 0),
+ ( "P1", 0, 5, 1),
+ ("P10", 20, 0, 0),
+ ("P11", 30, 0, 1),
+ ("P12", 30, 0, 0),
+ ("P13", 29, 0, 1),
+ ("P14", 33, 2, 0),
+ ("P15", 33, 2, 1),
+ ("P16", 33, 3, 0),
+ ( "P2", 0, 4, 1),
+ ( "P4", 3, 0, 0),
+ ( "P5", 5, 0, 0),
+ ( "P6", 9, 0, 1),
+ ( "P7", 14, 0, 1),
+ ( "P8", 12, 0, 0),
+ ( "P9", 17, 0, 1),
+ ( "R1", 0, 3, 1),
+ ("R10", 19, 0, 0),
+ ("R11", 31, 0, 0),
+ ("R12", 31, 0, 1),
+ ("R14", 33, 1, 0),
+ ("R15", 33, 1, 1),
+ ("R16", 28, 0, 0),
+ ( "R2", 3, 0, 1),
+ ( "R3", 5, 0, 1),
+ ( "R4", 7, 0, 1),
+ ( "R5", 6, 0, 0),
+ ( "R6", 11, 0, 1),
+ ( "R9", 16, 0, 1),
+ ( "T1", 2, 0, 1),
+ ("T10", 21, 0, 0),
+ ("T11", 21, 0, 1),
+ ("T13", 24, 0, 0),
+ ("T14", 23, 0, 0),
+ ("T15", 22, 0, 1),
+ ("T16", 27, 0, 0),
+ ( "T2", 4, 0, 1),
+ ( "T3", 6, 0, 1),
+ ( "T5", 10, 0, 1),
+ ( "T6", 12, 0, 1),
+ ( "T7", 13, 0, 1),
+ ( "T8", 14, 0, 0),
+ ( "T9", 15, 0, 1),
]
}
iotile_full_db = parse_db(iceboxdb.database_io_txt)
logictile_db = parse_db(iceboxdb.database_logic_txt)
+logictile_8k_db = parse_db(iceboxdb.database_logic_txt, True)
rambtile_db = parse_db(iceboxdb.database_ramb_txt)
ramttile_db = parse_db(iceboxdb.database_ramt_txt)
-pinloc_db = [[int(s) for s in line.split()] for line in iceboxdb.pinloc_txt.split("\n") if line != ""]
+rambtile_8k_db = parse_db(iceboxdb.database_ramb_8k_txt, True)
+ramttile_8k_db = parse_db(iceboxdb.database_ramt_8k_txt, True)
iotile_l_db = list()
iotile_r_db = list()
@@ -1120,11 +2026,14 @@ for entry in iotile_full_db:
logictile_db.append([["B1[49]"], "buffer", "carry_in", "carry_in_mux"])
logictile_db.append([["B1[50]"], "CarryInSet"])
-for db in [iotile_l_db, iotile_r_db, iotile_t_db, iotile_b_db, logictile_db, rambtile_db, ramttile_db]:
+logictile_8k_db.append([["B1[49]"], "buffer", "carry_in", "carry_in_mux"])
+logictile_8k_db.append([["B1[50]"], "CarryInSet"])
+
+for db in [iotile_l_db, iotile_r_db, iotile_t_db, iotile_b_db, logictile_db, logictile_8k_db, rambtile_db, ramttile_db, rambtile_8k_db, ramttile_8k_db]:
for entry in db:
if entry[1] in ("buffer", "routing"):
- entry[2] = netname_normalize(entry[2], ramb=(db == rambtile_db), ramt=(db == ramttile_db))
- entry[3] = netname_normalize(entry[3], ramb=(db == rambtile_db), ramt=(db == ramttile_db))
+ entry[2] = netname_normalize(entry[2], ramb=(db == rambtile_db), ramt=(db == ramttile_db), ramb_8k=(db == rambtile_8k_db), ramt_8k=(db == ramttile_8k_db))
+ entry[3] = netname_normalize(entry[3], ramb=(db == rambtile_db), ramt=(db == ramttile_db), ramb_8k=(db == rambtile_8k_db), ramt_8k=(db == ramttile_8k_db))
unique_entries = dict()
while db:
entry = db.pop()
diff --git a/icebox/icebox_chipdb.py b/icebox/icebox_chipdb.py
index c673f54..6fa0eaf 100755
--- a/icebox/icebox_chipdb.py
+++ b/icebox/icebox_chipdb.py
@@ -21,8 +21,33 @@ from __future__ import print_function
import icebox
import getopt, sys, re
+mode_8k = False
+
+def usage():
+ print("""
+Usage: icebox_chipdb [options] [bitmap.txt]
+
+ -8
+ create chipdb for 8k device
+""")
+ sys.exit(0)
+
+try:
+ opts, args = getopt.getopt(sys.argv[1:], "8")
+except:
+ usage()
+
+for o, a in opts:
+ if o == "-8":
+ mode_8k = True
+ else:
+ usage()
+
ic = icebox.iceconfig()
-ic.setup_empty_1k()
+if mode_8k:
+ ic.setup_empty_8k()
+else:
+ ic.setup_empty_1k()
all_tiles = set()
for x in range(ic.max_x+1):
@@ -34,7 +59,7 @@ seg_to_net = dict()
net_to_segs = list()
print("""#
-# IceBox Database Dump for iCE40 HX1K / LP1K
+# IceBox Chip Database Dump (iCE40 %s)
#
#
# Quick File Format Reference:
@@ -42,11 +67,11 @@ print("""#
#
# .device DEVICE WIDTH HEIGHT NUM_NETS
#
-# declares the device type (e.g. "1k")
+# declares the device type
#
#
# .pins PACKAGE
-# PIN_NUM TILE_X TILE_Y PIO_NUM GLB_NUM
+# PIN_NUM TILE_X TILE_Y PIO_NUM
# ...
#
# associates a package pin with an IO tile and block, and global network
@@ -56,14 +81,21 @@ print("""#
# TILE_X TILE_Y GLB_NUM
# ...
#
-# associates an IO tile with the global network it drives via wire_gbuf/in
+# associates an IO tile with the global network can drive via fabout
+#
+#
+# .gbufpin
+# TILE_X TILE_Y PIO_NUM GLB_NUM
+# ...
+#
+# associates an IO tile with the global network can drive via the pad
#
#
# .iolatch
# TILE_X TILE_Y
# ...
#
-# specifies the IO tiles that drive the latch signal for the bank via wire_gbuf/in
+# specifies the IO tiles that drive the latch signal for the bank via fabout
#
#
# .ieren
@@ -99,6 +131,13 @@ print("""#
# declares non-routing configuration bits of IO/LOGIC/RAM tiles
#
#
+# .extra_cell X Y
+# KEY MULTI-FIELD-VALUE
+# ....
+#
+# declares a special-purpose cell that is not part of the FPGA fabric
+#
+#
# .extra_bits
# FUNCTION BANK_NUM ADDR_X ADDR_Y
# ...
@@ -129,27 +168,32 @@ print("""#
#
# declares a routing switch in the specified tile
#
-""")
+""" % ic.device)
all_group_segments = ic.group_segments(all_tiles, connect_gb=False)
-print(".device 1k %d %d %d" % (ic.max_x+1, ic.max_y+1, len(all_group_segments)))
+print(".device %s %d %d %d" % (ic.device, ic.max_x+1, ic.max_y+1, len(all_group_segments)))
print()
-print(".pins tq144")
-pio_to_padin = dict()
-for padin, pio in enumerate(ic.padin_pio_db()):
- pio_to_padin[pio] = padin
-for entry in sorted(ic.pinloc_db()):
- pio = (entry[1], entry[2], entry[3])
- print("%d %d %d %d %d" % tuple(entry + [pio_to_padin[pio] if pio in pio_to_padin else -1]))
-print()
+for key in icebox.pinloc_db.keys():
+ key_dev, key_package = key.split("-")
+ if key_dev == ic.device:
+ print(".pins %s" % (key_package))
+ for entry in sorted(icebox.pinloc_db[key]):
+ print("%s %d %d %d" % entry)
+ print()
print(".gbufin")
for entry in sorted(ic.gbufin_db()):
print(" ".join(["%d" % k for k in entry]))
print()
+print(".gbufpin")
+for padin, pio in enumerate(ic.padin_pio_db()):
+ entry = pio + (padin,)
+ print(" ".join(["%d" % k for k in entry]))
+print()
+
print(".iolatch")
for entry in sorted(ic.iolatch_db()):
print(" ".join(["%d" % k for k in entry]))
@@ -208,6 +252,19 @@ print_tile_nonrouting_bits("io", ic.io_tiles.keys()[0])
print_tile_nonrouting_bits("ramb", ic.ramb_tiles.keys()[0])
print_tile_nonrouting_bits("ramt", ic.ramt_tiles.keys()[0])
+print(".extra_cell 0 0 WARMBOOT")
+for key in sorted(icebox.warmbootinfo_db[ic.device]):
+ print("%s %s" % (key, " ".join([str(k) for k in icebox.warmbootinfo_db[ic.device][key]])))
+print()
+
+for pllid in ic.pll_list():
+ pllinfo = icebox.pllinfo_db[pllid]
+ print(".extra_cell %d %d PLL" % pllinfo["LOC"])
+ for key in sorted(pllinfo):
+ if key != "LOC":
+ print("%s %s" % (key, " ".join([str(k) for k in pllinfo[key]])))
+ print()
+
print(".extra_bits")
extra_bits = dict()
for idx in sorted(ic.extra_bits_db()):
diff --git a/icebox/icebox_diff.py b/icebox/icebox_diff.py
index 59fa0a8..efea717 100755
--- a/icebox/icebox_diff.py
+++ b/icebox/icebox_diff.py
@@ -20,6 +20,7 @@ from __future__ import print_function
import icebox
import sys
+import re
print("Reading file '%s'.." % sys.argv[1])
ic1 = icebox.iceconfig()
@@ -38,7 +39,29 @@ def format_bits(line_nr, this_line, other_line):
else:
text += "%8s" % ""
return text
-
+
+def explained_bits(db, tile):
+ bits = set()
+ mapped_bits = set()
+ for k, line in enumerate(tile):
+ for i in range(len(line)):
+ if line[i] == "1":
+ bits.add("B%d[%d]" % (k, i))
+ else:
+ bits.add("!B%d[%d]" % (k, i))
+ text = set()
+ for entry in db:
+ if re.match(r"LC_", entry[1]):
+ continue
+ if entry[1] in ("routing", "buffer"):
+ continue
+ match = True
+ for bit in entry[0]:
+ if not bit in bits:
+ match = False
+ if match:
+ text.add("<%s> %s" % (",".join(entry[0]), " ".join(entry[1:])))
+ return text
def diff_tiles(stmt, tiles1, tiles2):
for i in sorted(set(tiles1.keys() + tiles2.keys())):
@@ -46,11 +69,13 @@ def diff_tiles(stmt, tiles1, tiles2):
print("+ %s %d %d" % (stmt, i[0], i[1]))
for line in tiles2[i]:
print("+ %s" % line)
+ print()
continue
if not i in tiles2:
print("- %s %d %d" % (stmt, i[0], i[1]))
for line in tiles1[i]:
print("- %s" % line)
+ print()
continue
if tiles1[i] == tiles2[i]:
continue
@@ -61,6 +86,15 @@ def diff_tiles(stmt, tiles1, tiles2):
else:
print("- %s%s" % (tiles1[i][c], format_bits(c, tiles1[i][c], tiles2[i][c])))
print("+ %s%s" % (tiles2[i][c], format_bits(c, tiles2[i][c], tiles1[i][c])))
+ bits1 = explained_bits(ic1.tile_db(i[0], i[1]), tiles1[i])
+ bits2 = explained_bits(ic2.tile_db(i[0], i[1]), tiles2[i])
+ for bit in sorted(bits1):
+ if bit not in bits2:
+ print("- %s" % bit)
+ for bit in sorted(bits2):
+ if bit not in bits1:
+ print("+ %s" % bit)
+ print()
diff_tiles(".io_tile", ic1.io_tiles, ic2.io_tiles)
diff_tiles(".logic_tile", ic1.logic_tiles, ic2.logic_tiles)
diff --git a/icebox/icebox_html.py b/icebox/icebox_html.py
index d3779ab..dbd2e5d 100755
--- a/icebox/icebox_html.py
+++ b/icebox/icebox_html.py
@@ -275,7 +275,7 @@ nets are connected with nets from cells in its neighbourhood.""")
cat = (99, "Unsorted")
if netname.startswith("glb_netwk_"): cat = (10, "Global Networks")
if netname.startswith("glb2local_"): cat = (10, "Global Networks")
- if netname.startswith("wire_gbuf"): cat = (10, "Global Networks")
+ if netname.startswith("fabout"): cat = (10, "Global Networks")
if netname.startswith("local_"): cat = (20, "Local Tracks")
if netname.startswith("carry_in"): cat = (25, "Logic Block")
if netname.startswith("io_"): cat = (25, "IO Block")
diff --git a/icebox/icebox_vlog.py b/icebox/icebox_vlog.py
index acf7913..8db925f 100755
--- a/icebox/icebox_vlog.py
+++ b/icebox/icebox_vlog.py
@@ -96,7 +96,10 @@ for o, a in opts:
if not re.match(r"[a-zA-Z_][a-zA-Z0-9_]*$", p):
p = "\\%s " % p
unmatched_ports.add(p)
- pinloc = tuple([int(s) for s in line[2:]])
+ if len(line) > 3:
+ pinloc = tuple([int(s) for s in line[2:]])
+ else:
+ pinloc = (line[2],)
pcf_data[pinloc] = p
elif o == "-R":
check_ieren = True
@@ -135,6 +138,8 @@ iocells_special = set()
iocells_type = dict()
iocells_negclk = set()
iocells_inbufs = set()
+iocells_skip = set()
+iocells_pll = set()
def is_interconn(netname):
if netname.startswith("sp4_"): return True
@@ -146,6 +151,36 @@ def is_interconn(netname):
if netname.startswith("local_"): return True
return False
+pll_config_bitidx = dict()
+pll_gbuf = dict()
+
+for entry in icebox.iotile_l_db:
+ if entry[1] == "PLL":
+ match = re.match(r"B(\d+)\[(\d+)\]", entry[0][0]);
+ assert match
+ pll_config_bitidx[entry[2]] = (int(match.group(1)), int(match.group(2)))
+
+def get_pll_bit(pllinfo, name):
+ bit = pllinfo[name]
+ assert bit[2] in pll_config_bitidx
+ return ic.tile(bit[0], bit[1])[pll_config_bitidx[bit[2]][0]][pll_config_bitidx[bit[2]][1]]
+
+def get_pll_bits(pllinfo, name, n):
+ return "".join([get_pll_bit(pllinfo, "%s_%d" % (name, i)) for i in range(n-1, -1, -1)])
+
+for pllid in ic.pll_list():
+ pllinfo = icebox.pllinfo_db[pllid]
+ plltype = get_pll_bits(pllinfo, "PLLTYPE", 3)
+ if plltype != "000":
+ if plltype in ["010", "100", "110"]:
+ iocells_special.add(pllinfo["PLLOUT_A"])
+ else:
+ iocells_skip.add(pllinfo["PLLOUT_A"])
+ iocells_pll.add(pllinfo["PLLOUT_A"])
+ if plltype not in ["010", "011"]:
+ iocells_skip.add(pllinfo["PLLOUT_B"])
+ iocells_pll.add(pllinfo["PLLOUT_B"])
+
extra_connections = list()
extra_segments = list()
@@ -154,11 +189,15 @@ for bit in ic.extra_bits:
if entry[0] == "padin_glb_netwk":
glb = int(entry[1])
pin_entry = ic.padin_pio_db()[glb]
- iocells.add((pin_entry[0], pin_entry[1], pin_entry[2]))
- iocells_in.add((pin_entry[0], pin_entry[1], pin_entry[2]))
- s1 = (pin_entry[0], pin_entry[1], "io_%d/PAD" % pin_entry[2])
- s2 = (pin_entry[0], pin_entry[1], "wire_gbuf/padin_%d" % pin_entry[2])
- extra_connections.append((s1, s2))
+ if pin_entry in iocells_pll:
+ pll_gbuf[pin_entry] = (pin_entry[0], pin_entry[1], "padin_%d" % pin_entry[2])
+ extra_segments.append(pll_gbuf[pin_entry])
+ else:
+ iocells.add((pin_entry[0], pin_entry[1], pin_entry[2]))
+ iocells_in.add((pin_entry[0], pin_entry[1], pin_entry[2]))
+ s1 = (pin_entry[0], pin_entry[1], "io_%d/PAD" % pin_entry[2])
+ s2 = (pin_entry[0], pin_entry[1], "padin_%d" % pin_entry[2])
+ extra_connections.append((s1, s2))
for idx, tile in ic.io_tiles.items():
tc = icebox.tileconfig(tile)
@@ -187,6 +226,8 @@ for segs in sorted(ic.group_segments()):
match = re.match("io_(\d+)/D_(IN|OUT)_(\d+)", seg[2])
if match:
cell = (seg[0], seg[1], int(match.group(1)))
+ if cell in iocells_skip:
+ continue
iocells.add(cell)
if match.group(2) == "IN":
if check_ieren:
@@ -231,7 +272,7 @@ for segs in sorted(ic.group_segments(extra_connections=extra_connections, extra_
p = "io_%d_%d_%d" % idx
net_segs.add(p)
if lookup_pins or pcf_data:
- for entry in icebox.pinloc_db:
+ for entry in ic.pinloc_db():
if idx[0] == entry[1] and idx[1] == entry[2] and idx[2] == entry[3]:
if (entry[0],) in pcf_data:
p = pcf_data[(entry[0],)]
@@ -310,6 +351,167 @@ def seg_to_net(seg, default=None):
text_wires.append("")
return seg2net[seg]
+wb_boot = seg_to_net(icebox.warmbootinfo_db[ic.device]["BOOT"], "")
+wb_s0 = seg_to_net(icebox.warmbootinfo_db[ic.device]["S0"], "")
+wb_s1 = seg_to_net(icebox.warmbootinfo_db[ic.device]["S1"], "")
+
+if wb_boot != "" or wb_s0 != "" or wb_s1 != "":
+ text_func.append("SB_WARMBOOT (")
+ text_func.append(" .BOOT(%s)," % wb_boot)
+ text_func.append(" .S0(%s)," % wb_s0)
+ text_func.append(" .S1(%s)," % wb_s1)
+ text_func.append(");")
+ text_func.append("")
+
+def get_pll_feedback_path(pllinfo):
+ v = get_pll_bits(pllinfo, "FEEDBACK_PATH", 3)
+ if v == "000": return "DELAY"
+ if v == "001": return "SIMPLE"
+ if v == "010": return "PHASE_AND_DELAY"
+ if v == "110": return "EXTERNAL"
+ assert False
+
+def get_pll_adjmode(pllinfo, name):
+ v = get_pll_bit(pllinfo, name)
+ if v == "0": return "FIXED"
+ if v == "1": return "DYNAMIC"
+ assert False
+
+def get_pll_outsel(pllinfo, name):
+ v = get_pll_bits(pllinfo, name, 2)
+ if v == "00": return "GENCLK"
+ if v == "01": return "GENCLK_HALF"
+ if v == "10": return "SHIFTREG_90deg"
+ if v == "11": return "SHIFTREG_0deg"
+ assert False
+
+for pllid in ic.pll_list():
+ pllinfo = icebox.pllinfo_db[pllid]
+ plltype = get_pll_bits(pllinfo, "PLLTYPE", 3)
+
+ if plltype == "000":
+ continue
+
+ if not strip_comments:
+ text_func.append("// plltype = %s" % plltype)
+ for ti in sorted(ic.io_tiles):
+ for bit in sorted(pll_config_bitidx):
+ if ic.io_tiles[ti][pll_config_bitidx[bit][0]][pll_config_bitidx[bit][1]] == "1":
+ resolved_bitname = ""
+ for bitname in pllinfo:
+ if pllinfo[bitname] == (ti[0], ti[1], bit):
+ resolved_bitname = " " + bitname
+ text_func.append("// (%2d, %2d, \"%s\")%s" % (ti[0], ti[1], bit, resolved_bitname))
+
+ if plltype in ["010", "100", "110"]:
+ if plltype == "010": text_func.append("SB_PLL40_PAD #(")
+ if plltype == "100": text_func.append("SB_PLL40_2_PAD #(")
+ if plltype == "110": text_func.append("SB_PLL40_2F_PAD #(")
+ text_func.append(" .FEEDBACK_PATH(\"%s\")," % get_pll_feedback_path(pllinfo))
+ text_func.append(" .DELAY_ADJUSTMENT_MODE_FEEDBACK(\"%s\")," % get_pll_adjmode(pllinfo, "DELAY_ADJMODE_FB"))
+ text_func.append(" .DELAY_ADJUSTMENT_MODE_RELATIVE(\"%s\")," % get_pll_adjmode(pllinfo, "DELAY_ADJMODE_REL"))
+ if plltype == "010":
+ text_func.append(" .PLLOUT_SELECT(\"%s\")," % get_pll_outsel(pllinfo, "PLLOUT_SELECT_A"))
+ else:
+ if plltype != "100":
+ text_func.append(" .PLLOUT_SELECT_PORTA(\"%s\")," % get_pll_outsel(pllinfo, "PLLOUT_SELECT_A"))
+ text_func.append(" .PLLOUT_SELECT_PORTB(\"%s\")," % get_pll_outsel(pllinfo, "PLLOUT_SELECT_B"))
+ text_func.append(" .SHIFTREG_DIV_MODE(1'b%s)," % get_pll_bit(pllinfo, "SHIFTREG_DIV_MODE"))
+ text_func.append(" .FDA_FEEDBACK(4'b%s)," % get_pll_bits(pllinfo, "FDA_FEEDBACK", 4))
+ text_func.append(" .FDA_RELATIVE(4'b%s)," % get_pll_bits(pllinfo, "FDA_RELATIVE", 4))
+ text_func.append(" .DIVR(4'b%s)," % get_pll_bits(pllinfo, "DIVR", 4))
+ text_func.append(" .DIVF(7'b%s)," % get_pll_bits(pllinfo, "DIVF", 7))
+ text_func.append(" .DIVQ(3'b%s)," % get_pll_bits(pllinfo, "DIVQ", 3))
+ text_func.append(" .FILTER_RANGE(3'b%s)," % get_pll_bits(pllinfo, "FILTER_RANGE", 3))
+ if plltype == "010":
+ text_func.append(" .ENABLE_ICEGATE(1'b0),")
+ else:
+ text_func.append(" .ENABLE_ICEGATE_PORTA(1'b0),")
+ text_func.append(" .ENABLE_ICEGATE_PORTB(1'b0),")
+ text_func.append(" .TEST_MODE(1'b%s)" % get_pll_bit(pllinfo, "TEST_MODE"))
+ text_func.append(") PLL_%d_%d (" % pllinfo["LOC"])
+ if plltype == "010":
+ pad_segment = (pllinfo["PLLOUT_A"][0], pllinfo["PLLOUT_A"][1], "io_%d/PAD" % pllinfo["PLLOUT_A"][2])
+ text_func.append(" .PACKAGEPIN(%s)," % seg_to_net(pad_segment))
+ del seg2net[pad_segment]
+ text_func.append(" .PLLOUTCORE(%s)," % seg_to_net(pad_segment))
+ if pllinfo["PLLOUT_A"] in pll_gbuf:
+ text_func.append(" .PLLOUTGLOBAL(%s)," % seg_to_net(pll_gbuf[pllinfo["PLLOUT_A"]]))
+ else:
+ pad_segment = (pllinfo["PLLOUT_A"][0], pllinfo["PLLOUT_A"][1], "io_%d/PAD" % pllinfo["PLLOUT_A"][2])
+ text_func.append(" .PACKAGEPIN(%s)," % seg_to_net(pad_segment))
+ del seg2net[pad_segment]
+ text_func.append(" .PLLOUTCOREA(%s)," % seg_to_net(pad_segment))
+ if pllinfo["PLLOUT_A"] in pll_gbuf:
+ text_func.append(" .PLLOUTGLOBALA(%s)," % seg_to_net(pll_gbuf[pllinfo["PLLOUT_A"]]))
+ pad_segment = (pllinfo["PLLOUT_B"][0], pllinfo["PLLOUT_B"][1], "io_%d/D_IN_0" % pllinfo["PLLOUT_B"][2])
+ text_func.append(" .PLLOUTCOREB(%s)," % seg_to_net(pad_segment))
+ if pllinfo["PLLOUT_B"] in pll_gbuf:
+ text_func.append(" .PLLOUTGLOBALB(%s)," % seg_to_net(pll_gbuf[pllinfo["PLLOUT_B"]]))
+ text_func.append(" .EXTFEEDBACK(%s)," % seg_to_net(pllinfo["EXTFEEDBACK"], "1'b0"))
+ text_func.append(" .DYNAMICDELAY({%s})," % ", ".join([seg_to_net(pllinfo["DYNAMICDELAY_%d" % i], "1'b0") for i in range(7, -1, -1)]))
+ text_func.append(" .LOCK(%s)," % seg_to_net(pllinfo["LOCK"]))
+ text_func.append(" .BYPASS(%s)," % seg_to_net(pllinfo["BYPASS"], "1'b0"))
+ text_func.append(" .RESETB(%s)," % seg_to_net(pllinfo["RESETB"], "1'b0"))
+ text_func.append(" .LATCHINPUTVALUE(%s)," % seg_to_net(pllinfo["LATCHINPUTVALUE"], "1'b0"))
+ text_func.append(" .SDO(%s)," % seg_to_net(pllinfo["SDO"]))
+ text_func.append(" .SDI(%s)," % seg_to_net(pllinfo["SDI"], "1'b0"))
+ text_func.append(" .SCLK(%s)" % seg_to_net(pllinfo["SCLK"], "1'b0"))
+ text_func.append(");")
+
+ if plltype in ["011", "111"]:
+ if plltype == "011": text_func.append("SB_PLL40_CORE #(")
+ if plltype == "111": text_func.append("SB_PLL40_2F_CORE #(")
+ text_func.append(" .FEEDBACK_PATH(\"%s\")," % get_pll_feedback_path(pllinfo))
+ text_func.append(" .DELAY_ADJUSTMENT_MODE_FEEDBACK(\"%s\")," % get_pll_adjmode(pllinfo, "DELAY_ADJMODE_FB"))
+ text_func.append(" .DELAY_ADJUSTMENT_MODE_RELATIVE(\"%s\")," % get_pll_adjmode(pllinfo, "DELAY_ADJMODE_REL"))
+ if plltype == "011":
+ text_func.append(" .PLLOUT_SELECT(\"%s\")," % get_pll_outsel(pllinfo, "PLLOUT_SELECT_A"))
+ else:
+ text_func.append(" .PLLOUT_SELECT_PORTA(\"%s\")," % get_pll_outsel(pllinfo, "PLLOUT_SELECT_A"))
+ text_func.append(" .PLLOUT_SELECT_PORTB(\"%s\")," % get_pll_outsel(pllinfo, "PLLOUT_SELECT_B"))
+ text_func.append(" .SHIFTREG_DIV_MODE(1'b%s)," % get_pll_bit(pllinfo, "SHIFTREG_DIV_MODE"))
+ text_func.append(" .FDA_FEEDBACK(4'b%s)," % get_pll_bits(pllinfo, "FDA_FEEDBACK", 4))
+ text_func.append(" .FDA_RELATIVE(4'b%s)," % get_pll_bits(pllinfo, "FDA_RELATIVE", 4))
+ text_func.append(" .DIVR(4'b%s)," % get_pll_bits(pllinfo, "DIVR", 4))
+ text_func.append(" .DIVF(7'b%s)," % get_pll_bits(pllinfo, "DIVF", 7))
+ text_func.append(" .DIVQ(3'b%s)," % get_pll_bits(pllinfo, "DIVQ", 3))
+ text_func.append(" .FILTER_RANGE(3'b%s)," % get_pll_bits(pllinfo, "FILTER_RANGE", 3))
+ if plltype == "011":
+ text_func.append(" .ENABLE_ICEGATE(1'b0),")
+ else:
+ text_func.append(" .ENABLE_ICEGATE_PORTA(1'b0),")
+ text_func.append(" .ENABLE_ICEGATE_PORTB(1'b0),")
+ text_func.append(" .TEST_MODE(1'b%s)" % get_pll_bit(pllinfo, "TEST_MODE"))
+ text_func.append(") PLL_%d_%d (" % pllinfo["LOC"])
+ text_func.append(" .REFERENCECLK(%s)," % seg_to_net(pllinfo["REFERENCECLK"], "1'b0"))
+ if plltype == "011":
+ pad_segment = (pllinfo["PLLOUT_A"][0], pllinfo["PLLOUT_A"][1], "io_%d/D_IN_0" % pllinfo["PLLOUT_A"][2])
+ text_func.append(" .PLLOUTCORE(%s)," % seg_to_net(pad_segment))
+ if pllinfo["PLLOUT_A"] in pll_gbuf:
+ text_func.append(" .PLLOUTGLOBAL(%s)," % seg_to_net(pll_gbuf[pllinfo["PLLOUT_A"]]))
+ else:
+ pad_segment = (pllinfo["PLLOUT_A"][0], pllinfo["PLLOUT_A"][1], "io_%d/D_IN_0" % pllinfo["PLLOUT_A"][2])
+ text_func.append(" .PLLOUTCOREA(%s)," % seg_to_net(pad_segment))
+ if pllinfo["PLLOUT_A"] in pll_gbuf:
+ text_func.append(" .PLLOUTGLOBALA(%s)," % seg_to_net(pll_gbuf[pllinfo["PLLOUT_A"]]))
+ pad_segment = (pllinfo["PLLOUT_B"][0], pllinfo["PLLOUT_B"][1], "io_%d/D_IN_0" % pllinfo["PLLOUT_B"][2])
+ text_func.append(" .PLLOUTCOREB(%s)," % seg_to_net(pad_segment))
+ if pllinfo["PLLOUT_B"] in pll_gbuf:
+ text_func.append(" .PLLOUTGLOBALB(%s)," % seg_to_net(pll_gbuf[pllinfo["PLLOUT_B"]]))
+ text_func.append(" .EXTFEEDBACK(%s)," % seg_to_net(pllinfo["EXTFEEDBACK"], "1'b0"))
+ text_func.append(" .DYNAMICDELAY({%s})," % ", ".join([seg_to_net(pllinfo["DYNAMICDELAY_%d" % i], "1'b0") for i in range(7, -1, -1)]))
+ text_func.append(" .LOCK(%s)," % seg_to_net(pllinfo["LOCK"]))
+ text_func.append(" .BYPASS(%s)," % seg_to_net(pllinfo["BYPASS"], "1'b0"))
+ text_func.append(" .RESETB(%s)," % seg_to_net(pllinfo["RESETB"], "1'b0"))
+ text_func.append(" .LATCHINPUTVALUE(%s)," % seg_to_net(pllinfo["LATCHINPUTVALUE"], "1'b0"))
+ text_func.append(" .SDO(%s)," % seg_to_net(pllinfo["SDO"]))
+ text_func.append(" .SDI(%s)," % seg_to_net(pllinfo["SDI"], "1'b0"))
+ text_func.append(" .SCLK(%s)" % seg_to_net(pllinfo["SCLK"], "1'b0"))
+ text_func.append(");")
+
+ text_func.append("")
+
for cell in iocells:
if cell in iocells_type:
net_pad = seg_to_net((cell[0], cell[1], "io_%d/PAD" % cell[2]))
@@ -438,6 +640,65 @@ for cell in iocells:
for p in unmatched_ports:
text_ports.append("input %s" % p)
+ram_config_bitidx = dict()
+
+for tile in ic.ramb_tiles:
+ for entry in ic.tile_db(tile[0], tile[1]):
+ if entry[1] == "RamConfig":
+ assert entry[2] not in ram_config_bitidx
+ ram_config_bitidx[entry[2]] = ('B', entry[0])
+ for entry in ic.tile_db(tile[0], tile[1]+1):
+ if entry[1] == "RamConfig":
+ assert entry[2] not in ram_config_bitidx
+ ram_config_bitidx[entry[2]] = ('T', entry[0])
+ break
+
+for tile in ic.ramb_tiles:
+ ramb_config = icebox.tileconfig(ic.tile(tile[0], tile[1]))
+ ramt_config = icebox.tileconfig(ic.tile(tile[0], tile[1]+1))
+ def get_ram_config(name):
+ assert name in ram_config_bitidx
+ if ram_config_bitidx[name][0] == 'B':
+ return ramb_config.match(ram_config_bitidx[name][1])
+ elif ram_config_bitidx[name][0] == 'T':
+ return ramt_config.match(ram_config_bitidx[name][1])
+ else:
+ assert False
+ def get_ram_wire(name, msb, lsb):
+ wire_bits = []
+ for i in range(msb, lsb-1, -1):
+ if msb != lsb:
+ n = "ram/%s_%d" % (name, i)
+ else:
+ n = "ram/" + name
+ b = seg_to_net((tile[0], tile[1], n), "1'b0")
+ b = seg_to_net((tile[0], tile[1]+1, n), b)
+ if len(wire_bits) != 0 or b != "1'b0" or i == lsb:
+ wire_bits.append(b)
+ if len(wire_bits) > 1:
+ return "{%s}" % ", ".join(wire_bits)
+ return wire_bits[0]
+ if get_ram_config('PowerUp') == (ic.device == "8k"):
+ if not strip_comments:
+ text_func.append("// RAM TILE %d %d" % tile)
+ text_func.append("SB_RAM40_4K #(");
+ text_func.append(" .READ_MODE(%d)," % ((1 if get_ram_config('CBIT_2') else 0) + (2 if get_ram_config('CBIT_3') else 0)));
+ text_func.append(" .WRITE_MODE(%d)" % ((1 if get_ram_config('CBIT_0') else 0) + (2 if get_ram_config('CBIT_1') else 0)));
+ text_func.append(") ram40_%d_%d (" % tile);
+ text_func.append(" .WADDR(%s)," % get_ram_wire('WADDR', 10, 0))
+ text_func.append(" .RADDR(%s)," % get_ram_wire('RADDR', 10, 0))
+ text_func.append(" .MASK(%s)," % get_ram_wire('MASK', 15, 0))
+ text_func.append(" .WDATA(%s)," % get_ram_wire('WDATA', 15, 0))
+ text_func.append(" .RDATA(%s)," % get_ram_wire('RDATA', 15, 0))
+ text_func.append(" .WE(%s)," % get_ram_wire('WE', 0, 0))
+ text_func.append(" .WCLKE(%s)," % get_ram_wire('WCLKE', 0, 0))
+ text_func.append(" .WCLK(%s)," % get_ram_wire('WCLK', 0, 0))
+ text_func.append(" .RE(%s)," % get_ram_wire('RE', 0, 0))
+ text_func.append(" .RCLKE(%s)," % get_ram_wire('RCLKE', 0, 0))
+ text_func.append(" .RCLK(%s)" % get_ram_wire('RCLK', 0, 0))
+ text_func.append(");")
+ text_func.append("")
+
wire_to_reg = set()
lut_assigns = list()
const_assigns = list()
diff --git a/icebox/iceboxdb.py b/icebox/iceboxdb.py
index 52aa3d0..5488cee 100644
--- a/icebox/iceboxdb.py
+++ b/icebox/iceboxdb.py
@@ -26,15 +26,15 @@ B8[2] IoCtrl LVDS
B6[2] IoCtrl REN_0
B1[3] IoCtrl REN_1
B9[13],B15[13] NegClk
-B0[2] PLL pll_cf_bit_1
-B0[3] PLL pll_cf_bit_2
-B3[3] PLL pll_cf_bit_3
-B2[2] PLL pll_cf_bit_4
-B2[3] PLL pll_cf_bit_5
-B5[3] PLL pll_cf_bit_6
-B4[2] PLL pll_cf_bit_7
-B4[3] PLL pll_cf_bit_8
-B7[3] PLL pll_cf_bit_9
+B0[2] PLL PLLCONFIG_1
+B0[3] PLL PLLCONFIG_2
+B3[3] PLL PLLCONFIG_3
+B2[2] PLL PLLCONFIG_4
+B2[3] PLL PLLCONFIG_5
+B5[3] PLL PLLCONFIG_6
+B4[2] PLL PLLCONFIG_7
+B4[3] PLL PLLCONFIG_8
+B7[3] PLL PLLCONFIG_9
B0[4],!B1[4],!B1[5],!B1[6],B1[7] buffer IO_B.logic_op_tnl_0 lc_trk_g0_0
B8[4],!B9[4],!B9[5],!B9[6],B9[7] buffer IO_B.logic_op_tnl_0 lc_trk_g1_0
!B0[5],!B0[6],B0[7],B0[8],!B1[8] buffer IO_B.logic_op_tnl_1 lc_trk_g0_1
@@ -247,7 +247,7 @@ B14[12],!B14[13],B14[14],B15[12],B15[15] buffer glb_netwk_7 wire_io_cluster/io_1
!B14[10],!B14[11],!B15[10],B15[11] buffer lc_trk_g0_0 wire_io_cluster/io_1/D_OUT_1
!B10[10],!B10[11],!B11[10],B11[11] buffer lc_trk_g0_0 wire_io_cluster/io_1/OUT_ENB
!B8[12],B8[13],!B8[14],!B9[12],B9[15] buffer lc_trk_g0_0 wire_io_cluster/io_1/inclk
-!B4[14],B4[15],!B5[14],!B5[15] buffer lc_trk_g0_1 wire_gbuf/in
+!B4[14],B4[15],!B5[14],!B5[15] buffer lc_trk_g0_1 fabout
!B8[10],!B8[11],!B9[10],B9[11] buffer lc_trk_g0_1 wire_io_cluster/io_0/D_OUT_1
!B4[10],!B4[11],!B5[10],B5[11] buffer lc_trk_g0_1 wire_io_cluster/io_0/OUT_ENB
!B10[12],!B10[13],!B11[12],B11[13] buffer lc_trk_g0_1 wire_io_cluster/io_1/D_OUT_0
@@ -256,7 +256,7 @@ B14[12],!B14[13],B14[14],B15[12],B15[15] buffer glb_netwk_7 wire_io_cluster/io_1
!B14[10],!B14[11],B15[10],B15[11] buffer lc_trk_g0_2 wire_io_cluster/io_1/D_OUT_1
!B10[10],!B10[11],B11[10],B11[11] buffer lc_trk_g0_2 wire_io_cluster/io_1/OUT_ENB
!B10[14],B10[15],B11[14],!B11[15] buffer lc_trk_g0_2 wire_io_cluster/io_1/cen
-B4[14],B4[15],!B5[14],!B5[15] buffer lc_trk_g0_3 wire_gbuf/in
+B4[14],B4[15],!B5[14],!B5[15] buffer lc_trk_g0_3 fabout
!B8[10],!B8[11],B9[10],B9[11] buffer lc_trk_g0_3 wire_io_cluster/io_0/D_OUT_1
!B4[10],!B4[11],B5[10],B5[11] buffer lc_trk_g0_3 wire_io_cluster/io_0/OUT_ENB
!B10[12],!B10[13],B11[12],B11[13] buffer lc_trk_g0_3 wire_io_cluster/io_1/D_OUT_0
@@ -265,7 +265,7 @@ B4[14],B4[15],!B5[14],!B5[15] buffer lc_trk_g0_3 wire_gbuf/in
B14[10],!B14[11],!B15[10],B15[11] buffer lc_trk_g0_4 wire_io_cluster/io_1/D_OUT_1
B10[10],!B10[11],!B11[10],B11[11] buffer lc_trk_g0_4 wire_io_cluster/io_1/OUT_ENB
!B14[12],B14[13],!B14[14],B15[12],B15[15] buffer lc_trk_g0_4 wire_io_cluster/io_1/outclk
-!B4[14],B4[15],!B5[14],B5[15] buffer lc_trk_g0_5 wire_gbuf/in
+!B4[14],B4[15],!B5[14],B5[15] buffer lc_trk_g0_5 fabout
B8[10],!B8[11],!B9[10],B9[11] buffer lc_trk_g0_5 wire_io_cluster/io_0/D_OUT_1
B4[10],!B4[11],!B5[10],B5[11] buffer lc_trk_g0_5 wire_io_cluster/io_0/OUT_ENB
!B10[12],B10[13],!B11[12],B11[13] buffer lc_trk_g0_5 wire_io_cluster/io_1/D_OUT_0
@@ -273,11 +273,11 @@ B10[14],B10[15],B11[14],!B11[15] buffer lc_trk_g0_5 wire_io_cluster/io_1/cen
!B4[12],B4[13],B5[12],B5[13] buffer lc_trk_g0_6 wire_io_cluster/io_0/D_OUT_0
B14[10],!B14[11],B15[10],B15[11] buffer lc_trk_g0_6 wire_io_cluster/io_1/D_OUT_1
B10[10],!B10[11],B11[10],B11[11] buffer lc_trk_g0_6 wire_io_cluster/io_1/OUT_ENB
-B4[14],B4[15],!B5[14],B5[15] buffer lc_trk_g0_7 wire_gbuf/in
+B4[14],B4[15],!B5[14],B5[15] buffer lc_trk_g0_7 fabout
B8[10],!B8[11],B9[10],B9[11] buffer lc_trk_g0_7 wire_io_cluster/io_0/D_OUT_1
B4[10],!B4[11],B5[10],B5[11] buffer lc_trk_g0_7 wire_io_cluster/io_0/OUT_ENB
!B10[12],B10[13],B11[12],B11[13] buffer lc_trk_g0_7 wire_io_cluster/io_1/D_OUT_0
-!B4[14],B4[15],B5[14],!B5[15] buffer lc_trk_g1_0 wire_gbuf/in
+!B4[14],B4[15],B5[14],!B5[15] buffer lc_trk_g1_0 fabout
!B8[10],B8[11],!B9[10],B9[11] buffer lc_trk_g1_0 wire_io_cluster/io_0/D_OUT_1
!B4[10],B4[11],!B5[10],B5[11] buffer lc_trk_g1_0 wire_io_cluster/io_0/OUT_ENB
B10[12],!B10[13],!B11[12],B11[13] buffer lc_trk_g1_0 wire_io_cluster/io_1/D_OUT_0
@@ -286,7 +286,7 @@ B4[12],!B4[13],!B5[12],B5[13] buffer lc_trk_g1_1 wire_io_cluster/io_0/D_OUT_0
!B14[10],B14[11],!B15[10],B15[11] buffer lc_trk_g1_1 wire_io_cluster/io_1/D_OUT_1
!B10[10],B10[11],!B11[10],B11[11] buffer lc_trk_g1_1 wire_io_cluster/io_1/OUT_ENB
B14[12],B14[13],!B14[14],!B15[12],B15[15] buffer lc_trk_g1_1 wire_io_cluster/io_1/outclk
-B4[14],B4[15],B5[14],!B5[15] buffer lc_trk_g1_2 wire_gbuf/in
+B4[14],B4[15],B5[14],!B5[15] buffer lc_trk_g1_2 fabout
!B8[10],B8[11],B9[10],B9[11] buffer lc_trk_g1_2 wire_io_cluster/io_0/D_OUT_1
!B4[10],B4[11],B5[10],B5[11] buffer lc_trk_g1_2 wire_io_cluster/io_0/OUT_ENB
B10[12],!B10[13],B11[12],B11[13] buffer lc_trk_g1_2 wire_io_cluster/io_1/D_OUT_0
@@ -295,7 +295,7 @@ B4[12],!B4[13],B5[12],B5[13] buffer lc_trk_g1_3 wire_io_cluster/io_0/D_OUT_0
!B14[10],B14[11],B15[10],B15[11] buffer lc_trk_g1_3 wire_io_cluster/io_1/D_OUT_1
!B10[10],B10[11],B11[10],B11[11] buffer lc_trk_g1_3 wire_io_cluster/io_1/OUT_ENB
B8[12],B8[13],!B8[14],B9[12],B9[15] buffer lc_trk_g1_3 wire_io_cluster/io_1/inclk
-!B4[14],B4[15],B5[14],B5[15] buffer lc_trk_g1_4 wire_gbuf/in
+!B4[14],B4[15],B5[14],B5[15] buffer lc_trk_g1_4 fabout
B8[10],B8[11],!B9[10],B9[11] buffer lc_trk_g1_4 wire_io_cluster/io_0/D_OUT_1
B4[10],B4[11],!B5[10],B5[11] buffer lc_trk_g1_4 wire_io_cluster/io_0/OUT_ENB
B10[12],B10[13],!B11[12],B11[13] buffer lc_trk_g1_4 wire_io_cluster/io_1/D_OUT_0
@@ -304,7 +304,7 @@ B4[12],B4[13],!B5[12],B5[13] buffer lc_trk_g1_5 wire_io_cluster/io_0/D_OUT_0
B14[10],B14[11],!B15[10],B15[11] buffer lc_trk_g1_5 wire_io_cluster/io_1/D_OUT_1
B10[10],B10[11],!B11[10],B11[11] buffer lc_trk_g1_5 wire_io_cluster/io_1/OUT_ENB
B10[14],B10[15],B11[14],B11[15] buffer lc_trk_g1_5 wire_io_cluster/io_1/cen
-B4[14],B4[15],B5[14],B5[15] buffer lc_trk_g1_6 wire_gbuf/in
+B4[14],B4[15],B5[14],B5[15] buffer lc_trk_g1_6 fabout
B8[10],B8[11],B9[10],B9[11] buffer lc_trk_g1_6 wire_io_cluster/io_0/D_OUT_1
B4[10],B4[11],B5[10],B5[11] buffer lc_trk_g1_6 wire_io_cluster/io_0/OUT_ENB
B10[12],B10[13],B11[12],B11[13] buffer lc_trk_g1_6 wire_io_cluster/io_1/D_OUT_0
@@ -863,22 +863,22 @@ B13[11],!B13[12] routing span4_vert_t_15 span4_horz_43
!B13[13],B13[14] routing span4_vert_t_15 span4_vert_b_3
"""
database_logic_txt = """
-B0[1] ColBufCtrl glb_netwk_0
-B1[2] ColBufCtrl glb_netwk_1
-B5[2] ColBufCtrl glb_netwk_2
-B7[2] ColBufCtrl glb_netwk_3
-B9[2] ColBufCtrl glb_netwk_4
-B11[2] ColBufCtrl glb_netwk_5
-B13[2] ColBufCtrl glb_netwk_6
-B15[2] ColBufCtrl glb_netwk_7
-B9[7] ColBufCtrl reserved_0
-B8[7] ColBufCtrl reserved_1
-B11[7] ColBufCtrl reserved_2
-B10[7] ColBufCtrl reserved_3
-B13[7] ColBufCtrl reserved_4
-B12[7] ColBufCtrl reserved_5
-B15[7] ColBufCtrl reserved_6
-B14[7] ColBufCtrl reserved_7
+B0[1] ColBufCtrl 1k_glb_netwk_0
+B1[2] ColBufCtrl 1k_glb_netwk_1
+B5[2] ColBufCtrl 1k_glb_netwk_2
+B7[2] ColBufCtrl 1k_glb_netwk_3
+B9[2] ColBufCtrl 1k_glb_netwk_4
+B11[2] ColBufCtrl 1k_glb_netwk_5
+B13[2] ColBufCtrl 1k_glb_netwk_6
+B15[2] ColBufCtrl 1k_glb_netwk_7
+B9[7] ColBufCtrl 8k_glb_netwk_0
+B8[7] ColBufCtrl 8k_glb_netwk_1
+B11[7] ColBufCtrl 8k_glb_netwk_2
+B10[7] ColBufCtrl 8k_glb_netwk_3
+B13[7] ColBufCtrl 8k_glb_netwk_4
+B12[7] ColBufCtrl 8k_glb_netwk_5
+B15[7] ColBufCtrl 8k_glb_netwk_6
+B14[7] ColBufCtrl 8k_glb_netwk_7
B0[36],B0[37],B0[38],B0[39],B0[40],B0[41],B0[42],B0[43],B0[44],B0[45],B1[36],B1[37],B1[38],B1[39],B1[40],B1[41],B1[42],B1[43],B1[44],B1[45] LC_0
B2[36],B2[37],B2[38],B2[39],B2[40],B2[41],B2[42],B2[43],B2[44],B2[45],B3[36],B3[37],B3[38],B3[39],B3[40],B3[41],B3[42],B3[43],B3[44],B3[45] LC_1
B4[36],B4[37],B4[38],B4[39],B4[40],B4[41],B4[42],B4[43],B4[44],B4[45],B5[36],B5[37],B5[38],B5[39],B5[40],B5[41],B5[42],B5[43],B5[44],B5[45] LC_2
@@ -2461,14 +2461,14 @@ B1[8],!B1[9],B1[10] routing sp4_v_t_47 sp4_v_b_1
B8[4],B8[6],!B9[5] routing sp4_v_t_47 sp4_v_b_6
"""
database_ramb_txt = """
-B0[1] ColBufCtrl glb_netwk_0
-B1[2] ColBufCtrl glb_netwk_1
-B5[2] ColBufCtrl glb_netwk_2
-B7[2] ColBufCtrl glb_netwk_3
-B9[2] ColBufCtrl glb_netwk_4
-B11[2] ColBufCtrl glb_netwk_5
-B13[2] ColBufCtrl glb_netwk_6
-B15[2] ColBufCtrl glb_netwk_7
+B0[1] ColBufCtrl 1k_glb_netwk_0
+B1[2] ColBufCtrl 1k_glb_netwk_1
+B5[2] ColBufCtrl 1k_glb_netwk_2
+B7[2] ColBufCtrl 1k_glb_netwk_3
+B9[2] ColBufCtrl 1k_glb_netwk_4
+B11[2] ColBufCtrl 1k_glb_netwk_5
+B13[2] ColBufCtrl 1k_glb_netwk_6
+B15[2] ColBufCtrl 1k_glb_netwk_7
B0[0] NegClk
B1[7] RamConfig PowerUp
B8[14],B9[14],!B9[15],!B9[16],B9[17] buffer bnl_op_0 lc_trk_g2_0
@@ -5317,101 +5317,2865 @@ B1[8],!B1[9],B1[10] routing sp4_v_t_47 sp4_v_b_1
!B13[8],B13[9],!B13[10] routing sp4_v_t_47 sp4_v_b_10
B8[4],B8[6],!B9[5] routing sp4_v_t_47 sp4_v_b_6
"""
-pinloc_txt = """
-10 0 11 0
-101 13 13 0
-1 0 14 1
-102 13 13 1
-104 13 14 0
-105 13 14 1
-106 13 15 0
-107 13 15 1
-11 0 10 1
-112 12 17 1
-113 12 17 0
-114 11 17 1
-115 11 17 0
-116 10 17 1
-117 10 17 0
-118 9 17 1
-119 9 17 0
-12 0 10 0
-120 8 17 1
-121 8 17 0
-122 7 17 1
-128 7 17 0
-129 6 17 1
-134 5 17 1
-135 5 17 0
-136 4 17 1
-137 4 17 0
-138 3 17 1
-139 3 17 0
-141 2 17 1
-142 2 17 0
-143 1 17 1
-144 1 17 0
-19 0 9 1
-20 0 9 0
-2 0 14 0
-21 0 8 1
-22 0 8 0
-23 0 6 1
-24 0 6 0
-25 0 5 1
-26 0 5 0
-28 0 4 1
-29 0 4 0
-3 0 13 1
-31 0 3 1
-32 0 3 0
-33 0 2 1
-34 0 2 0
-37 1 0 0
-38 1 0 1
-39 2 0 0
-4 0 13 0
-41 2 0 1
-42 3 0 0
-43 3 0 1
-44 4 0 0
-45 4 0 1
-47 5 0 0
-48 5 0 1
-49 6 0 1
-50 7 0 0
-52 6 0 0
-56 7 0 1
-58 8 0 0
-60 8 0 1
-61 9 0 0
-62 9 0 1
-63 10 0 0
-64 10 0 1
-67 11 0 0
-68 11 0 1
-70 12 0 0
-7 0 12 1
-71 12 0 1
-73 13 1 0
-74 13 1 1
-75 13 2 0
-76 13 2 1
-78 13 3 1
-79 13 4 0
-8 0 12 0
-80 13 4 1
-81 13 6 0
-87 13 6 1
-88 13 7 0
-9 0 11 1
-90 13 7 1
-91 13 8 0
-93 13 8 1
-94 13 9 0
-95 13 9 1
-96 13 11 0
-97 13 11 1
-98 13 12 0
-99 13 12 1
+database_ramb_8k_txt = """
+B9[7] ColBufCtrl 8k_glb_netwk_0
+B8[7] ColBufCtrl 8k_glb_netwk_1
+B11[7] ColBufCtrl 8k_glb_netwk_2
+B10[7] ColBufCtrl 8k_glb_netwk_3
+B13[7] ColBufCtrl 8k_glb_netwk_4
+B12[7] ColBufCtrl 8k_glb_netwk_5
+B15[7] ColBufCtrl 8k_glb_netwk_6
+B14[7] ColBufCtrl 8k_glb_netwk_7
+B0[0] NegClk
+B1[7] RamConfig PowerUp
+B8[14],B9[14],!B9[15],!B9[16],B9[17] buffer bnl_op_0 lc_trk_g2_0
+B12[14],B13[14],!B13[15],!B13[16],B13[17] buffer bnl_op_0 lc_trk_g3_0
+!B8[15],!B8[16],B8[17],B8[18],B9[18] buffer bnl_op_1 lc_trk_g2_1
+!B12[15],!B12[16],B12[17],B12[18],B13[18] buffer bnl_op_1 lc_trk_g3_1
+B8[25],B9[22],!B9[23],!B9[24],B9[25] buffer bnl_op_2 lc_trk_g2_2
+B12[25],B13[22],!B13[23],!B13[24],B13[25] buffer bnl_op_2 lc_trk_g3_2
+B8[21],B8[22],!B8[23],!B8[24],B9[21] buffer bnl_op_3 lc_trk_g2_3
+B12[21],B12[22],!B12[23],!B12[24],B13[21] buffer bnl_op_3 lc_trk_g3_3
+B10[14],B11[14],!B11[15],!B11[16],B11[17] buffer bnl_op_4 lc_trk_g2_4
+B14[14],B15[14],!B15[15],!B15[16],B15[17] buffer bnl_op_4 lc_trk_g3_4
+!B10[15],!B10[16],B10[17],B10[18],B11[18] buffer bnl_op_5 lc_trk_g2_5
+!B14[15],!B14[16],B14[17],B14[18],B15[18] buffer bnl_op_5 lc_trk_g3_5
+B10[25],B11[22],!B11[23],!B11[24],B11[25] buffer bnl_op_6 lc_trk_g2_6
+B14[25],B15[22],!B15[23],!B15[24],B15[25] buffer bnl_op_6 lc_trk_g3_6
+B10[21],B10[22],!B10[23],!B10[24],B11[21] buffer bnl_op_7 lc_trk_g2_7
+B14[21],B14[22],!B14[23],!B14[24],B15[21] buffer bnl_op_7 lc_trk_g3_7
+B0[14],B1[14],!B1[15],!B1[16],B1[17] buffer bnr_op_0 lc_trk_g0_0
+B4[14],B5[14],!B5[15],!B5[16],B5[17] buffer bnr_op_0 lc_trk_g1_0
+!B0[15],!B0[16],B0[17],B0[18],B1[18] buffer bnr_op_1 lc_trk_g0_1
+!B4[15],!B4[16],B4[17],B4[18],B5[18] buffer bnr_op_1 lc_trk_g1_1
+B0[25],B1[22],!B1[23],!B1[24],B1[25] buffer bnr_op_2 lc_trk_g0_2
+B4[25],B5[22],!B5[23],!B5[24],B5[25] buffer bnr_op_2 lc_trk_g1_2
+B0[21],B0[22],!B0[23],!B0[24],B1[21] buffer bnr_op_3 lc_trk_g0_3
+B4[21],B4[22],!B4[23],!B4[24],B5[21] buffer bnr_op_3 lc_trk_g1_3
+B2[14],B3[14],!B3[15],!B3[16],B3[17] buffer bnr_op_4 lc_trk_g0_4
+B6[14],B7[14],!B7[15],!B7[16],B7[17] buffer bnr_op_4 lc_trk_g1_4
+!B2[15],!B2[16],B2[17],B2[18],B3[18] buffer bnr_op_5 lc_trk_g0_5
+!B6[15],!B6[16],B6[17],B6[18],B7[18] buffer bnr_op_5 lc_trk_g1_5
+B2[25],B3[22],!B3[23],!B3[24],B3[25] buffer bnr_op_6 lc_trk_g0_6
+B6[25],B7[22],!B7[23],!B7[24],B7[25] buffer bnr_op_6 lc_trk_g1_6
+B2[21],B2[22],!B2[23],!B2[24],B3[21] buffer bnr_op_7 lc_trk_g0_7
+B6[21],B6[22],!B6[23],!B6[24],B7[21] buffer bnr_op_7 lc_trk_g1_7
+!B0[14],!B1[14],B1[15],!B1[16],B1[17] buffer bot_op_0 lc_trk_g0_0
+!B4[14],!B5[14],B5[15],!B5[16],B5[17] buffer bot_op_0 lc_trk_g1_0
+!B2[14],!B3[14],B3[15],!B3[16],B3[17] buffer bot_op_4 lc_trk_g0_4
+!B6[14],!B7[14],B7[15],!B7[16],B7[17] buffer bot_op_4 lc_trk_g1_4
+!B2[14],!B3[14],!B3[15],!B3[16],B3[17] buffer glb2local_0 lc_trk_g0_4
+!B2[15],!B2[16],B2[17],!B2[18],!B3[18] buffer glb2local_1 lc_trk_g0_5
+!B2[25],B3[22],!B3[23],!B3[24],!B3[25] buffer glb2local_2 lc_trk_g0_6
+!B2[21],B2[22],!B2[23],!B2[24],!B3[21] buffer glb2local_3 lc_trk_g0_7
+!B6[0],B6[1],!B7[0],!B7[1] buffer glb_netwk_0 glb2local_0
+!B8[0],B8[1],!B9[0],!B9[1] buffer glb_netwk_0 glb2local_1
+!B10[0],B10[1],!B11[0],!B11[1] buffer glb_netwk_0 glb2local_2
+!B12[0],B12[1],!B13[0],!B13[1] buffer glb_netwk_0 glb2local_3
+!B2[0],!B2[1],B2[2],!B3[0],!B3[2] buffer glb_netwk_0 wire_bram/ram/RCLK
+!B14[0],B14[1],!B15[0],!B15[1] buffer glb_netwk_0 wire_bram/ram/RE
+!B6[0],B6[1],B7[0],!B7[1] buffer glb_netwk_1 glb2local_0
+!B8[0],B8[1],B9[0],!B9[1] buffer glb_netwk_1 glb2local_1
+!B10[0],B10[1],B11[0],!B11[1] buffer glb_netwk_1 glb2local_2
+!B12[0],B12[1],B13[0],!B13[1] buffer glb_netwk_1 glb2local_3
+!B2[0],!B2[1],B2[2],B3[0],!B3[2] buffer glb_netwk_1 wire_bram/ram/RCLK
+!B4[0],B4[1],!B5[0],!B5[1] buffer glb_netwk_1 wire_bram/ram/RCLKE
+B6[0],B6[1],!B7[0],!B7[1] buffer glb_netwk_2 glb2local_0
+B8[0],B8[1],!B9[0],!B9[1] buffer glb_netwk_2 glb2local_1
+B10[0],B10[1],!B11[0],!B11[1] buffer glb_netwk_2 glb2local_2
+B12[0],B12[1],!B13[0],!B13[1] buffer glb_netwk_2 glb2local_3
+B2[0],!B2[1],B2[2],!B3[0],!B3[2] buffer glb_netwk_2 wire_bram/ram/RCLK
+!B14[0],B14[1],B15[0],!B15[1] buffer glb_netwk_2 wire_bram/ram/RE
+B6[0],B6[1],B7[0],!B7[1] buffer glb_netwk_3 glb2local_0
+B8[0],B8[1],B9[0],!B9[1] buffer glb_netwk_3 glb2local_1
+B10[0],B10[1],B11[0],!B11[1] buffer glb_netwk_3 glb2local_2
+B12[0],B12[1],B13[0],!B13[1] buffer glb_netwk_3 glb2local_3
+B2[0],!B2[1],B2[2],B3[0],!B3[2] buffer glb_netwk_3 wire_bram/ram/RCLK
+!B4[0],B4[1],B5[0],!B5[1] buffer glb_netwk_3 wire_bram/ram/RCLKE
+!B6[0],B6[1],!B7[0],B7[1] buffer glb_netwk_4 glb2local_0
+!B8[0],B8[1],!B9[0],B9[1] buffer glb_netwk_4 glb2local_1
+!B10[0],B10[1],!B11[0],B11[1] buffer glb_netwk_4 glb2local_2
+!B12[0],B12[1],!B13[0],B13[1] buffer glb_netwk_4 glb2local_3
+!B2[0],B2[1],B2[2],!B3[0],!B3[2] buffer glb_netwk_4 wire_bram/ram/RCLK
+B14[0],B14[1],!B15[0],!B15[1] buffer glb_netwk_4 wire_bram/ram/RE
+!B6[0],B6[1],B7[0],B7[1] buffer glb_netwk_5 glb2local_0
+!B10[0],B10[1],B11[0],B11[1] buffer glb_netwk_5 glb2local_2
+!B12[0],B12[1],B13[0],B13[1] buffer glb_netwk_5 glb2local_3
+!B2[0],B2[1],B2[2],B3[0],!B3[2] buffer glb_netwk_5 wire_bram/ram/RCLK
+B4[0],B4[1],!B5[0],!B5[1] buffer glb_netwk_5 wire_bram/ram/RCLKE
+B6[0],B6[1],!B7[0],B7[1] buffer glb_netwk_6 glb2local_0
+B8[0],B8[1],!B9[0],B9[1] buffer glb_netwk_6 glb2local_1
+B10[0],B10[1],!B11[0],B11[1] buffer glb_netwk_6 glb2local_2
+B12[0],B12[1],!B13[0],B13[1] buffer glb_netwk_6 glb2local_3
+B2[0],B2[1],B2[2],!B3[0],!B3[2] buffer glb_netwk_6 wire_bram/ram/RCLK
+B14[0],B14[1],B15[0],!B15[1] buffer glb_netwk_6 wire_bram/ram/RE
+B6[0],B6[1],B7[0],B7[1] buffer glb_netwk_7 glb2local_0
+B8[0],B8[1],B9[0],B9[1] buffer glb_netwk_7 glb2local_1
+B10[0],B10[1],B11[0],B11[1] buffer glb_netwk_7 glb2local_2
+B12[0],B12[1],B13[0],B13[1] buffer glb_netwk_7 glb2local_3
+B2[0],B2[1],B2[2],B3[0],!B3[2] buffer glb_netwk_7 wire_bram/ram/RCLK
+B4[0],B4[1],B5[0],!B5[1] buffer glb_netwk_7 wire_bram/ram/RCLKE
+!B0[26],!B1[26],!B1[27],!B1[28],B1[29] buffer lc_trk_g0_0 input0_0
+!B4[26],!B5[26],!B5[27],!B5[28],B5[29] buffer lc_trk_g0_0 input0_2
+!B8[26],!B9[26],!B9[27],!B9[28],B9[29] buffer lc_trk_g0_0 input0_4
+!B12[26],!B13[26],!B13[27],!B13[28],B13[29] buffer lc_trk_g0_0 input0_6
+!B12[35],B13[32],!B13[33],!B13[34],!B13[35] buffer lc_trk_g0_0 input2_6
+!B2[0],!B2[1],B2[2],!B3[0],B3[2] buffer lc_trk_g0_0 wire_bram/ram/RCLK
+!B10[27],!B10[28],B10[29],!B10[30],!B11[30] buffer lc_trk_g0_0 wire_bram/ram/WDATA_10
+!B6[27],!B6[28],B6[29],!B6[30],!B7[30] buffer lc_trk_g0_0 wire_bram/ram/WDATA_12
+!B2[27],!B2[28],B2[29],!B2[30],!B3[30] buffer lc_trk_g0_0 wire_bram/ram/WDATA_14
+!B14[27],!B14[28],B14[29],!B14[30],!B15[30] buffer lc_trk_g0_0 wire_bram/ram/WDATA_8
+!B2[26],!B3[26],!B3[27],!B3[28],B3[29] buffer lc_trk_g0_1 input0_1
+!B6[26],!B7[26],!B7[27],!B7[28],B7[29] buffer lc_trk_g0_1 input0_3
+!B10[26],!B11[26],!B11[27],!B11[28],B11[29] buffer lc_trk_g0_1 input0_5
+!B14[26],!B15[26],!B15[27],!B15[28],B15[29] buffer lc_trk_g0_1 input0_7
+!B10[35],B11[32],!B11[33],!B11[34],!B11[35] buffer lc_trk_g0_1 input2_5
+!B14[35],B15[32],!B15[33],!B15[34],!B15[35] buffer lc_trk_g0_1 input2_7
+!B8[27],!B8[28],B8[29],!B8[30],!B9[30] buffer lc_trk_g0_1 wire_bram/ram/WDATA_11
+!B4[27],!B4[28],B4[29],!B4[30],!B5[30] buffer lc_trk_g0_1 wire_bram/ram/WDATA_13
+!B0[27],!B0[28],B0[29],!B0[30],!B1[30] buffer lc_trk_g0_1 wire_bram/ram/WDATA_15
+!B12[27],!B12[28],B12[29],!B12[30],!B13[30] buffer lc_trk_g0_1 wire_bram/ram/WDATA_9
+!B0[26],B1[26],!B1[27],!B1[28],B1[29] buffer lc_trk_g0_2 input0_0
+!B4[26],B5[26],!B5[27],!B5[28],B5[29] buffer lc_trk_g0_2 input0_2
+!B8[26],B9[26],!B9[27],!B9[28],B9[29] buffer lc_trk_g0_2 input0_4
+!B12[26],B13[26],!B13[27],!B13[28],B13[29] buffer lc_trk_g0_2 input0_6
+!B12[35],B13[32],!B13[33],!B13[34],B13[35] buffer lc_trk_g0_2 input2_6
+!B10[31],B10[32],!B10[33],!B10[34],B11[31] buffer lc_trk_g0_2 wire_bram/ram/MASK_10
+!B6[31],B6[32],!B6[33],!B6[34],B7[31] buffer lc_trk_g0_2 wire_bram/ram/MASK_12
+!B2[31],B2[32],!B2[33],!B2[34],B3[31] buffer lc_trk_g0_2 wire_bram/ram/MASK_14
+!B14[31],B14[32],!B14[33],!B14[34],B15[31] buffer lc_trk_g0_2 wire_bram/ram/MASK_8
+!B4[0],B4[1],!B5[0],B5[1] buffer lc_trk_g0_2 wire_bram/ram/RCLKE
+!B10[27],!B10[28],B10[29],!B10[30],B11[30] buffer lc_trk_g0_2 wire_bram/ram/WDATA_10
+!B6[27],!B6[28],B6[29],!B6[30],B7[30] buffer lc_trk_g0_2 wire_bram/ram/WDATA_12
+!B2[27],!B2[28],B2[29],!B2[30],B3[30] buffer lc_trk_g0_2 wire_bram/ram/WDATA_14
+!B14[27],!B14[28],B14[29],!B14[30],B15[30] buffer lc_trk_g0_2 wire_bram/ram/WDATA_8
+!B2[26],B3[26],!B3[27],!B3[28],B3[29] buffer lc_trk_g0_3 input0_1
+!B6[26],B7[26],!B7[27],!B7[28],B7[29] buffer lc_trk_g0_3 input0_3
+!B10[26],B11[26],!B11[27],!B11[28],B11[29] buffer lc_trk_g0_3 input0_5
+!B14[26],B15[26],!B15[27],!B15[28],B15[29] buffer lc_trk_g0_3 input0_7
+!B10[35],B11[32],!B11[33],!B11[34],B11[35] buffer lc_trk_g0_3 input2_5
+!B14[35],B15[32],!B15[33],!B15[34],B15[35] buffer lc_trk_g0_3 input2_7
+!B8[31],B8[32],!B8[33],!B8[34],B9[31] buffer lc_trk_g0_3 wire_bram/ram/MASK_11
+!B4[31],B4[32],!B4[33],!B4[34],B5[31] buffer lc_trk_g0_3 wire_bram/ram/MASK_13
+!B0[31],B0[32],!B0[33],!B0[34],B1[31] buffer lc_trk_g0_3 wire_bram/ram/MASK_15
+!B12[31],B12[32],!B12[33],!B12[34],B13[31] buffer lc_trk_g0_3 wire_bram/ram/MASK_9
+!B8[27],!B8[28],B8[29],!B8[30],B9[30] buffer lc_trk_g0_3 wire_bram/ram/WDATA_11
+!B4[27],!B4[28],B4[29],!B4[30],B5[30] buffer lc_trk_g0_3 wire_bram/ram/WDATA_13
+!B0[27],!B0[28],B0[29],!B0[30],B1[30] buffer lc_trk_g0_3 wire_bram/ram/WDATA_15
+!B12[27],!B12[28],B12[29],!B12[30],B13[30] buffer lc_trk_g0_3 wire_bram/ram/WDATA_9
+B0[26],!B1[26],!B1[27],!B1[28],B1[29] buffer lc_trk_g0_4 input0_0
+B4[26],!B5[26],!B5[27],!B5[28],B5[29] buffer lc_trk_g0_4 input0_2
+B8[26],!B9[26],!B9[27],!B9[28],B9[29] buffer lc_trk_g0_4 input0_4
+B12[26],!B13[26],!B13[27],!B13[28],B13[29] buffer lc_trk_g0_4 input0_6
+B12[35],B13[32],!B13[33],!B13[34],!B13[35] buffer lc_trk_g0_4 input2_6
+B10[31],B10[32],!B10[33],!B10[34],!B11[31] buffer lc_trk_g0_4 wire_bram/ram/MASK_10
+B6[31],B6[32],!B6[33],!B6[34],!B7[31] buffer lc_trk_g0_4 wire_bram/ram/MASK_12
+B2[31],B2[32],!B2[33],!B2[34],!B3[31] buffer lc_trk_g0_4 wire_bram/ram/MASK_14
+B14[31],B14[32],!B14[33],!B14[34],!B15[31] buffer lc_trk_g0_4 wire_bram/ram/MASK_8
+!B14[0],B14[1],!B15[0],B15[1] buffer lc_trk_g0_4 wire_bram/ram/RE
+!B10[27],!B10[28],B10[29],B10[30],!B11[30] buffer lc_trk_g0_4 wire_bram/ram/WDATA_10
+!B6[27],!B6[28],B6[29],B6[30],!B7[30] buffer lc_trk_g0_4 wire_bram/ram/WDATA_12
+!B2[27],!B2[28],B2[29],B2[30],!B3[30] buffer lc_trk_g0_4 wire_bram/ram/WDATA_14
+!B14[27],!B14[28],B14[29],B14[30],!B15[30] buffer lc_trk_g0_4 wire_bram/ram/WDATA_8
+B2[26],!B3[26],!B3[27],!B3[28],B3[29] buffer lc_trk_g0_5 input0_1
+B6[26],!B7[26],!B7[27],!B7[28],B7[29] buffer lc_trk_g0_5 input0_3
+B10[26],!B11[26],!B11[27],!B11[28],B11[29] buffer lc_trk_g0_5 input0_5
+B14[26],!B15[26],!B15[27],!B15[28],B15[29] buffer lc_trk_g0_5 input0_7
+B10[35],B11[32],!B11[33],!B11[34],!B11[35] buffer lc_trk_g0_5 input2_5
+B14[35],B15[32],!B15[33],!B15[34],!B15[35] buffer lc_trk_g0_5 input2_7
+B8[31],B8[32],!B8[33],!B8[34],!B9[31] buffer lc_trk_g0_5 wire_bram/ram/MASK_11
+B4[31],B4[32],!B4[33],!B4[34],!B5[31] buffer lc_trk_g0_5 wire_bram/ram/MASK_13
+B0[31],B0[32],!B0[33],!B0[34],!B1[31] buffer lc_trk_g0_5 wire_bram/ram/MASK_15
+B12[31],B12[32],!B12[33],!B12[34],!B13[31] buffer lc_trk_g0_5 wire_bram/ram/MASK_9
+!B8[27],!B8[28],B8[29],B8[30],!B9[30] buffer lc_trk_g0_5 wire_bram/ram/WDATA_11
+!B4[27],!B4[28],B4[29],B4[30],!B5[30] buffer lc_trk_g0_5 wire_bram/ram/WDATA_13
+!B0[27],!B0[28],B0[29],B0[30],!B1[30] buffer lc_trk_g0_5 wire_bram/ram/WDATA_15
+!B12[27],!B12[28],B12[29],B12[30],!B13[30] buffer lc_trk_g0_5 wire_bram/ram/WDATA_9
+B0[26],B1[26],!B1[27],!B1[28],B1[29] buffer lc_trk_g0_6 input0_0
+B4[26],B5[26],!B5[27],!B5[28],B5[29] buffer lc_trk_g0_6 input0_2
+B8[26],B9[26],!B9[27],!B9[28],B9[29] buffer lc_trk_g0_6 input0_4
+B12[26],B13[26],!B13[27],!B13[28],B13[29] buffer lc_trk_g0_6 input0_6
+B12[35],B13[32],!B13[33],!B13[34],B13[35] buffer lc_trk_g0_6 input2_6
+B10[31],B10[32],!B10[33],!B10[34],B11[31] buffer lc_trk_g0_6 wire_bram/ram/MASK_10
+B6[31],B6[32],!B6[33],!B6[34],B7[31] buffer lc_trk_g0_6 wire_bram/ram/MASK_12
+B2[31],B2[32],!B2[33],!B2[34],B3[31] buffer lc_trk_g0_6 wire_bram/ram/MASK_14
+B14[31],B14[32],!B14[33],!B14[34],B15[31] buffer lc_trk_g0_6 wire_bram/ram/MASK_8
+!B10[27],!B10[28],B10[29],B10[30],B11[30] buffer lc_trk_g0_6 wire_bram/ram/WDATA_10
+!B6[27],!B6[28],B6[29],B6[30],B7[30] buffer lc_trk_g0_6 wire_bram/ram/WDATA_12
+!B2[27],!B2[28],B2[29],B2[30],B3[30] buffer lc_trk_g0_6 wire_bram/ram/WDATA_14
+!B14[27],!B14[28],B14[29],B14[30],B15[30] buffer lc_trk_g0_6 wire_bram/ram/WDATA_8
+B2[26],B3[26],!B3[27],!B3[28],B3[29] buffer lc_trk_g0_7 input0_1
+B6[26],B7[26],!B7[27],!B7[28],B7[29] buffer lc_trk_g0_7 input0_3
+B10[26],B11[26],!B11[27],!B11[28],B11[29] buffer lc_trk_g0_7 input0_5
+B14[26],B15[26],!B15[27],!B15[28],B15[29] buffer lc_trk_g0_7 input0_7
+B10[35],B11[32],!B11[33],!B11[34],B11[35] buffer lc_trk_g0_7 input2_5
+B14[35],B15[32],!B15[33],!B15[34],B15[35] buffer lc_trk_g0_7 input2_7
+B8[31],B8[32],!B8[33],!B8[34],B9[31] buffer lc_trk_g0_7 wire_bram/ram/MASK_11
+B4[31],B4[32],!B4[33],!B4[34],B5[31] buffer lc_trk_g0_7 wire_bram/ram/MASK_13
+B0[31],B0[32],!B0[33],!B0[34],B1[31] buffer lc_trk_g0_7 wire_bram/ram/MASK_15
+B12[31],B12[32],!B12[33],!B12[34],B13[31] buffer lc_trk_g0_7 wire_bram/ram/MASK_9
+!B8[27],!B8[28],B8[29],B8[30],B9[30] buffer lc_trk_g0_7 wire_bram/ram/WDATA_11
+!B4[27],!B4[28],B4[29],B4[30],B5[30] buffer lc_trk_g0_7 wire_bram/ram/WDATA_13
+!B0[27],!B0[28],B0[29],B0[30],B1[30] buffer lc_trk_g0_7 wire_bram/ram/WDATA_15
+!B12[27],!B12[28],B12[29],B12[30],B13[30] buffer lc_trk_g0_7 wire_bram/ram/WDATA_9
+!B2[26],!B3[26],B3[27],!B3[28],B3[29] buffer lc_trk_g1_0 input0_1
+!B6[26],!B7[26],B7[27],!B7[28],B7[29] buffer lc_trk_g1_0 input0_3
+!B10[26],!B11[26],B11[27],!B11[28],B11[29] buffer lc_trk_g1_0 input0_5
+!B14[26],!B15[26],B15[27],!B15[28],B15[29] buffer lc_trk_g1_0 input0_7
+!B10[35],B11[32],!B11[33],B11[34],!B11[35] buffer lc_trk_g1_0 input2_5
+!B14[35],B15[32],!B15[33],B15[34],!B15[35] buffer lc_trk_g1_0 input2_7
+!B8[31],B8[32],!B8[33],B8[34],!B9[31] buffer lc_trk_g1_0 wire_bram/ram/MASK_11
+!B4[31],B4[32],!B4[33],B4[34],!B5[31] buffer lc_trk_g1_0 wire_bram/ram/MASK_13
+!B0[31],B0[32],!B0[33],B0[34],!B1[31] buffer lc_trk_g1_0 wire_bram/ram/MASK_15
+!B12[31],B12[32],!B12[33],B12[34],!B13[31] buffer lc_trk_g1_0 wire_bram/ram/MASK_9
+B8[27],!B8[28],B8[29],!B8[30],!B9[30] buffer lc_trk_g1_0 wire_bram/ram/WDATA_11
+B4[27],!B4[28],B4[29],!B4[30],!B5[30] buffer lc_trk_g1_0 wire_bram/ram/WDATA_13
+B0[27],!B0[28],B0[29],!B0[30],!B1[30] buffer lc_trk_g1_0 wire_bram/ram/WDATA_15
+B12[27],!B12[28],B12[29],!B12[30],!B13[30] buffer lc_trk_g1_0 wire_bram/ram/WDATA_9
+!B0[26],!B1[26],B1[27],!B1[28],B1[29] buffer lc_trk_g1_1 input0_0
+!B4[26],!B5[26],B5[27],!B5[28],B5[29] buffer lc_trk_g1_1 input0_2
+!B8[26],!B9[26],B9[27],!B9[28],B9[29] buffer lc_trk_g1_1 input0_4
+!B12[26],!B13[26],B13[27],!B13[28],B13[29] buffer lc_trk_g1_1 input0_6
+!B12[35],B13[32],!B13[33],B13[34],!B13[35] buffer lc_trk_g1_1 input2_6
+!B10[31],B10[32],!B10[33],B10[34],!B11[31] buffer lc_trk_g1_1 wire_bram/ram/MASK_10
+!B6[31],B6[32],!B6[33],B6[34],!B7[31] buffer lc_trk_g1_1 wire_bram/ram/MASK_12
+!B2[31],B2[32],!B2[33],B2[34],!B3[31] buffer lc_trk_g1_1 wire_bram/ram/MASK_14
+!B14[31],B14[32],!B14[33],B14[34],!B15[31] buffer lc_trk_g1_1 wire_bram/ram/MASK_8
+!B2[0],!B2[1],B2[2],B3[0],B3[2] buffer lc_trk_g1_1 wire_bram/ram/RCLK
+B10[27],!B10[28],B10[29],!B10[30],!B11[30] buffer lc_trk_g1_1 wire_bram/ram/WDATA_10
+B6[27],!B6[28],B6[29],!B6[30],!B7[30] buffer lc_trk_g1_1 wire_bram/ram/WDATA_12
+B2[27],!B2[28],B2[29],!B2[30],!B3[30] buffer lc_trk_g1_1 wire_bram/ram/WDATA_14
+B14[27],!B14[28],B14[29],!B14[30],!B15[30] buffer lc_trk_g1_1 wire_bram/ram/WDATA_8
+!B2[26],B3[26],B3[27],!B3[28],B3[29] buffer lc_trk_g1_2 input0_1
+!B6[26],B7[26],B7[27],!B7[28],B7[29] buffer lc_trk_g1_2 input0_3
+!B10[26],B11[26],B11[27],!B11[28],B11[29] buffer lc_trk_g1_2 input0_5
+!B14[26],B15[26],B15[27],!B15[28],B15[29] buffer lc_trk_g1_2 input0_7
+!B10[35],B11[32],!B11[33],B11[34],B11[35] buffer lc_trk_g1_2 input2_5
+!B14[35],B15[32],!B15[33],B15[34],B15[35] buffer lc_trk_g1_2 input2_7
+!B8[31],B8[32],!B8[33],B8[34],B9[31] buffer lc_trk_g1_2 wire_bram/ram/MASK_11
+!B4[31],B4[32],!B4[33],B4[34],B5[31] buffer lc_trk_g1_2 wire_bram/ram/MASK_13
+!B0[31],B0[32],!B0[33],B0[34],B1[31] buffer lc_trk_g1_2 wire_bram/ram/MASK_15
+!B12[31],B12[32],!B12[33],B12[34],B13[31] buffer lc_trk_g1_2 wire_bram/ram/MASK_9
+B8[27],!B8[28],B8[29],!B8[30],B9[30] buffer lc_trk_g1_2 wire_bram/ram/WDATA_11
+B4[27],!B4[28],B4[29],!B4[30],B5[30] buffer lc_trk_g1_2 wire_bram/ram/WDATA_13
+B0[27],!B0[28],B0[29],!B0[30],B1[30] buffer lc_trk_g1_2 wire_bram/ram/WDATA_15
+B12[27],!B12[28],B12[29],!B12[30],B13[30] buffer lc_trk_g1_2 wire_bram/ram/WDATA_9
+!B0[26],B1[26],B1[27],!B1[28],B1[29] buffer lc_trk_g1_3 input0_0
+!B4[26],B5[26],B5[27],!B5[28],B5[29] buffer lc_trk_g1_3 input0_2
+!B8[26],B9[26],B9[27],!B9[28],B9[29] buffer lc_trk_g1_3 input0_4
+!B12[26],B13[26],B13[27],!B13[28],B13[29] buffer lc_trk_g1_3 input0_6
+!B12[35],B13[32],!B13[33],B13[34],B13[35] buffer lc_trk_g1_3 input2_6
+!B10[31],B10[32],!B10[33],B10[34],B11[31] buffer lc_trk_g1_3 wire_bram/ram/MASK_10
+!B6[31],B6[32],!B6[33],B6[34],B7[31] buffer lc_trk_g1_3 wire_bram/ram/MASK_12
+!B2[31],B2[32],!B2[33],B2[34],B3[31] buffer lc_trk_g1_3 wire_bram/ram/MASK_14
+!B14[31],B14[32],!B14[33],B14[34],B15[31] buffer lc_trk_g1_3 wire_bram/ram/MASK_8
+!B4[0],B4[1],B5[0],B5[1] buffer lc_trk_g1_3 wire_bram/ram/RCLKE
+B10[27],!B10[28],B10[29],!B10[30],B11[30] buffer lc_trk_g1_3 wire_bram/ram/WDATA_10
+B6[27],!B6[28],B6[29],!B6[30],B7[30] buffer lc_trk_g1_3 wire_bram/ram/WDATA_12
+B2[27],!B2[28],B2[29],!B2[30],B3[30] buffer lc_trk_g1_3 wire_bram/ram/WDATA_14
+B14[27],!B14[28],B14[29],!B14[30],B15[30] buffer lc_trk_g1_3 wire_bram/ram/WDATA_8
+B2[26],!B3[26],B3[27],!B3[28],B3[29] buffer lc_trk_g1_4 input0_1
+B6[26],!B7[26],B7[27],!B7[28],B7[29] buffer lc_trk_g1_4 input0_3
+B10[26],!B11[26],B11[27],!B11[28],B11[29] buffer lc_trk_g1_4 input0_5
+B14[26],!B15[26],B15[27],!B15[28],B15[29] buffer lc_trk_g1_4 input0_7
+B10[35],B11[32],!B11[33],B11[34],!B11[35] buffer lc_trk_g1_4 input2_5
+B14[35],B15[32],!B15[33],B15[34],!B15[35] buffer lc_trk_g1_4 input2_7
+B8[31],B8[32],!B8[33],B8[34],!B9[31] buffer lc_trk_g1_4 wire_bram/ram/MASK_11
+B4[31],B4[32],!B4[33],B4[34],!B5[31] buffer lc_trk_g1_4 wire_bram/ram/MASK_13
+B0[31],B0[32],!B0[33],B0[34],!B1[31] buffer lc_trk_g1_4 wire_bram/ram/MASK_15
+B12[31],B12[32],!B12[33],B12[34],!B13[31] buffer lc_trk_g1_4 wire_bram/ram/MASK_9
+B8[27],!B8[28],B8[29],B8[30],!B9[30] buffer lc_trk_g1_4 wire_bram/ram/WDATA_11
+B4[27],!B4[28],B4[29],B4[30],!B5[30] buffer lc_trk_g1_4 wire_bram/ram/WDATA_13
+B0[27],!B0[28],B0[29],B0[30],!B1[30] buffer lc_trk_g1_4 wire_bram/ram/WDATA_15
+B12[27],!B12[28],B12[29],B12[30],!B13[30] buffer lc_trk_g1_4 wire_bram/ram/WDATA_9
+B0[26],!B1[26],B1[27],!B1[28],B1[29] buffer lc_trk_g1_5 input0_0
+B4[26],!B5[26],B5[27],!B5[28],B5[29] buffer lc_trk_g1_5 input0_2
+B8[26],!B9[26],B9[27],!B9[28],B9[29] buffer lc_trk_g1_5 input0_4
+B12[26],!B13[26],B13[27],!B13[28],B13[29] buffer lc_trk_g1_5 input0_6
+B12[35],B13[32],!B13[33],B13[34],!B13[35] buffer lc_trk_g1_5 input2_6
+B10[31],B10[32],!B10[33],B10[34],!B11[31] buffer lc_trk_g1_5 wire_bram/ram/MASK_10
+B6[31],B6[32],!B6[33],B6[34],!B7[31] buffer lc_trk_g1_5 wire_bram/ram/MASK_12
+B2[31],B2[32],!B2[33],B2[34],!B3[31] buffer lc_trk_g1_5 wire_bram/ram/MASK_14
+B14[31],B14[32],!B14[33],B14[34],!B15[31] buffer lc_trk_g1_5 wire_bram/ram/MASK_8
+!B14[0],B14[1],B15[0],B15[1] buffer lc_trk_g1_5 wire_bram/ram/RE
+B10[27],!B10[28],B10[29],B10[30],!B11[30] buffer lc_trk_g1_5 wire_bram/ram/WDATA_10
+B6[27],!B6[28],B6[29],B6[30],!B7[30] buffer lc_trk_g1_5 wire_bram/ram/WDATA_12
+B2[27],!B2[28],B2[29],B2[30],!B3[30] buffer lc_trk_g1_5 wire_bram/ram/WDATA_14
+B14[27],!B14[28],B14[29],B14[30],!B15[30] buffer lc_trk_g1_5 wire_bram/ram/WDATA_8
+B2[26],B3[26],B3[27],!B3[28],B3[29] buffer lc_trk_g1_6 input0_1
+B6[26],B7[26],B7[27],!B7[28],B7[29] buffer lc_trk_g1_6 input0_3
+B10[26],B11[26],B11[27],!B11[28],B11[29] buffer lc_trk_g1_6 input0_5
+B14[26],B15[26],B15[27],!B15[28],B15[29] buffer lc_trk_g1_6 input0_7
+B10[35],B11[32],!B11[33],B11[34],B11[35] buffer lc_trk_g1_6 input2_5
+B14[35],B15[32],!B15[33],B15[34],B15[35] buffer lc_trk_g1_6 input2_7
+B8[31],B8[32],!B8[33],B8[34],B9[31] buffer lc_trk_g1_6 wire_bram/ram/MASK_11
+B4[31],B4[32],!B4[33],B4[34],B5[31] buffer lc_trk_g1_6 wire_bram/ram/MASK_13
+B0[31],B0[32],!B0[33],B0[34],B1[31] buffer lc_trk_g1_6 wire_bram/ram/MASK_15
+B12[31],B12[32],!B12[33],B12[34],B13[31] buffer lc_trk_g1_6 wire_bram/ram/MASK_9
+B8[27],!B8[28],B8[29],B8[30],B9[30] buffer lc_trk_g1_6 wire_bram/ram/WDATA_11
+B4[27],!B4[28],B4[29],B4[30],B5[30] buffer lc_trk_g1_6 wire_bram/ram/WDATA_13
+B0[27],!B0[28],B0[29],B0[30],B1[30] buffer lc_trk_g1_6 wire_bram/ram/WDATA_15
+B12[27],!B12[28],B12[29],B12[30],B13[30] buffer lc_trk_g1_6 wire_bram/ram/WDATA_9
+B0[26],B1[26],B1[27],!B1[28],B1[29] buffer lc_trk_g1_7 input0_0
+B4[26],B5[26],B5[27],!B5[28],B5[29] buffer lc_trk_g1_7 input0_2
+B8[26],B9[26],B9[27],!B9[28],B9[29] buffer lc_trk_g1_7 input0_4
+B12[26],B13[26],B13[27],!B13[28],B13[29] buffer lc_trk_g1_7 input0_6
+B12[35],B13[32],!B13[33],B13[34],B13[35] buffer lc_trk_g1_7 input2_6
+B10[31],B10[32],!B10[33],B10[34],B11[31] buffer lc_trk_g1_7 wire_bram/ram/MASK_10
+B6[31],B6[32],!B6[33],B6[34],B7[31] buffer lc_trk_g1_7 wire_bram/ram/MASK_12
+B2[31],B2[32],!B2[33],B2[34],B3[31] buffer lc_trk_g1_7 wire_bram/ram/MASK_14
+B14[31],B14[32],!B14[33],B14[34],B15[31] buffer lc_trk_g1_7 wire_bram/ram/MASK_8
+B10[27],!B10[28],B10[29],B10[30],B11[30] buffer lc_trk_g1_7 wire_bram/ram/WDATA_10
+B6[27],!B6[28],B6[29],B6[30],B7[30] buffer lc_trk_g1_7 wire_bram/ram/WDATA_12
+B2[27],!B2[28],B2[29],B2[30],B3[30] buffer lc_trk_g1_7 wire_bram/ram/WDATA_14
+B14[27],!B14[28],B14[29],B14[30],B15[30] buffer lc_trk_g1_7 wire_bram/ram/WDATA_8
+!B0[26],!B1[26],!B1[27],B1[28],B1[29] buffer lc_trk_g2_0 input0_0
+!B4[26],!B5[26],!B5[27],B5[28],B5[29] buffer lc_trk_g2_0 input0_2
+!B8[26],!B9[26],!B9[27],B9[28],B9[29] buffer lc_trk_g2_0 input0_4
+!B12[26],!B13[26],!B13[27],B13[28],B13[29] buffer lc_trk_g2_0 input0_6
+!B12[35],B13[32],B13[33],!B13[34],!B13[35] buffer lc_trk_g2_0 input2_6
+!B10[31],B10[32],B10[33],!B10[34],!B11[31] buffer lc_trk_g2_0 wire_bram/ram/MASK_10
+!B6[31],B6[32],B6[33],!B6[34],!B7[31] buffer lc_trk_g2_0 wire_bram/ram/MASK_12
+!B2[31],B2[32],B2[33],!B2[34],!B3[31] buffer lc_trk_g2_0 wire_bram/ram/MASK_14
+!B14[31],B14[32],B14[33],!B14[34],!B15[31] buffer lc_trk_g2_0 wire_bram/ram/MASK_8
+B2[0],!B2[1],B2[2],!B3[0],B3[2] buffer lc_trk_g2_0 wire_bram/ram/RCLK
+!B10[27],B10[28],B10[29],!B10[30],!B11[30] buffer lc_trk_g2_0 wire_bram/ram/WDATA_10
+!B6[27],B6[28],B6[29],!B6[30],!B7[30] buffer lc_trk_g2_0 wire_bram/ram/WDATA_12
+!B2[27],B2[28],B2[29],!B2[30],!B3[30] buffer lc_trk_g2_0 wire_bram/ram/WDATA_14
+!B14[27],B14[28],B14[29],!B14[30],!B15[30] buffer lc_trk_g2_0 wire_bram/ram/WDATA_8
+!B2[26],!B3[26],!B3[27],B3[28],B3[29] buffer lc_trk_g2_1 input0_1
+!B6[26],!B7[26],!B7[27],B7[28],B7[29] buffer lc_trk_g2_1 input0_3
+!B10[26],!B11[26],!B11[27],B11[28],B11[29] buffer lc_trk_g2_1 input0_5
+!B14[26],!B15[26],!B15[27],B15[28],B15[29] buffer lc_trk_g2_1 input0_7
+!B10[35],B11[32],B11[33],!B11[34],!B11[35] buffer lc_trk_g2_1 input2_5
+!B14[35],B15[32],B15[33],!B15[34],!B15[35] buffer lc_trk_g2_1 input2_7
+!B8[31],B8[32],B8[33],!B8[34],!B9[31] buffer lc_trk_g2_1 wire_bram/ram/MASK_11
+!B4[31],B4[32],B4[33],!B4[34],!B5[31] buffer lc_trk_g2_1 wire_bram/ram/MASK_13
+!B0[31],B0[32],B0[33],!B0[34],!B1[31] buffer lc_trk_g2_1 wire_bram/ram/MASK_15
+!B12[31],B12[32],B12[33],!B12[34],!B13[31] buffer lc_trk_g2_1 wire_bram/ram/MASK_9
+!B8[27],B8[28],B8[29],!B8[30],!B9[30] buffer lc_trk_g2_1 wire_bram/ram/WDATA_11
+!B4[27],B4[28],B4[29],!B4[30],!B5[30] buffer lc_trk_g2_1 wire_bram/ram/WDATA_13
+!B0[27],B0[28],B0[29],!B0[30],!B1[30] buffer lc_trk_g2_1 wire_bram/ram/WDATA_15
+!B12[27],B12[28],B12[29],!B12[30],!B13[30] buffer lc_trk_g2_1 wire_bram/ram/WDATA_9
+!B0[26],B1[26],!B1[27],B1[28],B1[29] buffer lc_trk_g2_2 input0_0
+!B4[26],B5[26],!B5[27],B5[28],B5[29] buffer lc_trk_g2_2 input0_2
+!B8[26],B9[26],!B9[27],B9[28],B9[29] buffer lc_trk_g2_2 input0_4
+!B12[26],B13[26],!B13[27],B13[28],B13[29] buffer lc_trk_g2_2 input0_6
+!B12[35],B13[32],B13[33],!B13[34],B13[35] buffer lc_trk_g2_2 input2_6
+!B10[31],B10[32],B10[33],!B10[34],B11[31] buffer lc_trk_g2_2 wire_bram/ram/MASK_10
+!B6[31],B6[32],B6[33],!B6[34],B7[31] buffer lc_trk_g2_2 wire_bram/ram/MASK_12
+!B2[31],B2[32],B2[33],!B2[34],B3[31] buffer lc_trk_g2_2 wire_bram/ram/MASK_14
+!B14[31],B14[32],B14[33],!B14[34],B15[31] buffer lc_trk_g2_2 wire_bram/ram/MASK_8
+B4[0],B4[1],!B5[0],B5[1] buffer lc_trk_g2_2 wire_bram/ram/RCLKE
+!B10[27],B10[28],B10[29],!B10[30],B11[30] buffer lc_trk_g2_2 wire_bram/ram/WDATA_10
+!B6[27],B6[28],B6[29],!B6[30],B7[30] buffer lc_trk_g2_2 wire_bram/ram/WDATA_12
+!B2[27],B2[28],B2[29],!B2[30],B3[30] buffer lc_trk_g2_2 wire_bram/ram/WDATA_14
+!B14[27],B14[28],B14[29],!B14[30],B15[30] buffer lc_trk_g2_2 wire_bram/ram/WDATA_8
+!B2[26],B3[26],!B3[27],B3[28],B3[29] buffer lc_trk_g2_3 input0_1
+!B6[26],B7[26],!B7[27],B7[28],B7[29] buffer lc_trk_g2_3 input0_3
+!B10[26],B11[26],!B11[27],B11[28],B11[29] buffer lc_trk_g2_3 input0_5
+!B14[26],B15[26],!B15[27],B15[28],B15[29] buffer lc_trk_g2_3 input0_7
+!B10[35],B11[32],B11[33],!B11[34],B11[35] buffer lc_trk_g2_3 input2_5
+!B14[35],B15[32],B15[33],!B15[34],B15[35] buffer lc_trk_g2_3 input2_7
+!B8[31],B8[32],B8[33],!B8[34],B9[31] buffer lc_trk_g2_3 wire_bram/ram/MASK_11
+!B4[31],B4[32],B4[33],!B4[34],B5[31] buffer lc_trk_g2_3 wire_bram/ram/MASK_13
+!B0[31],B0[32],B0[33],!B0[34],B1[31] buffer lc_trk_g2_3 wire_bram/ram/MASK_15
+!B12[31],B12[32],B12[33],!B12[34],B13[31] buffer lc_trk_g2_3 wire_bram/ram/MASK_9
+!B8[27],B8[28],B8[29],!B8[30],B9[30] buffer lc_trk_g2_3 wire_bram/ram/WDATA_11
+!B4[27],B4[28],B4[29],!B4[30],B5[30] buffer lc_trk_g2_3 wire_bram/ram/WDATA_13
+!B0[27],B0[28],B0[29],!B0[30],B1[30] buffer lc_trk_g2_3 wire_bram/ram/WDATA_15
+!B12[27],B12[28],B12[29],!B12[30],B13[30] buffer lc_trk_g2_3 wire_bram/ram/WDATA_9
+B0[26],!B1[26],!B1[27],B1[28],B1[29] buffer lc_trk_g2_4 input0_0
+B4[26],!B5[26],!B5[27],B5[28],B5[29] buffer lc_trk_g2_4 input0_2
+B8[26],!B9[26],!B9[27],B9[28],B9[29] buffer lc_trk_g2_4 input0_4
+B12[26],!B13[26],!B13[27],B13[28],B13[29] buffer lc_trk_g2_4 input0_6
+B12[35],B13[32],B13[33],!B13[34],!B13[35] buffer lc_trk_g2_4 input2_6
+B10[31],B10[32],B10[33],!B10[34],!B11[31] buffer lc_trk_g2_4 wire_bram/ram/MASK_10
+B6[31],B6[32],B6[33],!B6[34],!B7[31] buffer lc_trk_g2_4 wire_bram/ram/MASK_12
+B2[31],B2[32],B2[33],!B2[34],!B3[31] buffer lc_trk_g2_4 wire_bram/ram/MASK_14
+B14[31],B14[32],B14[33],!B14[34],!B15[31] buffer lc_trk_g2_4 wire_bram/ram/MASK_8
+B14[0],B14[1],!B15[0],B15[1] buffer lc_trk_g2_4 wire_bram/ram/RE
+!B10[27],B10[28],B10[29],B10[30],!B11[30] buffer lc_trk_g2_4 wire_bram/ram/WDATA_10
+!B6[27],B6[28],B6[29],B6[30],!B7[30] buffer lc_trk_g2_4 wire_bram/ram/WDATA_12
+!B2[27],B2[28],B2[29],B2[30],!B3[30] buffer lc_trk_g2_4 wire_bram/ram/WDATA_14
+!B14[27],B14[28],B14[29],B14[30],!B15[30] buffer lc_trk_g2_4 wire_bram/ram/WDATA_8
+B2[26],!B3[26],!B3[27],B3[28],B3[29] buffer lc_trk_g2_5 input0_1
+B6[26],!B7[26],!B7[27],B7[28],B7[29] buffer lc_trk_g2_5 input0_3
+B10[26],!B11[26],!B11[27],B11[28],B11[29] buffer lc_trk_g2_5 input0_5
+B14[26],!B15[26],!B15[27],B15[28],B15[29] buffer lc_trk_g2_5 input0_7
+B10[35],B11[32],B11[33],!B11[34],!B11[35] buffer lc_trk_g2_5 input2_5
+B14[35],B15[32],B15[33],!B15[34],!B15[35] buffer lc_trk_g2_5 input2_7
+B8[31],B8[32],B8[33],!B8[34],!B9[31] buffer lc_trk_g2_5 wire_bram/ram/MASK_11
+B4[31],B4[32],B4[33],!B4[34],!B5[31] buffer lc_trk_g2_5 wire_bram/ram/MASK_13
+B0[31],B0[32],B0[33],!B0[34],!B1[31] buffer lc_trk_g2_5 wire_bram/ram/MASK_15
+B12[31],B12[32],B12[33],!B12[34],!B13[31] buffer lc_trk_g2_5 wire_bram/ram/MASK_9
+!B8[27],B8[28],B8[29],B8[30],!B9[30] buffer lc_trk_g2_5 wire_bram/ram/WDATA_11
+!B4[27],B4[28],B4[29],B4[30],!B5[30] buffer lc_trk_g2_5 wire_bram/ram/WDATA_13
+!B0[27],B0[28],B0[29],B0[30],!B1[30] buffer lc_trk_g2_5 wire_bram/ram/WDATA_15
+!B12[27],B12[28],B12[29],B12[30],!B13[30] buffer lc_trk_g2_5 wire_bram/ram/WDATA_9
+B0[26],B1[26],!B1[27],B1[28],B1[29] buffer lc_trk_g2_6 input0_0
+B4[26],B5[26],!B5[27],B5[28],B5[29] buffer lc_trk_g2_6 input0_2
+B8[26],B9[26],!B9[27],B9[28],B9[29] buffer lc_trk_g2_6 input0_4
+B12[26],B13[26],!B13[27],B13[28],B13[29] buffer lc_trk_g2_6 input0_6
+B12[35],B13[32],B13[33],!B13[34],B13[35] buffer lc_trk_g2_6 input2_6
+B10[31],B10[32],B10[33],!B10[34],B11[31] buffer lc_trk_g2_6 wire_bram/ram/MASK_10
+B6[31],B6[32],B6[33],!B6[34],B7[31] buffer lc_trk_g2_6 wire_bram/ram/MASK_12
+B2[31],B2[32],B2[33],!B2[34],B3[31] buffer lc_trk_g2_6 wire_bram/ram/MASK_14
+B14[31],B14[32],B14[33],!B14[34],B15[31] buffer lc_trk_g2_6 wire_bram/ram/MASK_8
+!B10[27],B10[28],B10[29],B10[30],B11[30] buffer lc_trk_g2_6 wire_bram/ram/WDATA_10
+!B6[27],B6[28],B6[29],B6[30],B7[30] buffer lc_trk_g2_6 wire_bram/ram/WDATA_12
+!B2[27],B2[28],B2[29],B2[30],B3[30] buffer lc_trk_g2_6 wire_bram/ram/WDATA_14
+!B14[27],B14[28],B14[29],B14[30],B15[30] buffer lc_trk_g2_6 wire_bram/ram/WDATA_8
+B2[26],B3[26],!B3[27],B3[28],B3[29] buffer lc_trk_g2_7 input0_1
+B6[26],B7[26],!B7[27],B7[28],B7[29] buffer lc_trk_g2_7 input0_3
+B10[26],B11[26],!B11[27],B11[28],B11[29] buffer lc_trk_g2_7 input0_5
+B14[26],B15[26],!B15[27],B15[28],B15[29] buffer lc_trk_g2_7 input0_7
+B10[35],B11[32],B11[33],!B11[34],B11[35] buffer lc_trk_g2_7 input2_5
+B14[35],B15[32],B15[33],!B15[34],B15[35] buffer lc_trk_g2_7 input2_7
+B8[31],B8[32],B8[33],!B8[34],B9[31] buffer lc_trk_g2_7 wire_bram/ram/MASK_11
+B4[31],B4[32],B4[33],!B4[34],B5[31] buffer lc_trk_g2_7 wire_bram/ram/MASK_13
+B0[31],B0[32],B0[33],!B0[34],B1[31] buffer lc_trk_g2_7 wire_bram/ram/MASK_15
+B12[31],B12[32],B12[33],!B12[34],B13[31] buffer lc_trk_g2_7 wire_bram/ram/MASK_9
+!B8[27],B8[28],B8[29],B8[30],B9[30] buffer lc_trk_g2_7 wire_bram/ram/WDATA_11
+!B4[27],B4[28],B4[29],B4[30],B5[30] buffer lc_trk_g2_7 wire_bram/ram/WDATA_13
+!B0[27],B0[28],B0[29],B0[30],B1[30] buffer lc_trk_g2_7 wire_bram/ram/WDATA_15
+!B12[27],B12[28],B12[29],B12[30],B13[30] buffer lc_trk_g2_7 wire_bram/ram/WDATA_9
+!B2[26],!B3[26],B3[27],B3[28],B3[29] buffer lc_trk_g3_0 input0_1
+!B6[26],!B7[26],B7[27],B7[28],B7[29] buffer lc_trk_g3_0 input0_3
+!B10[26],!B11[26],B11[27],B11[28],B11[29] buffer lc_trk_g3_0 input0_5
+!B14[26],!B15[26],B15[27],B15[28],B15[29] buffer lc_trk_g3_0 input0_7
+!B10[35],B11[32],B11[33],B11[34],!B11[35] buffer lc_trk_g3_0 input2_5
+!B14[35],B15[32],B15[33],B15[34],!B15[35] buffer lc_trk_g3_0 input2_7
+!B8[31],B8[32],B8[33],B8[34],!B9[31] buffer lc_trk_g3_0 wire_bram/ram/MASK_11
+!B4[31],B4[32],B4[33],B4[34],!B5[31] buffer lc_trk_g3_0 wire_bram/ram/MASK_13
+!B0[31],B0[32],B0[33],B0[34],!B1[31] buffer lc_trk_g3_0 wire_bram/ram/MASK_15
+!B12[31],B12[32],B12[33],B12[34],!B13[31] buffer lc_trk_g3_0 wire_bram/ram/MASK_9
+B8[27],B8[28],B8[29],!B8[30],!B9[30] buffer lc_trk_g3_0 wire_bram/ram/WDATA_11
+B4[27],B4[28],B4[29],!B4[30],!B5[30] buffer lc_trk_g3_0 wire_bram/ram/WDATA_13
+B0[27],B0[28],B0[29],!B0[30],!B1[30] buffer lc_trk_g3_0 wire_bram/ram/WDATA_15
+B12[27],B12[28],B12[29],!B12[30],!B13[30] buffer lc_trk_g3_0 wire_bram/ram/WDATA_9
+!B0[26],!B1[26],B1[27],B1[28],B1[29] buffer lc_trk_g3_1 input0_0
+!B4[26],!B5[26],B5[27],B5[28],B5[29] buffer lc_trk_g3_1 input0_2
+!B8[26],!B9[26],B9[27],B9[28],B9[29] buffer lc_trk_g3_1 input0_4
+!B12[26],!B13[26],B13[27],B13[28],B13[29] buffer lc_trk_g3_1 input0_6
+!B12[35],B13[32],B13[33],B13[34],!B13[35] buffer lc_trk_g3_1 input2_6
+!B10[31],B10[32],B10[33],B10[34],!B11[31] buffer lc_trk_g3_1 wire_bram/ram/MASK_10
+!B6[31],B6[32],B6[33],B6[34],!B7[31] buffer lc_trk_g3_1 wire_bram/ram/MASK_12
+!B2[31],B2[32],B2[33],B2[34],!B3[31] buffer lc_trk_g3_1 wire_bram/ram/MASK_14
+!B14[31],B14[32],B14[33],B14[34],!B15[31] buffer lc_trk_g3_1 wire_bram/ram/MASK_8
+B2[0],!B2[1],B2[2],B3[0],B3[2] buffer lc_trk_g3_1 wire_bram/ram/RCLK
+B10[27],B10[28],B10[29],!B10[30],!B11[30] buffer lc_trk_g3_1 wire_bram/ram/WDATA_10
+B6[27],B6[28],B6[29],!B6[30],!B7[30] buffer lc_trk_g3_1 wire_bram/ram/WDATA_12
+B2[27],B2[28],B2[29],!B2[30],!B3[30] buffer lc_trk_g3_1 wire_bram/ram/WDATA_14
+B14[27],B14[28],B14[29],!B14[30],!B15[30] buffer lc_trk_g3_1 wire_bram/ram/WDATA_8
+!B2[26],B3[26],B3[27],B3[28],B3[29] buffer lc_trk_g3_2 input0_1
+!B6[26],B7[26],B7[27],B7[28],B7[29] buffer lc_trk_g3_2 input0_3
+!B10[26],B11[26],B11[27],B11[28],B11[29] buffer lc_trk_g3_2 input0_5
+!B14[26],B15[26],B15[27],B15[28],B15[29] buffer lc_trk_g3_2 input0_7
+!B10[35],B11[32],B11[33],B11[34],B11[35] buffer lc_trk_g3_2 input2_5
+!B14[35],B15[32],B15[33],B15[34],B15[35] buffer lc_trk_g3_2 input2_7
+!B8[31],B8[32],B8[33],B8[34],B9[31] buffer lc_trk_g3_2 wire_bram/ram/MASK_11
+!B4[31],B4[32],B4[33],B4[34],B5[31] buffer lc_trk_g3_2 wire_bram/ram/MASK_13
+!B0[31],B0[32],B0[33],B0[34],B1[31] buffer lc_trk_g3_2 wire_bram/ram/MASK_15
+!B12[31],B12[32],B12[33],B12[34],B13[31] buffer lc_trk_g3_2 wire_bram/ram/MASK_9
+B8[27],B8[28],B8[29],!B8[30],B9[30] buffer lc_trk_g3_2 wire_bram/ram/WDATA_11
+B4[27],B4[28],B4[29],!B4[30],B5[30] buffer lc_trk_g3_2 wire_bram/ram/WDATA_13
+B0[27],B0[28],B0[29],!B0[30],B1[30] buffer lc_trk_g3_2 wire_bram/ram/WDATA_15
+B12[27],B12[28],B12[29],!B12[30],B13[30] buffer lc_trk_g3_2 wire_bram/ram/WDATA_9
+!B0[26],B1[26],B1[27],B1[28],B1[29] buffer lc_trk_g3_3 input0_0
+!B4[26],B5[26],B5[27],B5[28],B5[29] buffer lc_trk_g3_3 input0_2
+!B8[26],B9[26],B9[27],B9[28],B9[29] buffer lc_trk_g3_3 input0_4
+!B12[26],B13[26],B13[27],B13[28],B13[29] buffer lc_trk_g3_3 input0_6
+!B12[35],B13[32],B13[33],B13[34],B13[35] buffer lc_trk_g3_3 input2_6
+!B10[31],B10[32],B10[33],B10[34],B11[31] buffer lc_trk_g3_3 wire_bram/ram/MASK_10
+!B6[31],B6[32],B6[33],B6[34],B7[31] buffer lc_trk_g3_3 wire_bram/ram/MASK_12
+!B2[31],B2[32],B2[33],B2[34],B3[31] buffer lc_trk_g3_3 wire_bram/ram/MASK_14
+!B14[31],B14[32],B14[33],B14[34],B15[31] buffer lc_trk_g3_3 wire_bram/ram/MASK_8
+B4[0],B4[1],B5[0],B5[1] buffer lc_trk_g3_3 wire_bram/ram/RCLKE
+B10[27],B10[28],B10[29],!B10[30],B11[30] buffer lc_trk_g3_3 wire_bram/ram/WDATA_10
+B6[27],B6[28],B6[29],!B6[30],B7[30] buffer lc_trk_g3_3 wire_bram/ram/WDATA_12
+B2[27],B2[28],B2[29],!B2[30],B3[30] buffer lc_trk_g3_3 wire_bram/ram/WDATA_14
+B14[27],B14[28],B14[29],!B14[30],B15[30] buffer lc_trk_g3_3 wire_bram/ram/WDATA_8
+B2[26],!B3[26],B3[27],B3[28],B3[29] buffer lc_trk_g3_4 input0_1
+B6[26],!B7[26],B7[27],B7[28],B7[29] buffer lc_trk_g3_4 input0_3
+B10[26],!B11[26],B11[27],B11[28],B11[29] buffer lc_trk_g3_4 input0_5
+B14[26],!B15[26],B15[27],B15[28],B15[29] buffer lc_trk_g3_4 input0_7
+B10[35],B11[32],B11[33],B11[34],!B11[35] buffer lc_trk_g3_4 input2_5
+B14[35],B15[32],B15[33],B15[34],!B15[35] buffer lc_trk_g3_4 input2_7
+B8[31],B8[32],B8[33],B8[34],!B9[31] buffer lc_trk_g3_4 wire_bram/ram/MASK_11
+B4[31],B4[32],B4[33],B4[34],!B5[31] buffer lc_trk_g3_4 wire_bram/ram/MASK_13
+B0[31],B0[32],B0[33],B0[34],!B1[31] buffer lc_trk_g3_4 wire_bram/ram/MASK_15
+B12[31],B12[32],B12[33],B12[34],!B13[31] buffer lc_trk_g3_4 wire_bram/ram/MASK_9
+B8[27],B8[28],B8[29],B8[30],!B9[30] buffer lc_trk_g3_4 wire_bram/ram/WDATA_11
+B4[27],B4[28],B4[29],B4[30],!B5[30] buffer lc_trk_g3_4 wire_bram/ram/WDATA_13
+B0[27],B0[28],B0[29],B0[30],!B1[30] buffer lc_trk_g3_4 wire_bram/ram/WDATA_15
+B12[27],B12[28],B12[29],B12[30],!B13[30] buffer lc_trk_g3_4 wire_bram/ram/WDATA_9
+B0[26],!B1[26],B1[27],B1[28],B1[29] buffer lc_trk_g3_5 input0_0
+B4[26],!B5[26],B5[27],B5[28],B5[29] buffer lc_trk_g3_5 input0_2
+B8[26],!B9[26],B9[27],B9[28],B9[29] buffer lc_trk_g3_5 input0_4
+B12[26],!B13[26],B13[27],B13[28],B13[29] buffer lc_trk_g3_5 input0_6
+B12[35],B13[32],B13[33],B13[34],!B13[35] buffer lc_trk_g3_5 input2_6
+B10[31],B10[32],B10[33],B10[34],!B11[31] buffer lc_trk_g3_5 wire_bram/ram/MASK_10
+B6[31],B6[32],B6[33],B6[34],!B7[31] buffer lc_trk_g3_5 wire_bram/ram/MASK_12
+B2[31],B2[32],B2[33],B2[34],!B3[31] buffer lc_trk_g3_5 wire_bram/ram/MASK_14
+B14[31],B14[32],B14[33],B14[34],!B15[31] buffer lc_trk_g3_5 wire_bram/ram/MASK_8
+B14[0],B14[1],B15[0],B15[1] buffer lc_trk_g3_5 wire_bram/ram/RE
+B10[27],B10[28],B10[29],B10[30],!B11[30] buffer lc_trk_g3_5 wire_bram/ram/WDATA_10
+B6[27],B6[28],B6[29],B6[30],!B7[30] buffer lc_trk_g3_5 wire_bram/ram/WDATA_12
+B2[27],B2[28],B2[29],B2[30],!B3[30] buffer lc_trk_g3_5 wire_bram/ram/WDATA_14
+B14[27],B14[28],B14[29],B14[30],!B15[30] buffer lc_trk_g3_5 wire_bram/ram/WDATA_8
+B2[26],B3[26],B3[27],B3[28],B3[29] buffer lc_trk_g3_6 input0_1
+B6[26],B7[26],B7[27],B7[28],B7[29] buffer lc_trk_g3_6 input0_3
+B10[26],B11[26],B11[27],B11[28],B11[29] buffer lc_trk_g3_6 input0_5
+B14[26],B15[26],B15[27],B15[28],B15[29] buffer lc_trk_g3_6 input0_7
+B10[35],B11[32],B11[33],B11[34],B11[35] buffer lc_trk_g3_6 input2_5
+B14[35],B15[32],B15[33],B15[34],B15[35] buffer lc_trk_g3_6 input2_7
+B8[31],B8[32],B8[33],B8[34],B9[31] buffer lc_trk_g3_6 wire_bram/ram/MASK_11
+B4[31],B4[32],B4[33],B4[34],B5[31] buffer lc_trk_g3_6 wire_bram/ram/MASK_13
+B0[31],B0[32],B0[33],B0[34],B1[31] buffer lc_trk_g3_6 wire_bram/ram/MASK_15
+B12[31],B12[32],B12[33],B12[34],B13[31] buffer lc_trk_g3_6 wire_bram/ram/MASK_9
+B8[27],B8[28],B8[29],B8[30],B9[30] buffer lc_trk_g3_6 wire_bram/ram/WDATA_11
+B4[27],B4[28],B4[29],B4[30],B5[30] buffer lc_trk_g3_6 wire_bram/ram/WDATA_13
+B0[27],B0[28],B0[29],B0[30],B1[30] buffer lc_trk_g3_6 wire_bram/ram/WDATA_15
+B12[27],B12[28],B12[29],B12[30],B13[30] buffer lc_trk_g3_6 wire_bram/ram/WDATA_9
+B0[26],B1[26],B1[27],B1[28],B1[29] buffer lc_trk_g3_7 input0_0
+B4[26],B5[26],B5[27],B5[28],B5[29] buffer lc_trk_g3_7 input0_2
+B8[26],B9[26],B9[27],B9[28],B9[29] buffer lc_trk_g3_7 input0_4
+B12[26],B13[26],B13[27],B13[28],B13[29] buffer lc_trk_g3_7 input0_6
+B12[35],B13[32],B13[33],B13[34],B13[35] buffer lc_trk_g3_7 input2_6
+B10[31],B10[32],B10[33],B10[34],B11[31] buffer lc_trk_g3_7 wire_bram/ram/MASK_10
+B6[31],B6[32],B6[33],B6[34],B7[31] buffer lc_trk_g3_7 wire_bram/ram/MASK_12
+B2[31],B2[32],B2[33],B2[34],B3[31] buffer lc_trk_g3_7 wire_bram/ram/MASK_14
+B14[31],B14[32],B14[33],B14[34],B15[31] buffer lc_trk_g3_7 wire_bram/ram/MASK_8
+B10[27],B10[28],B10[29],B10[30],B11[30] buffer lc_trk_g3_7 wire_bram/ram/WDATA_10
+B6[27],B6[28],B6[29],B6[30],B7[30] buffer lc_trk_g3_7 wire_bram/ram/WDATA_12
+B2[27],B2[28],B2[29],B2[30],B3[30] buffer lc_trk_g3_7 wire_bram/ram/WDATA_14
+B14[27],B14[28],B14[29],B14[30],B15[30] buffer lc_trk_g3_7 wire_bram/ram/WDATA_8
+B0[14],!B1[14],B1[15],!B1[16],B1[17] buffer lft_op_0 lc_trk_g0_0
+B4[14],!B5[14],B5[15],!B5[16],B5[17] buffer lft_op_0 lc_trk_g1_0
+B0[15],!B0[16],B0[17],B0[18],!B1[18] buffer lft_op_1 lc_trk_g0_1
+B4[15],!B4[16],B4[17],B4[18],!B5[18] buffer lft_op_1 lc_trk_g1_1
+B0[25],B1[22],!B1[23],B1[24],!B1[25] buffer lft_op_2 lc_trk_g0_2
+B4[25],B5[22],!B5[23],B5[24],!B5[25] buffer lft_op_2 lc_trk_g1_2
+B0[21],B0[22],!B0[23],B0[24],!B1[21] buffer lft_op_3 lc_trk_g0_3
+B4[21],B4[22],!B4[23],B4[24],!B5[21] buffer lft_op_3 lc_trk_g1_3
+B2[14],!B3[14],B3[15],!B3[16],B3[17] buffer lft_op_4 lc_trk_g0_4
+B6[14],!B7[14],B7[15],!B7[16],B7[17] buffer lft_op_4 lc_trk_g1_4
+B2[15],!B2[16],B2[17],B2[18],!B3[18] buffer lft_op_5 lc_trk_g0_5
+B6[15],!B6[16],B6[17],B6[18],!B7[18] buffer lft_op_5 lc_trk_g1_5
+B2[25],B3[22],!B3[23],B3[24],!B3[25] buffer lft_op_6 lc_trk_g0_6
+B6[25],B7[22],!B7[23],B7[24],!B7[25] buffer lft_op_6 lc_trk_g1_6
+B2[21],B2[22],!B2[23],B2[24],!B3[21] buffer lft_op_7 lc_trk_g0_7
+B6[21],B6[22],!B6[23],B6[24],!B7[21] buffer lft_op_7 lc_trk_g1_7
+B8[14],!B9[14],B9[15],!B9[16],B9[17] buffer rgt_op_0 lc_trk_g2_0
+B12[14],!B13[14],B13[15],!B13[16],B13[17] buffer rgt_op_0 lc_trk_g3_0
+B8[15],!B8[16],B8[17],B8[18],!B9[18] buffer rgt_op_1 lc_trk_g2_1
+B12[15],!B12[16],B12[17],B12[18],!B13[18] buffer rgt_op_1 lc_trk_g3_1
+B8[25],B9[22],!B9[23],B9[24],!B9[25] buffer rgt_op_2 lc_trk_g2_2
+B12[25],B13[22],!B13[23],B13[24],!B13[25] buffer rgt_op_2 lc_trk_g3_2
+B8[21],B8[22],!B8[23],B8[24],!B9[21] buffer rgt_op_3 lc_trk_g2_3
+B12[21],B12[22],!B12[23],B12[24],!B13[21] buffer rgt_op_3 lc_trk_g3_3
+B10[14],!B11[14],B11[15],!B11[16],B11[17] buffer rgt_op_4 lc_trk_g2_4
+B14[14],!B15[14],B15[15],!B15[16],B15[17] buffer rgt_op_4 lc_trk_g3_4
+B10[15],!B10[16],B10[17],B10[18],!B11[18] buffer rgt_op_5 lc_trk_g2_5
+B14[15],!B14[16],B14[17],B14[18],!B15[18] buffer rgt_op_5 lc_trk_g3_5
+B10[25],B11[22],!B11[23],B11[24],!B11[25] buffer rgt_op_6 lc_trk_g2_6
+B14[25],B15[22],!B15[23],B15[24],!B15[25] buffer rgt_op_6 lc_trk_g3_6
+B10[21],B10[22],!B10[23],B10[24],!B11[21] buffer rgt_op_7 lc_trk_g2_7
+B14[21],B14[22],!B14[23],B14[24],!B15[21] buffer rgt_op_7 lc_trk_g3_7
+B0[25],B1[22],!B1[23],B1[24],B1[25] buffer sp12_h_l_1 lc_trk_g0_2
+B4[25],B5[22],!B5[23],B5[24],B5[25] buffer sp12_h_l_1 lc_trk_g1_2
+B12[19] buffer sp12_h_l_1 sp4_h_r_13
+!B2[15],B2[16],B2[17],!B2[18],!B3[18] buffer sp12_h_l_10 lc_trk_g0_5
+!B6[15],B6[16],B6[17],!B6[18],!B7[18] buffer sp12_h_l_10 lc_trk_g1_5
+!B2[21],B2[22],B2[23],!B2[24],!B3[21] buffer sp12_h_l_12 lc_trk_g0_7
+!B6[21],B6[22],B6[23],!B6[24],!B7[21] buffer sp12_h_l_12 lc_trk_g1_7
+!B0[15],B0[16],B0[17],!B0[18],B1[18] buffer sp12_h_l_14 lc_trk_g0_1
+!B4[15],B4[16],B4[17],!B4[18],B5[18] buffer sp12_h_l_14 lc_trk_g1_1
+!B0[14],B1[14],!B1[15],B1[16],B1[17] buffer sp12_h_l_15 lc_trk_g0_0
+!B4[14],B5[14],!B5[15],B5[16],B5[17] buffer sp12_h_l_15 lc_trk_g1_0
+B8[2] buffer sp12_h_l_15 sp4_h_l_9
+!B0[21],B0[22],B0[23],!B0[24],B1[21] buffer sp12_h_l_16 lc_trk_g0_3
+!B4[21],B4[22],B4[23],!B4[24],B5[21] buffer sp12_h_l_16 lc_trk_g1_3
+!B0[25],B1[22],B1[23],!B1[24],B1[25] buffer sp12_h_l_17 lc_trk_g0_2
+!B4[25],B5[22],B5[23],!B5[24],B5[25] buffer sp12_h_l_17 lc_trk_g1_2
+B10[2] buffer sp12_h_l_17 sp4_h_r_21
+B2[15],!B2[16],B2[17],B2[18],B3[18] buffer sp12_h_l_2 lc_trk_g0_5
+B6[15],!B6[16],B6[17],B6[18],B7[18] buffer sp12_h_l_2 lc_trk_g1_5
+!B2[21],B2[22],B2[23],!B2[24],B3[21] buffer sp12_h_l_20 lc_trk_g0_7
+!B6[21],B6[22],B6[23],!B6[24],B7[21] buffer sp12_h_l_20 lc_trk_g1_7
+B2[14],B3[14],B3[15],!B3[16],B3[17] buffer sp12_h_l_3 lc_trk_g0_4
+B6[14],B7[14],B7[15],!B7[16],B7[17] buffer sp12_h_l_3 lc_trk_g1_4
+B15[19] buffer sp12_h_l_3 sp4_h_l_3
+B2[25],B3[22],!B3[23],B3[24],B3[25] buffer sp12_h_l_5 lc_trk_g0_6
+B6[25],B7[22],!B7[23],B7[24],B7[25] buffer sp12_h_l_5 lc_trk_g1_6
+B14[19] buffer sp12_h_l_5 sp4_h_r_15
+!B0[25],B1[22],B1[23],!B1[24],!B1[25] buffer sp12_h_l_9 lc_trk_g0_2
+!B4[25],B5[22],B5[23],!B5[24],!B5[25] buffer sp12_h_l_9 lc_trk_g1_2
+B3[1] buffer sp12_h_l_9 sp4_h_r_17
+B0[14],B1[14],B1[15],!B1[16],B1[17] buffer sp12_h_r_0 lc_trk_g0_0
+B4[14],B5[14],B5[15],!B5[16],B5[17] buffer sp12_h_r_0 lc_trk_g1_0
+B13[19] buffer sp12_h_r_0 sp4_h_l_1
+B0[15],!B0[16],B0[17],B0[18],B1[18] buffer sp12_h_r_1 lc_trk_g0_1
+B4[15],!B4[16],B4[17],B4[18],B5[18] buffer sp12_h_r_1 lc_trk_g1_1
+!B0[21],B0[22],B0[23],!B0[24],!B1[21] buffer sp12_h_r_11 lc_trk_g0_3
+!B4[21],B4[22],B4[23],!B4[24],!B5[21] buffer sp12_h_r_11 lc_trk_g1_3
+!B2[14],!B3[14],!B3[15],B3[16],B3[17] buffer sp12_h_r_12 lc_trk_g0_4
+!B6[14],!B7[14],!B7[15],B7[16],B7[17] buffer sp12_h_r_12 lc_trk_g1_4
+B4[2] buffer sp12_h_r_12 sp4_h_r_18
+!B2[25],B3[22],B3[23],!B3[24],!B3[25] buffer sp12_h_r_14 lc_trk_g0_6
+!B6[25],B7[22],B7[23],!B7[24],!B7[25] buffer sp12_h_r_14 lc_trk_g1_6
+B6[2] buffer sp12_h_r_14 sp4_h_l_6
+!B2[14],B3[14],!B3[15],B3[16],B3[17] buffer sp12_h_r_20 lc_trk_g0_4
+!B6[14],B7[14],!B7[15],B7[16],B7[17] buffer sp12_h_r_20 lc_trk_g1_4
+B12[2] buffer sp12_h_r_20 sp4_h_l_11
+!B2[15],B2[16],B2[17],!B2[18],B3[18] buffer sp12_h_r_21 lc_trk_g0_5
+!B6[15],B6[16],B6[17],!B6[18],B7[18] buffer sp12_h_r_21 lc_trk_g1_5
+!B2[25],B3[22],B3[23],!B3[24],B3[25] buffer sp12_h_r_22 lc_trk_g0_6
+!B6[25],B7[22],B7[23],!B7[24],B7[25] buffer sp12_h_r_22 lc_trk_g1_6
+B14[2] buffer sp12_h_r_22 sp4_h_r_23
+B0[21],B0[22],!B0[23],B0[24],B1[21] buffer sp12_h_r_3 lc_trk_g0_3
+B4[21],B4[22],!B4[23],B4[24],B5[21] buffer sp12_h_r_3 lc_trk_g1_3
+B2[21],B2[22],!B2[23],B2[24],B3[21] buffer sp12_h_r_7 lc_trk_g0_7
+B6[21],B6[22],!B6[23],B6[24],B7[21] buffer sp12_h_r_7 lc_trk_g1_7
+!B0[14],!B1[14],!B1[15],B1[16],B1[17] buffer sp12_h_r_8 lc_trk_g0_0
+!B4[14],!B5[14],!B5[15],B5[16],B5[17] buffer sp12_h_r_8 lc_trk_g1_0
+B0[2] buffer sp12_h_r_8 sp4_h_r_16
+!B0[15],B0[16],B0[17],!B0[18],!B1[18] buffer sp12_h_r_9 lc_trk_g0_1
+!B4[15],B4[16],B4[17],!B4[18],!B5[18] buffer sp12_h_r_9 lc_trk_g1_1
+B8[14],B9[14],B9[15],!B9[16],B9[17] buffer sp12_v_b_0 lc_trk_g2_0
+B12[14],B13[14],B13[15],!B13[16],B13[17] buffer sp12_v_b_0 lc_trk_g3_0
+B8[15],!B8[16],B8[17],B8[18],B9[18] buffer sp12_v_b_1 lc_trk_g2_1
+B12[15],!B12[16],B12[17],B12[18],B13[18] buffer sp12_v_b_1 lc_trk_g3_1
+B1[19] buffer sp12_v_b_1 sp4_v_b_12
+!B8[25],B9[22],B9[23],!B9[24],!B9[25] buffer sp12_v_b_10 lc_trk_g2_2
+!B12[25],B13[22],B13[23],!B13[24],!B13[25] buffer sp12_v_b_10 lc_trk_g3_2
+!B10[15],B10[16],B10[17],!B10[18],!B11[18] buffer sp12_v_b_13 lc_trk_g2_5
+!B14[15],B14[16],B14[17],!B14[18],!B15[18] buffer sp12_v_b_13 lc_trk_g3_5
+B7[19] buffer sp12_v_b_13 sp4_v_t_7
+!B10[25],B11[22],B11[23],!B11[24],!B11[25] buffer sp12_v_b_14 lc_trk_g2_6
+!B14[25],B15[22],B15[23],!B15[24],!B15[25] buffer sp12_v_b_14 lc_trk_g3_6
+!B8[14],B9[14],!B9[15],B9[16],B9[17] buffer sp12_v_b_16 lc_trk_g2_0
+!B12[14],B13[14],!B13[15],B13[16],B13[17] buffer sp12_v_b_16 lc_trk_g3_0
+!B8[25],B9[22],B9[23],!B9[24],B9[25] buffer sp12_v_b_18 lc_trk_g2_2
+!B12[25],B13[22],B13[23],!B13[24],B13[25] buffer sp12_v_b_18 lc_trk_g3_2
+!B8[21],B8[22],B8[23],!B8[24],B9[21] buffer sp12_v_b_19 lc_trk_g2_3
+!B12[21],B12[22],B12[23],!B12[24],B13[21] buffer sp12_v_b_19 lc_trk_g3_3
+B8[19] buffer sp12_v_b_19 sp4_v_t_8
+!B10[14],B11[14],!B11[15],B11[16],B11[17] buffer sp12_v_b_20 lc_trk_g2_4
+!B14[14],B15[14],!B15[15],B15[16],B15[17] buffer sp12_v_b_20 lc_trk_g3_4
+!B10[25],B11[22],B11[23],!B11[24],B11[25] buffer sp12_v_b_22 lc_trk_g2_6
+!B14[25],B15[22],B15[23],!B15[24],B15[25] buffer sp12_v_b_22 lc_trk_g3_6
+B8[21],B8[22],!B8[23],B8[24],B9[21] buffer sp12_v_b_3 lc_trk_g2_3
+B12[21],B12[22],!B12[23],B12[24],B13[21] buffer sp12_v_b_3 lc_trk_g3_3
+B0[19] buffer sp12_v_b_3 sp4_v_b_13
+B10[14],B11[14],B11[15],!B11[16],B11[17] buffer sp12_v_b_4 lc_trk_g2_4
+B14[14],B15[14],B15[15],!B15[16],B15[17] buffer sp12_v_b_4 lc_trk_g3_4
+B10[15],!B10[16],B10[17],B10[18],B11[18] buffer sp12_v_b_5 lc_trk_g2_5
+B14[15],!B14[16],B14[17],B14[18],B15[18] buffer sp12_v_b_5 lc_trk_g3_5
+B3[19] buffer sp12_v_b_5 sp4_v_b_14
+!B8[15],B8[16],B8[17],!B8[18],!B9[18] buffer sp12_v_b_9 lc_trk_g2_1
+!B12[15],B12[16],B12[17],!B12[18],!B13[18] buffer sp12_v_b_9 lc_trk_g3_1
+B5[19] buffer sp12_v_b_9 sp4_v_b_16
+B8[25],B9[22],!B9[23],B9[24],B9[25] buffer sp12_v_t_1 lc_trk_g2_2
+B12[25],B13[22],!B13[23],B13[24],B13[25] buffer sp12_v_t_1 lc_trk_g3_2
+!B10[14],!B11[14],!B11[15],B11[16],B11[17] buffer sp12_v_t_11 lc_trk_g2_4
+!B14[14],!B15[14],!B15[15],B15[16],B15[17] buffer sp12_v_t_11 lc_trk_g3_4
+!B10[21],B10[22],B10[23],!B10[24],!B11[21] buffer sp12_v_t_12 lc_trk_g2_7
+!B14[21],B14[22],B14[23],!B14[24],!B15[21] buffer sp12_v_t_12 lc_trk_g3_7
+B6[19] buffer sp12_v_t_12 sp4_v_t_6
+!B8[15],B8[16],B8[17],!B8[18],B9[18] buffer sp12_v_t_14 lc_trk_g2_1
+!B12[15],B12[16],B12[17],!B12[18],B13[18] buffer sp12_v_t_14 lc_trk_g3_1
+B9[19] buffer sp12_v_t_14 sp4_v_b_20
+!B10[15],B10[16],B10[17],!B10[18],B11[18] buffer sp12_v_t_18 lc_trk_g2_5
+!B14[15],B14[16],B14[17],!B14[18],B15[18] buffer sp12_v_t_18 lc_trk_g3_5
+B11[19] buffer sp12_v_t_18 sp4_v_t_11
+!B10[21],B10[22],B10[23],!B10[24],B11[21] buffer sp12_v_t_20 lc_trk_g2_7
+!B14[21],B14[22],B14[23],!B14[24],B15[21] buffer sp12_v_t_20 lc_trk_g3_7
+B10[19] buffer sp12_v_t_20 sp4_v_b_23
+B10[21],B10[22],!B10[23],B10[24],B11[21] buffer sp12_v_t_4 lc_trk_g2_7
+B14[21],B14[22],!B14[23],B14[24],B15[21] buffer sp12_v_t_4 lc_trk_g3_7
+B2[19] buffer sp12_v_t_4 sp4_v_t_2
+B10[25],B11[22],!B11[23],B11[24],B11[25] buffer sp12_v_t_5 lc_trk_g2_6
+B14[25],B15[22],!B15[23],B15[24],B15[25] buffer sp12_v_t_5 lc_trk_g3_6
+!B8[14],!B9[14],!B9[15],B9[16],B9[17] buffer sp12_v_t_7 lc_trk_g2_0
+!B12[14],!B13[14],!B13[15],B13[16],B13[17] buffer sp12_v_t_7 lc_trk_g3_0
+!B8[21],B8[22],B8[23],!B8[24],!B9[21] buffer sp12_v_t_8 lc_trk_g2_3
+!B12[21],B12[22],B12[23],!B12[24],!B13[21] buffer sp12_v_t_8 lc_trk_g3_3
+B4[19] buffer sp12_v_t_8 sp4_v_t_4
+B2[14],!B3[14],B3[15],B3[16],B3[17] buffer sp4_h_l_1 lc_trk_g0_4
+B6[14],!B7[14],B7[15],B7[16],B7[17] buffer sp4_h_l_1 lc_trk_g1_4
+B2[25],B3[22],B3[23],B3[24],B3[25] buffer sp4_h_l_11 lc_trk_g0_6
+B6[25],B7[22],B7[23],B7[24],B7[25] buffer sp4_h_l_11 lc_trk_g1_6
+!B8[21],B8[22],B8[23],B8[24],B9[21] buffer sp4_h_l_14 lc_trk_g2_3
+!B12[21],B12[22],B12[23],B12[24],B13[21] buffer sp4_h_l_14 lc_trk_g3_3
+!B8[25],B9[22],B9[23],B9[24],B9[25] buffer sp4_h_l_15 lc_trk_g2_2
+!B12[25],B13[22],B13[23],B13[24],B13[25] buffer sp4_h_l_15 lc_trk_g3_2
+!B10[25],B11[22],B11[23],B11[24],B11[25] buffer sp4_h_l_19 lc_trk_g2_6
+!B14[25],B15[22],B15[23],B15[24],B15[25] buffer sp4_h_l_19 lc_trk_g3_6
+B8[21],B8[22],B8[23],B8[24],!B9[21] buffer sp4_h_l_22 lc_trk_g2_3
+B12[21],B12[22],B12[23],B12[24],!B13[21] buffer sp4_h_l_22 lc_trk_g3_3
+B10[21],B10[22],B10[23],B10[24],!B11[21] buffer sp4_h_l_26 lc_trk_g2_7
+B14[21],B14[22],B14[23],B14[24],!B15[21] buffer sp4_h_l_26 lc_trk_g3_7
+B10[25],B11[22],B11[23],B11[24],!B11[25] buffer sp4_h_l_27 lc_trk_g2_6
+B14[25],B15[22],B15[23],B15[24],!B15[25] buffer sp4_h_l_27 lc_trk_g3_6
+B8[15],B8[16],B8[17],B8[18],B9[18] buffer sp4_h_l_28 lc_trk_g2_1
+B12[15],B12[16],B12[17],B12[18],B13[18] buffer sp4_h_l_28 lc_trk_g3_1
+B2[25],B3[22],B3[23],B3[24],!B3[25] buffer sp4_h_l_3 lc_trk_g0_6
+B6[25],B7[22],B7[23],B7[24],!B7[25] buffer sp4_h_l_3 lc_trk_g1_6
+B0[21],B0[22],B0[23],B0[24],B1[21] buffer sp4_h_l_6 lc_trk_g0_3
+B4[21],B4[22],B4[23],B4[24],B5[21] buffer sp4_h_l_6 lc_trk_g1_3
+B2[14],B3[14],B3[15],B3[16],B3[17] buffer sp4_h_l_9 lc_trk_g0_4
+B6[14],B7[14],B7[15],B7[16],B7[17] buffer sp4_h_l_9 lc_trk_g1_4
+!B0[14],B1[14],B1[15],B1[16],B1[17] buffer sp4_h_r_0 lc_trk_g0_0
+!B4[14],B5[14],B5[15],B5[16],B5[17] buffer sp4_h_r_0 lc_trk_g1_0
+B0[15],B0[16],B0[17],!B0[18],B1[18] buffer sp4_h_r_1 lc_trk_g0_1
+B4[15],B4[16],B4[17],!B4[18],B5[18] buffer sp4_h_r_1 lc_trk_g1_1
+B0[25],B1[22],B1[23],B1[24],!B1[25] buffer sp4_h_r_10 lc_trk_g0_2
+B4[25],B5[22],B5[23],B5[24],!B5[25] buffer sp4_h_r_10 lc_trk_g1_2
+B0[21],B0[22],B0[23],B0[24],!B1[21] buffer sp4_h_r_11 lc_trk_g0_3
+B4[21],B4[22],B4[23],B4[24],!B5[21] buffer sp4_h_r_11 lc_trk_g1_3
+B2[15],B2[16],B2[17],B2[18],!B3[18] buffer sp4_h_r_13 lc_trk_g0_5
+B6[15],B6[16],B6[17],B6[18],!B7[18] buffer sp4_h_r_13 lc_trk_g1_5
+B2[21],B2[22],B2[23],B2[24],!B3[21] buffer sp4_h_r_15 lc_trk_g0_7
+B6[21],B6[22],B6[23],B6[24],!B7[21] buffer sp4_h_r_15 lc_trk_g1_7
+B0[14],B1[14],B1[15],B1[16],B1[17] buffer sp4_h_r_16 lc_trk_g0_0
+B4[14],B5[14],B5[15],B5[16],B5[17] buffer sp4_h_r_16 lc_trk_g1_0
+B0[15],B0[16],B0[17],B0[18],B1[18] buffer sp4_h_r_17 lc_trk_g0_1
+B4[15],B4[16],B4[17],B4[18],B5[18] buffer sp4_h_r_17 lc_trk_g1_1
+B0[25],B1[22],B1[23],B1[24],B1[25] buffer sp4_h_r_18 lc_trk_g0_2
+B4[25],B5[22],B5[23],B5[24],B5[25] buffer sp4_h_r_18 lc_trk_g1_2
+!B0[25],B1[22],B1[23],B1[24],B1[25] buffer sp4_h_r_2 lc_trk_g0_2
+!B4[25],B5[22],B5[23],B5[24],B5[25] buffer sp4_h_r_2 lc_trk_g1_2
+B2[15],B2[16],B2[17],B2[18],B3[18] buffer sp4_h_r_21 lc_trk_g0_5
+B6[15],B6[16],B6[17],B6[18],B7[18] buffer sp4_h_r_21 lc_trk_g1_5
+B2[21],B2[22],B2[23],B2[24],B3[21] buffer sp4_h_r_23 lc_trk_g0_7
+B6[21],B6[22],B6[23],B6[24],B7[21] buffer sp4_h_r_23 lc_trk_g1_7
+!B8[14],B9[14],B9[15],B9[16],B9[17] buffer sp4_h_r_24 lc_trk_g2_0
+!B12[14],B13[14],B13[15],B13[16],B13[17] buffer sp4_h_r_24 lc_trk_g3_0
+B8[15],B8[16],B8[17],!B8[18],B9[18] buffer sp4_h_r_25 lc_trk_g2_1
+B12[15],B12[16],B12[17],!B12[18],B13[18] buffer sp4_h_r_25 lc_trk_g3_1
+!B10[14],B11[14],B11[15],B11[16],B11[17] buffer sp4_h_r_28 lc_trk_g2_4
+!B14[14],B15[14],B15[15],B15[16],B15[17] buffer sp4_h_r_28 lc_trk_g3_4
+B10[15],B10[16],B10[17],!B10[18],B11[18] buffer sp4_h_r_29 lc_trk_g2_5
+B14[15],B14[16],B14[17],!B14[18],B15[18] buffer sp4_h_r_29 lc_trk_g3_5
+!B0[21],B0[22],B0[23],B0[24],B1[21] buffer sp4_h_r_3 lc_trk_g0_3
+!B4[21],B4[22],B4[23],B4[24],B5[21] buffer sp4_h_r_3 lc_trk_g1_3
+!B10[21],B10[22],B10[23],B10[24],B11[21] buffer sp4_h_r_31 lc_trk_g2_7
+!B14[21],B14[22],B14[23],B14[24],B15[21] buffer sp4_h_r_31 lc_trk_g3_7
+B8[14],!B9[14],B9[15],B9[16],B9[17] buffer sp4_h_r_32 lc_trk_g2_0
+B12[14],!B13[14],B13[15],B13[16],B13[17] buffer sp4_h_r_32 lc_trk_g3_0
+B8[15],B8[16],B8[17],B8[18],!B9[18] buffer sp4_h_r_33 lc_trk_g2_1
+B12[15],B12[16],B12[17],B12[18],!B13[18] buffer sp4_h_r_33 lc_trk_g3_1
+B8[25],B9[22],B9[23],B9[24],!B9[25] buffer sp4_h_r_34 lc_trk_g2_2
+B12[25],B13[22],B13[23],B13[24],!B13[25] buffer sp4_h_r_34 lc_trk_g3_2
+B10[14],!B11[14],B11[15],B11[16],B11[17] buffer sp4_h_r_36 lc_trk_g2_4
+B14[14],!B15[14],B15[15],B15[16],B15[17] buffer sp4_h_r_36 lc_trk_g3_4
+B10[15],B10[16],B10[17],B10[18],!B11[18] buffer sp4_h_r_37 lc_trk_g2_5
+B14[15],B14[16],B14[17],B14[18],!B15[18] buffer sp4_h_r_37 lc_trk_g3_5
+!B2[14],B3[14],B3[15],B3[16],B3[17] buffer sp4_h_r_4 lc_trk_g0_4
+!B6[14],B7[14],B7[15],B7[16],B7[17] buffer sp4_h_r_4 lc_trk_g1_4
+B8[14],B9[14],B9[15],B9[16],B9[17] buffer sp4_h_r_40 lc_trk_g2_0
+B12[14],B13[14],B13[15],B13[16],B13[17] buffer sp4_h_r_40 lc_trk_g3_0
+B8[25],B9[22],B9[23],B9[24],B9[25] buffer sp4_h_r_42 lc_trk_g2_2
+B12[25],B13[22],B13[23],B13[24],B13[25] buffer sp4_h_r_42 lc_trk_g3_2
+B8[21],B8[22],B8[23],B8[24],B9[21] buffer sp4_h_r_43 lc_trk_g2_3
+B12[21],B12[22],B12[23],B12[24],B13[21] buffer sp4_h_r_43 lc_trk_g3_3
+B10[14],B11[14],B11[15],B11[16],B11[17] buffer sp4_h_r_44 lc_trk_g2_4
+B14[14],B15[14],B15[15],B15[16],B15[17] buffer sp4_h_r_44 lc_trk_g3_4
+B10[15],B10[16],B10[17],B10[18],B11[18] buffer sp4_h_r_45 lc_trk_g2_5
+B14[15],B14[16],B14[17],B14[18],B15[18] buffer sp4_h_r_45 lc_trk_g3_5
+B10[25],B11[22],B11[23],B11[24],B11[25] buffer sp4_h_r_46 lc_trk_g2_6
+B14[25],B15[22],B15[23],B15[24],B15[25] buffer sp4_h_r_46 lc_trk_g3_6
+B10[21],B10[22],B10[23],B10[24],B11[21] buffer sp4_h_r_47 lc_trk_g2_7
+B14[21],B14[22],B14[23],B14[24],B15[21] buffer sp4_h_r_47 lc_trk_g3_7
+B2[15],B2[16],B2[17],!B2[18],B3[18] buffer sp4_h_r_5 lc_trk_g0_5
+B6[15],B6[16],B6[17],!B6[18],B7[18] buffer sp4_h_r_5 lc_trk_g1_5
+!B2[25],B3[22],B3[23],B3[24],B3[25] buffer sp4_h_r_6 lc_trk_g0_6
+!B6[25],B7[22],B7[23],B7[24],B7[25] buffer sp4_h_r_6 lc_trk_g1_6
+!B2[21],B2[22],B2[23],B2[24],B3[21] buffer sp4_h_r_7 lc_trk_g0_7
+!B6[21],B6[22],B6[23],B6[24],B7[21] buffer sp4_h_r_7 lc_trk_g1_7
+B0[14],!B1[14],B1[15],B1[16],B1[17] buffer sp4_h_r_8 lc_trk_g0_0
+B4[14],!B5[14],B5[15],B5[16],B5[17] buffer sp4_h_r_8 lc_trk_g1_0
+B0[15],B0[16],B0[17],B0[18],!B1[18] buffer sp4_h_r_9 lc_trk_g0_1
+B4[15],B4[16],B4[17],B4[18],!B5[18] buffer sp4_h_r_9 lc_trk_g1_1
+!B4[14],!B5[14],!B5[15],!B5[16],B5[17] buffer sp4_r_v_b_0 lc_trk_g1_0
+!B4[15],!B4[16],B4[17],!B4[18],!B5[18] buffer sp4_r_v_b_1 lc_trk_g1_1
+!B8[25],B9[22],!B9[23],!B9[24],!B9[25] buffer sp4_r_v_b_10 lc_trk_g2_2
+!B8[21],B8[22],!B8[23],!B8[24],!B9[21] buffer sp4_r_v_b_11 lc_trk_g2_3
+!B10[14],!B11[14],!B11[15],!B11[16],B11[17] buffer sp4_r_v_b_12 lc_trk_g2_4
+!B10[15],!B10[16],B10[17],!B10[18],!B11[18] buffer sp4_r_v_b_13 lc_trk_g2_5
+!B10[25],B11[22],!B11[23],!B11[24],!B11[25] buffer sp4_r_v_b_14 lc_trk_g2_6
+!B10[21],B10[22],!B10[23],!B10[24],!B11[21] buffer sp4_r_v_b_15 lc_trk_g2_7
+!B12[14],!B13[14],!B13[15],!B13[16],B13[17] buffer sp4_r_v_b_16 lc_trk_g3_0
+!B12[15],!B12[16],B12[17],!B12[18],!B13[18] buffer sp4_r_v_b_17 lc_trk_g3_1
+!B12[25],B13[22],!B13[23],!B13[24],!B13[25] buffer sp4_r_v_b_18 lc_trk_g3_2
+!B12[21],B12[22],!B12[23],!B12[24],!B13[21] buffer sp4_r_v_b_19 lc_trk_g3_3
+!B4[25],B5[22],!B5[23],!B5[24],!B5[25] buffer sp4_r_v_b_2 lc_trk_g1_2
+!B14[14],!B15[14],!B15[15],!B15[16],B15[17] buffer sp4_r_v_b_20 lc_trk_g3_4
+!B14[15],!B14[16],B14[17],!B14[18],!B15[18] buffer sp4_r_v_b_21 lc_trk_g3_5
+!B14[25],B15[22],!B15[23],!B15[24],!B15[25] buffer sp4_r_v_b_22 lc_trk_g3_6
+!B14[21],B14[22],!B14[23],!B14[24],!B15[21] buffer sp4_r_v_b_23 lc_trk_g3_7
+!B0[14],!B1[14],!B1[15],!B1[16],B1[17] buffer sp4_r_v_b_24 lc_trk_g0_0
+!B4[14],B5[14],!B5[15],!B5[16],B5[17] buffer sp4_r_v_b_24 lc_trk_g1_0
+!B0[15],!B0[16],B0[17],!B0[18],!B1[18] buffer sp4_r_v_b_25 lc_trk_g0_1
+!B4[15],!B4[16],B4[17],!B4[18],B5[18] buffer sp4_r_v_b_25 lc_trk_g1_1
+!B0[25],B1[22],!B1[23],!B1[24],!B1[25] buffer sp4_r_v_b_26 lc_trk_g0_2
+!B4[25],B5[22],!B5[23],!B5[24],B5[25] buffer sp4_r_v_b_26 lc_trk_g1_2
+!B0[21],B0[22],!B0[23],!B0[24],!B1[21] buffer sp4_r_v_b_27 lc_trk_g0_3
+!B4[21],B4[22],!B4[23],!B4[24],B5[21] buffer sp4_r_v_b_27 lc_trk_g1_3
+!B2[14],B3[14],!B3[15],!B3[16],B3[17] buffer sp4_r_v_b_28 lc_trk_g0_4
+!B6[14],B7[14],!B7[15],!B7[16],B7[17] buffer sp4_r_v_b_28 lc_trk_g1_4
+!B2[15],!B2[16],B2[17],!B2[18],B3[18] buffer sp4_r_v_b_29 lc_trk_g0_5
+!B6[15],!B6[16],B6[17],!B6[18],B7[18] buffer sp4_r_v_b_29 lc_trk_g1_5
+!B4[21],B4[22],!B4[23],!B4[24],!B5[21] buffer sp4_r_v_b_3 lc_trk_g1_3
+!B2[25],B3[22],!B3[23],!B3[24],B3[25] buffer sp4_r_v_b_30 lc_trk_g0_6
+!B6[25],B7[22],!B7[23],!B7[24],B7[25] buffer sp4_r_v_b_30 lc_trk_g1_6
+!B2[21],B2[22],!B2[23],!B2[24],B3[21] buffer sp4_r_v_b_31 lc_trk_g0_7
+!B6[21],B6[22],!B6[23],!B6[24],B7[21] buffer sp4_r_v_b_31 lc_trk_g1_7
+!B0[21],B0[22],!B0[23],!B0[24],B1[21] buffer sp4_r_v_b_32 lc_trk_g0_3
+!B8[14],B9[14],!B9[15],!B9[16],B9[17] buffer sp4_r_v_b_32 lc_trk_g2_0
+!B0[25],B1[22],!B1[23],!B1[24],B1[25] buffer sp4_r_v_b_33 lc_trk_g0_2
+!B8[15],!B8[16],B8[17],!B8[18],B9[18] buffer sp4_r_v_b_33 lc_trk_g2_1
+!B0[15],!B0[16],B0[17],!B0[18],B1[18] buffer sp4_r_v_b_34 lc_trk_g0_1
+!B8[25],B9[22],!B9[23],!B9[24],B9[25] buffer sp4_r_v_b_34 lc_trk_g2_2
+!B0[14],B1[14],!B1[15],!B1[16],B1[17] buffer sp4_r_v_b_35 lc_trk_g0_0
+!B8[21],B8[22],!B8[23],!B8[24],B9[21] buffer sp4_r_v_b_35 lc_trk_g2_3
+!B10[14],B11[14],!B11[15],!B11[16],B11[17] buffer sp4_r_v_b_36 lc_trk_g2_4
+!B10[15],!B10[16],B10[17],!B10[18],B11[18] buffer sp4_r_v_b_37 lc_trk_g2_5
+!B10[25],B11[22],!B11[23],!B11[24],B11[25] buffer sp4_r_v_b_38 lc_trk_g2_6
+!B10[21],B10[22],!B10[23],!B10[24],B11[21] buffer sp4_r_v_b_39 lc_trk_g2_7
+!B6[14],!B7[14],!B7[15],!B7[16],B7[17] buffer sp4_r_v_b_4 lc_trk_g1_4
+!B12[14],B13[14],!B13[15],!B13[16],B13[17] buffer sp4_r_v_b_40 lc_trk_g3_0
+!B12[15],!B12[16],B12[17],!B12[18],B13[18] buffer sp4_r_v_b_41 lc_trk_g3_1
+!B12[25],B13[22],!B13[23],!B13[24],B13[25] buffer sp4_r_v_b_42 lc_trk_g3_2
+!B12[21],B12[22],!B12[23],!B12[24],B13[21] buffer sp4_r_v_b_43 lc_trk_g3_3
+!B14[14],B15[14],!B15[15],!B15[16],B15[17] buffer sp4_r_v_b_44 lc_trk_g3_4
+!B14[15],!B14[16],B14[17],!B14[18],B15[18] buffer sp4_r_v_b_45 lc_trk_g3_5
+!B14[25],B15[22],!B15[23],!B15[24],B15[25] buffer sp4_r_v_b_46 lc_trk_g3_6
+!B14[21],B14[22],!B14[23],!B14[24],B15[21] buffer sp4_r_v_b_47 lc_trk_g3_7
+!B6[15],!B6[16],B6[17],!B6[18],!B7[18] buffer sp4_r_v_b_5 lc_trk_g1_5
+!B6[25],B7[22],!B7[23],!B7[24],!B7[25] buffer sp4_r_v_b_6 lc_trk_g1_6
+!B6[21],B6[22],!B6[23],!B6[24],!B7[21] buffer sp4_r_v_b_7 lc_trk_g1_7
+!B8[14],!B9[14],!B9[15],!B9[16],B9[17] buffer sp4_r_v_b_8 lc_trk_g2_0
+!B8[15],!B8[16],B8[17],!B8[18],!B9[18] buffer sp4_r_v_b_9 lc_trk_g2_1
+B0[14],!B1[14],!B1[15],B1[16],B1[17] buffer sp4_v_b_0 lc_trk_g0_0
+B4[14],!B5[14],!B5[15],B5[16],B5[17] buffer sp4_v_b_0 lc_trk_g1_0
+!B0[15],B0[16],B0[17],B0[18],!B1[18] buffer sp4_v_b_1 lc_trk_g0_1
+!B4[15],B4[16],B4[17],B4[18],!B5[18] buffer sp4_v_b_1 lc_trk_g1_1
+B0[25],B1[22],B1[23],!B1[24],B1[25] buffer sp4_v_b_10 lc_trk_g0_2
+B4[25],B5[22],B5[23],!B5[24],B5[25] buffer sp4_v_b_10 lc_trk_g1_2
+B0[21],B0[22],B0[23],!B0[24],B1[21] buffer sp4_v_b_11 lc_trk_g0_3
+B4[21],B4[22],B4[23],!B4[24],B5[21] buffer sp4_v_b_11 lc_trk_g1_3
+B2[14],B3[14],!B3[15],B3[16],B3[17] buffer sp4_v_b_12 lc_trk_g0_4
+B6[14],B7[14],!B7[15],B7[16],B7[17] buffer sp4_v_b_12 lc_trk_g1_4
+!B2[15],B2[16],B2[17],B2[18],B3[18] buffer sp4_v_b_13 lc_trk_g0_5
+!B6[15],B6[16],B6[17],B6[18],B7[18] buffer sp4_v_b_13 lc_trk_g1_5
+B2[25],B3[22],B3[23],!B3[24],B3[25] buffer sp4_v_b_14 lc_trk_g0_6
+B6[25],B7[22],B7[23],!B7[24],B7[25] buffer sp4_v_b_14 lc_trk_g1_6
+!B0[14],!B1[14],B1[15],B1[16],B1[17] buffer sp4_v_b_16 lc_trk_g0_0
+!B4[14],!B5[14],B5[15],B5[16],B5[17] buffer sp4_v_b_16 lc_trk_g1_0
+B0[25],B1[22],B1[23],!B1[24],!B1[25] buffer sp4_v_b_2 lc_trk_g0_2
+B4[25],B5[22],B5[23],!B5[24],!B5[25] buffer sp4_v_b_2 lc_trk_g1_2
+!B2[14],!B3[14],B3[15],B3[16],B3[17] buffer sp4_v_b_20 lc_trk_g0_4
+!B6[14],!B7[14],B7[15],B7[16],B7[17] buffer sp4_v_b_20 lc_trk_g1_4
+!B2[21],B2[22],B2[23],B2[24],!B3[21] buffer sp4_v_b_23 lc_trk_g0_7
+!B6[21],B6[22],B6[23],B6[24],!B7[21] buffer sp4_v_b_23 lc_trk_g1_7
+!B8[15],B8[16],B8[17],B8[18],!B9[18] buffer sp4_v_b_25 lc_trk_g2_1
+!B12[15],B12[16],B12[17],B12[18],!B13[18] buffer sp4_v_b_25 lc_trk_g3_1
+B8[21],B8[22],B8[23],!B8[24],!B9[21] buffer sp4_v_b_27 lc_trk_g2_3
+B12[21],B12[22],B12[23],!B12[24],!B13[21] buffer sp4_v_b_27 lc_trk_g3_3
+B10[14],!B11[14],!B11[15],B11[16],B11[17] buffer sp4_v_b_28 lc_trk_g2_4
+B14[14],!B15[14],!B15[15],B15[16],B15[17] buffer sp4_v_b_28 lc_trk_g3_4
+!B10[15],B10[16],B10[17],B10[18],!B11[18] buffer sp4_v_b_29 lc_trk_g2_5
+!B14[15],B14[16],B14[17],B14[18],!B15[18] buffer sp4_v_b_29 lc_trk_g3_5
+B0[21],B0[22],B0[23],!B0[24],!B1[21] buffer sp4_v_b_3 lc_trk_g0_3
+B4[21],B4[22],B4[23],!B4[24],!B5[21] buffer sp4_v_b_3 lc_trk_g1_3
+B10[21],B10[22],B10[23],!B10[24],!B11[21] buffer sp4_v_b_31 lc_trk_g2_7
+B14[21],B14[22],B14[23],!B14[24],!B15[21] buffer sp4_v_b_31 lc_trk_g3_7
+B8[14],B9[14],!B9[15],B9[16],B9[17] buffer sp4_v_b_32 lc_trk_g2_0
+B12[14],B13[14],!B13[15],B13[16],B13[17] buffer sp4_v_b_32 lc_trk_g3_0
+B8[25],B9[22],B9[23],!B9[24],B9[25] buffer sp4_v_b_34 lc_trk_g2_2
+B12[25],B13[22],B13[23],!B13[24],B13[25] buffer sp4_v_b_34 lc_trk_g3_2
+B8[21],B8[22],B8[23],!B8[24],B9[21] buffer sp4_v_b_35 lc_trk_g2_3
+B12[21],B12[22],B12[23],!B12[24],B13[21] buffer sp4_v_b_35 lc_trk_g3_3
+B2[14],!B3[14],!B3[15],B3[16],B3[17] buffer sp4_v_b_4 lc_trk_g0_4
+B6[14],!B7[14],!B7[15],B7[16],B7[17] buffer sp4_v_b_4 lc_trk_g1_4
+!B8[14],!B9[14],B9[15],B9[16],B9[17] buffer sp4_v_b_40 lc_trk_g2_0
+!B12[14],!B13[14],B13[15],B13[16],B13[17] buffer sp4_v_b_40 lc_trk_g3_0
+B8[15],B8[16],B8[17],!B8[18],!B9[18] buffer sp4_v_b_41 lc_trk_g2_1
+B12[15],B12[16],B12[17],!B12[18],!B13[18] buffer sp4_v_b_41 lc_trk_g3_1
+!B8[21],B8[22],B8[23],B8[24],!B9[21] buffer sp4_v_b_43 lc_trk_g2_3
+!B12[21],B12[22],B12[23],B12[24],!B13[21] buffer sp4_v_b_43 lc_trk_g3_3
+!B10[14],!B11[14],B11[15],B11[16],B11[17] buffer sp4_v_b_44 lc_trk_g2_4
+!B14[14],!B15[14],B15[15],B15[16],B15[17] buffer sp4_v_b_44 lc_trk_g3_4
+B10[15],B10[16],B10[17],!B10[18],!B11[18] buffer sp4_v_b_45 lc_trk_g2_5
+B14[15],B14[16],B14[17],!B14[18],!B15[18] buffer sp4_v_b_45 lc_trk_g3_5
+!B10[25],B11[22],B11[23],B11[24],!B11[25] buffer sp4_v_b_46 lc_trk_g2_6
+!B14[25],B15[22],B15[23],B15[24],!B15[25] buffer sp4_v_b_46 lc_trk_g3_6
+!B2[15],B2[16],B2[17],B2[18],!B3[18] buffer sp4_v_b_5 lc_trk_g0_5
+!B6[15],B6[16],B6[17],B6[18],!B7[18] buffer sp4_v_b_5 lc_trk_g1_5
+B2[25],B3[22],B3[23],!B3[24],!B3[25] buffer sp4_v_b_6 lc_trk_g0_6
+B6[25],B7[22],B7[23],!B7[24],!B7[25] buffer sp4_v_b_6 lc_trk_g1_6
+B2[21],B2[22],B2[23],!B2[24],!B3[21] buffer sp4_v_b_7 lc_trk_g0_7
+B6[21],B6[22],B6[23],!B6[24],!B7[21] buffer sp4_v_b_7 lc_trk_g1_7
+B0[14],B1[14],!B1[15],B1[16],B1[17] buffer sp4_v_b_8 lc_trk_g0_0
+B4[14],B5[14],!B5[15],B5[16],B5[17] buffer sp4_v_b_8 lc_trk_g1_0
+!B0[15],B0[16],B0[17],B0[18],B1[18] buffer sp4_v_b_9 lc_trk_g0_1
+!B4[15],B4[16],B4[17],B4[18],B5[18] buffer sp4_v_b_9 lc_trk_g1_1
+!B2[25],B3[22],B3[23],B3[24],!B3[25] buffer sp4_v_t_11 lc_trk_g0_6
+!B6[25],B7[22],B7[23],B7[24],!B7[25] buffer sp4_v_t_11 lc_trk_g1_6
+B8[14],!B9[14],!B9[15],B9[16],B9[17] buffer sp4_v_t_13 lc_trk_g2_0
+B12[14],!B13[14],!B13[15],B13[16],B13[17] buffer sp4_v_t_13 lc_trk_g3_0
+B8[25],B9[22],B9[23],!B9[24],!B9[25] buffer sp4_v_t_15 lc_trk_g2_2
+B12[25],B13[22],B13[23],!B13[24],!B13[25] buffer sp4_v_t_15 lc_trk_g3_2
+B10[25],B11[22],B11[23],!B11[24],!B11[25] buffer sp4_v_t_19 lc_trk_g2_6
+B14[25],B15[22],B15[23],!B15[24],!B15[25] buffer sp4_v_t_19 lc_trk_g3_6
+B2[21],B2[22],B2[23],!B2[24],B3[21] buffer sp4_v_t_2 lc_trk_g0_7
+B6[21],B6[22],B6[23],!B6[24],B7[21] buffer sp4_v_t_2 lc_trk_g1_7
+!B8[15],B8[16],B8[17],B8[18],B9[18] buffer sp4_v_t_20 lc_trk_g2_1
+!B12[15],B12[16],B12[17],B12[18],B13[18] buffer sp4_v_t_20 lc_trk_g3_1
+!B10[15],B10[16],B10[17],B10[18],B11[18] buffer sp4_v_t_24 lc_trk_g2_5
+!B14[15],B14[16],B14[17],B14[18],B15[18] buffer sp4_v_t_24 lc_trk_g3_5
+B10[14],B11[14],!B11[15],B11[16],B11[17] buffer sp4_v_t_25 lc_trk_g2_4
+B14[14],B15[14],!B15[15],B15[16],B15[17] buffer sp4_v_t_25 lc_trk_g3_4
+B10[21],B10[22],B10[23],!B10[24],B11[21] buffer sp4_v_t_26 lc_trk_g2_7
+B14[21],B14[22],B14[23],!B14[24],B15[21] buffer sp4_v_t_26 lc_trk_g3_7
+B10[25],B11[22],B11[23],!B11[24],B11[25] buffer sp4_v_t_27 lc_trk_g2_6
+B14[25],B15[22],B15[23],!B15[24],B15[25] buffer sp4_v_t_27 lc_trk_g3_6
+!B8[25],B9[22],B9[23],B9[24],!B9[25] buffer sp4_v_t_31 lc_trk_g2_2
+!B12[25],B13[22],B13[23],B13[24],!B13[25] buffer sp4_v_t_31 lc_trk_g3_2
+!B10[21],B10[22],B10[23],B10[24],!B11[21] buffer sp4_v_t_34 lc_trk_g2_7
+!B14[21],B14[22],B14[23],B14[24],!B15[21] buffer sp4_v_t_34 lc_trk_g3_7
+B0[15],B0[16],B0[17],!B0[18],!B1[18] buffer sp4_v_t_4 lc_trk_g0_1
+B4[15],B4[16],B4[17],!B4[18],!B5[18] buffer sp4_v_t_4 lc_trk_g1_1
+!B0[21],B0[22],B0[23],B0[24],!B1[21] buffer sp4_v_t_6 lc_trk_g0_3
+!B4[21],B4[22],B4[23],B4[24],!B5[21] buffer sp4_v_t_6 lc_trk_g1_3
+!B0[25],B1[22],B1[23],B1[24],!B1[25] buffer sp4_v_t_7 lc_trk_g0_2
+!B4[25],B5[22],B5[23],B5[24],!B5[25] buffer sp4_v_t_7 lc_trk_g1_2
+B2[15],B2[16],B2[17],!B2[18],!B3[18] buffer sp4_v_t_8 lc_trk_g0_5
+B6[15],B6[16],B6[17],!B6[18],!B7[18] buffer sp4_v_t_8 lc_trk_g1_5
+!B8[14],B9[14],B9[15],!B9[16],B9[17] buffer tnl_op_0 lc_trk_g2_0
+!B12[14],B13[14],B13[15],!B13[16],B13[17] buffer tnl_op_0 lc_trk_g3_0
+B8[15],!B8[16],B8[17],!B8[18],B9[18] buffer tnl_op_1 lc_trk_g2_1
+B12[15],!B12[16],B12[17],!B12[18],B13[18] buffer tnl_op_1 lc_trk_g3_1
+!B8[25],B9[22],!B9[23],B9[24],B9[25] buffer tnl_op_2 lc_trk_g2_2
+!B12[25],B13[22],!B13[23],B13[24],B13[25] buffer tnl_op_2 lc_trk_g3_2
+!B8[21],B8[22],!B8[23],B8[24],B9[21] buffer tnl_op_3 lc_trk_g2_3
+!B12[21],B12[22],!B12[23],B12[24],B13[21] buffer tnl_op_3 lc_trk_g3_3
+!B10[14],B11[14],B11[15],!B11[16],B11[17] buffer tnl_op_4 lc_trk_g2_4
+!B14[14],B15[14],B15[15],!B15[16],B15[17] buffer tnl_op_4 lc_trk_g3_4
+B10[15],!B10[16],B10[17],!B10[18],B11[18] buffer tnl_op_5 lc_trk_g2_5
+B14[15],!B14[16],B14[17],!B14[18],B15[18] buffer tnl_op_5 lc_trk_g3_5
+!B10[25],B11[22],!B11[23],B11[24],B11[25] buffer tnl_op_6 lc_trk_g2_6
+!B14[25],B15[22],!B15[23],B15[24],B15[25] buffer tnl_op_6 lc_trk_g3_6
+!B10[21],B10[22],!B10[23],B10[24],B11[21] buffer tnl_op_7 lc_trk_g2_7
+!B14[21],B14[22],!B14[23],B14[24],B15[21] buffer tnl_op_7 lc_trk_g3_7
+!B8[14],!B9[14],B9[15],!B9[16],B9[17] buffer tnr_op_0 lc_trk_g2_0
+!B12[14],!B13[14],B13[15],!B13[16],B13[17] buffer tnr_op_0 lc_trk_g3_0
+B8[15],!B8[16],B8[17],!B8[18],!B9[18] buffer tnr_op_1 lc_trk_g2_1
+B12[15],!B12[16],B12[17],!B12[18],!B13[18] buffer tnr_op_1 lc_trk_g3_1
+!B8[25],B9[22],!B9[23],B9[24],!B9[25] buffer tnr_op_2 lc_trk_g2_2
+!B12[25],B13[22],!B13[23],B13[24],!B13[25] buffer tnr_op_2 lc_trk_g3_2
+!B8[21],B8[22],!B8[23],B8[24],!B9[21] buffer tnr_op_3 lc_trk_g2_3
+!B12[21],B12[22],!B12[23],B12[24],!B13[21] buffer tnr_op_3 lc_trk_g3_3
+!B10[14],!B11[14],B11[15],!B11[16],B11[17] buffer tnr_op_4 lc_trk_g2_4
+!B14[14],!B15[14],B15[15],!B15[16],B15[17] buffer tnr_op_4 lc_trk_g3_4
+B10[15],!B10[16],B10[17],!B10[18],!B11[18] buffer tnr_op_5 lc_trk_g2_5
+B14[15],!B14[16],B14[17],!B14[18],!B15[18] buffer tnr_op_5 lc_trk_g3_5
+!B10[25],B11[22],!B11[23],B11[24],!B11[25] buffer tnr_op_6 lc_trk_g2_6
+!B14[25],B15[22],!B15[23],B15[24],!B15[25] buffer tnr_op_6 lc_trk_g3_6
+!B10[21],B10[22],!B10[23],B10[24],!B11[21] buffer tnr_op_7 lc_trk_g2_7
+!B14[21],B14[22],!B14[23],B14[24],!B15[21] buffer tnr_op_7 lc_trk_g3_7
+B10[37] buffer wire_bram/ram/RDATA_10 sp12_h_l_1
+B11[38] buffer wire_bram/ram/RDATA_10 sp12_h_l_17
+B11[40] buffer wire_bram/ram/RDATA_10 sp12_v_b_10
+B11[37] buffer wire_bram/ram/RDATA_10 sp4_h_l_15
+B11[36] buffer wire_bram/ram/RDATA_10 sp4_h_r_10
+B10[36] buffer wire_bram/ram/RDATA_10 sp4_h_r_42
+B11[41] buffer wire_bram/ram/RDATA_10 sp4_r_v_b_11
+B10[40] buffer wire_bram/ram/RDATA_10 sp4_r_v_b_27
+B10[41] buffer wire_bram/ram/RDATA_10 sp4_r_v_b_43
+B11[39] buffer wire_bram/ram/RDATA_10 sp4_v_b_10
+B10[38] buffer wire_bram/ram/RDATA_10 sp4_v_t_15
+B10[39] buffer wire_bram/ram/RDATA_10 sp4_v_t_31
+B9[38] buffer wire_bram/ram/RDATA_11 sp12_h_l_15
+B8[37] buffer wire_bram/ram/RDATA_11 sp12_h_r_0
+B9[40] buffer wire_bram/ram/RDATA_11 sp12_v_t_7
+B9[37] buffer wire_bram/ram/RDATA_11 sp4_h_r_24
+B8[36] buffer wire_bram/ram/RDATA_11 sp4_h_r_40
+B9[36] buffer wire_bram/ram/RDATA_11 sp4_h_r_8
+B8[40] buffer wire_bram/ram/RDATA_11 sp4_r_v_b_25
+B8[41] buffer wire_bram/ram/RDATA_11 sp4_r_v_b_41
+B9[41] buffer wire_bram/ram/RDATA_11 sp4_r_v_b_9
+B8[39] buffer wire_bram/ram/RDATA_11 sp4_v_b_40
+B9[39] buffer wire_bram/ram/RDATA_11 sp4_v_b_8
+B8[38] buffer wire_bram/ram/RDATA_11 sp4_v_t_13
+B6[37] buffer wire_bram/ram/RDATA_12 sp12_h_r_14
+B7[40] buffer wire_bram/ram/RDATA_12 sp12_v_b_22
+B6[39] buffer wire_bram/ram/RDATA_12 sp12_v_t_5
+B7[37] buffer wire_bram/ram/RDATA_12 sp4_h_l_11
+B6[36] buffer wire_bram/ram/RDATA_12 sp4_h_l_27
+B7[36] buffer wire_bram/ram/RDATA_12 sp4_h_r_6
+B6[40] buffer wire_bram/ram/RDATA_12 sp4_r_v_b_23
+B6[41] buffer wire_bram/ram/RDATA_12 sp4_r_v_b_39
+B7[41] buffer wire_bram/ram/RDATA_12 sp4_r_v_b_7
+B7[38] buffer wire_bram/ram/RDATA_12 sp4_v_b_6
+B7[39] buffer wire_bram/ram/RDATA_12 sp4_v_t_11
+B6[38] buffer wire_bram/ram/RDATA_12 sp4_v_t_27
+B4[37] buffer wire_bram/ram/RDATA_13 sp12_h_r_12
+B5[40] buffer wire_bram/ram/RDATA_13 sp12_v_b_20
+B4[39] buffer wire_bram/ram/RDATA_13 sp12_v_b_4
+B5[37] buffer wire_bram/ram/RDATA_13 sp4_h_l_9
+B4[36] buffer wire_bram/ram/RDATA_13 sp4_h_r_36
+B5[36] buffer wire_bram/ram/RDATA_13 sp4_h_r_4
+B4[40] buffer wire_bram/ram/RDATA_13 sp4_r_v_b_21
+B4[41] buffer wire_bram/ram/RDATA_13 sp4_r_v_b_37
+B5[41] buffer wire_bram/ram/RDATA_13 sp4_r_v_b_5
+B5[39] buffer wire_bram/ram/RDATA_13 sp4_v_b_20
+B5[38] buffer wire_bram/ram/RDATA_13 sp4_v_b_4
+B4[38] buffer wire_bram/ram/RDATA_13 sp4_v_t_25
+B2[37] buffer wire_bram/ram/RDATA_14 sp12_h_l_9
+B3[40] buffer wire_bram/ram/RDATA_14 sp12_v_b_18
+B2[39] buffer wire_bram/ram/RDATA_14 sp12_v_t_1
+B3[37] buffer wire_bram/ram/RDATA_14 sp4_h_r_18
+B3[36] buffer wire_bram/ram/RDATA_14 sp4_h_r_2
+B2[36] buffer wire_bram/ram/RDATA_14 sp4_h_r_34
+B2[40] buffer wire_bram/ram/RDATA_14 sp4_r_v_b_19
+B3[41] buffer wire_bram/ram/RDATA_14 sp4_r_v_b_3
+B2[41] buffer wire_bram/ram/RDATA_14 sp4_r_v_b_35
+B3[38] buffer wire_bram/ram/RDATA_14 sp4_v_b_2
+B2[38] buffer wire_bram/ram/RDATA_14 sp4_v_b_34
+B3[39] buffer wire_bram/ram/RDATA_14 sp4_v_t_7
+B0[37] buffer wire_bram/ram/RDATA_15 sp12_h_r_8
+B0[39] buffer wire_bram/ram/RDATA_15 sp12_v_b_0
+B1[40] buffer wire_bram/ram/RDATA_15 sp12_v_b_16
+B1[36] buffer wire_bram/ram/RDATA_15 sp4_h_r_0
+B1[37] buffer wire_bram/ram/RDATA_15 sp4_h_r_16
+B0[36] buffer wire_bram/ram/RDATA_15 sp4_h_r_32
+B1[41] buffer wire_bram/ram/RDATA_15 sp4_r_v_b_1
+B0[40] buffer wire_bram/ram/RDATA_15 sp4_r_v_b_17
+B0[41] buffer wire_bram/ram/RDATA_15 sp4_r_v_b_33
+B1[38] buffer wire_bram/ram/RDATA_15 sp4_v_b_0
+B1[39] buffer wire_bram/ram/RDATA_15 sp4_v_b_16
+B0[38] buffer wire_bram/ram/RDATA_15 sp4_v_b_32
+B14[37] buffer wire_bram/ram/RDATA_8 sp12_h_l_5
+B15[38] buffer wire_bram/ram/RDATA_8 sp12_h_r_22
+B15[40] buffer wire_bram/ram/RDATA_8 sp12_v_b_14
+B15[37] buffer wire_bram/ram/RDATA_8 sp4_h_l_19
+B15[36] buffer wire_bram/ram/RDATA_8 sp4_h_l_3
+B14[36] buffer wire_bram/ram/RDATA_8 sp4_h_r_46
+B15[41] buffer wire_bram/ram/RDATA_8 sp4_r_v_b_15
+B14[40] buffer wire_bram/ram/RDATA_8 sp4_r_v_b_31
+B14[41] buffer wire_bram/ram/RDATA_8 sp4_r_v_b_47
+B15[39] buffer wire_bram/ram/RDATA_8 sp4_v_b_14
+B14[39] buffer wire_bram/ram/RDATA_8 sp4_v_b_46
+B14[38] buffer wire_bram/ram/RDATA_8 sp4_v_t_19
+B12[37] buffer wire_bram/ram/RDATA_9 sp12_h_l_3
+B13[38] buffer wire_bram/ram/RDATA_9 sp12_h_r_20
+B13[40] buffer wire_bram/ram/RDATA_9 sp12_v_t_11
+B13[36] buffer wire_bram/ram/RDATA_9 sp4_h_l_1
+B13[37] buffer wire_bram/ram/RDATA_9 sp4_h_r_28
+B12[36] buffer wire_bram/ram/RDATA_9 sp4_h_r_44
+B13[41] buffer wire_bram/ram/RDATA_9 sp4_r_v_b_13
+B12[40] buffer wire_bram/ram/RDATA_9 sp4_r_v_b_29
+B12[41] buffer wire_bram/ram/RDATA_9 sp4_r_v_b_45
+B13[39] buffer wire_bram/ram/RDATA_9 sp4_v_b_12
+B12[38] buffer wire_bram/ram/RDATA_9 sp4_v_b_28
+B12[39] buffer wire_bram/ram/RDATA_9 sp4_v_b_44
+!B12[3],B13[3] routing sp12_h_l_22 sp12_h_r_1
+!B8[3],B9[3] routing sp12_h_l_22 sp12_v_b_1
+!B14[3],B15[3] routing sp12_h_l_22 sp12_v_t_22
+!B4[3],B5[3] routing sp12_h_l_23 sp12_h_r_0
+!B0[3],B1[3] routing sp12_h_l_23 sp12_v_b_0
+!B6[3],B7[3] routing sp12_h_l_23 sp12_v_t_23
+B2[3],B3[3] routing sp12_h_r_0 sp12_h_l_23
+B0[3],B1[3] routing sp12_h_r_0 sp12_v_b_0
+B6[3],B7[3] routing sp12_h_r_0 sp12_v_t_23
+B10[3],B11[3] routing sp12_h_r_1 sp12_h_l_22
+B8[3],B9[3] routing sp12_h_r_1 sp12_v_b_1
+B14[3],B15[3] routing sp12_h_r_1 sp12_v_t_22
+!B2[3],B3[3] routing sp12_v_b_0 sp12_h_l_23
+B4[3],B5[3] routing sp12_v_b_0 sp12_h_r_0
+B6[3],!B7[3] routing sp12_v_b_0 sp12_v_t_23
+!B10[3],B11[3] routing sp12_v_b_1 sp12_h_l_22
+B12[3],B13[3] routing sp12_v_b_1 sp12_h_r_1
+B14[3],!B15[3] routing sp12_v_b_1 sp12_v_t_22
+B10[3],!B11[3] routing sp12_v_t_22 sp12_h_l_22
+B12[3],!B13[3] routing sp12_v_t_22 sp12_h_r_1
+B8[3],!B9[3] routing sp12_v_t_22 sp12_v_b_1
+B2[3],!B3[3] routing sp12_v_t_23 sp12_h_l_23
+B4[3],!B5[3] routing sp12_v_t_23 sp12_h_r_0
+B0[3],!B1[3] routing sp12_v_t_23 sp12_v_b_0
+B0[8],!B0[9],!B0[10] routing sp4_h_l_36 sp4_h_r_1
+!B4[8],B4[9],B4[10] routing sp4_h_l_36 sp4_h_r_4
+!B12[5],B13[4],B13[6] routing sp4_h_l_36 sp4_h_r_9
+B1[8],B1[9],!B1[10] routing sp4_h_l_36 sp4_v_b_1
+B9[8],B9[9],B9[10] routing sp4_h_l_36 sp4_v_b_7
+B3[8],!B3[9],!B3[10] routing sp4_h_l_36 sp4_v_t_36
+!B10[4],B10[6],!B11[5] routing sp4_h_l_36 sp4_v_t_43
+!B0[5],!B1[4],B1[6] routing sp4_h_l_37 sp4_h_r_0
+B4[5],B5[4],!B5[6] routing sp4_h_l_37 sp4_h_r_3
+!B8[12],B9[11],B9[13] routing sp4_h_l_37 sp4_h_r_8
+B0[4],!B0[6],B1[5] routing sp4_h_l_37 sp4_v_b_0
+B8[4],B8[6],B9[5] routing sp4_h_l_37 sp4_v_b_6
+!B2[4],!B2[6],B3[5] routing sp4_h_l_37 sp4_v_t_37
+B6[11],!B6[13],!B7[12] routing sp4_h_l_37 sp4_v_t_40
+!B12[12],B13[11],B13[13] routing sp4_h_l_38 sp4_h_r_11
+!B4[5],!B5[4],B5[6] routing sp4_h_l_38 sp4_h_r_3
+B8[5],B9[4],!B9[6] routing sp4_h_l_38 sp4_h_r_6
+B4[4],!B4[6],B5[5] routing sp4_h_l_38 sp4_v_b_3
+B12[4],B12[6],B13[5] routing sp4_h_l_38 sp4_v_b_9
+!B6[4],!B6[6],B7[5] routing sp4_h_l_38 sp4_v_t_38
+B10[11],!B10[13],!B11[12] routing sp4_h_l_38 sp4_v_t_45
+B12[8],!B12[9],B12[10] routing sp4_h_l_39 sp4_h_r_10
+!B0[12],B1[11],!B1[13] routing sp4_h_l_39 sp4_h_r_2
+B4[12],!B5[11],B5[13] routing sp4_h_l_39 sp4_h_r_5
+!B0[11],B0[13],B1[12] routing sp4_h_l_39 sp4_v_b_2
+B8[11],B8[13],B9[12] routing sp4_h_l_39 sp4_v_b_8
+!B2[11],!B2[13],B3[12] routing sp4_h_l_39 sp4_v_t_39
+!B11[8],!B11[9],B11[10] routing sp4_h_l_39 sp4_v_t_42
+B0[8],!B0[9],B0[10] routing sp4_h_l_40 sp4_h_r_1
+!B4[12],B5[11],!B5[13] routing sp4_h_l_40 sp4_h_r_5
+B8[12],!B9[11],B9[13] routing sp4_h_l_40 sp4_h_r_8
+B12[11],B12[13],B13[12] routing sp4_h_l_40 sp4_v_b_11
+!B4[11],B4[13],B5[12] routing sp4_h_l_40 sp4_v_b_5
+!B6[11],!B6[13],B7[12] routing sp4_h_l_40 sp4_v_t_40
+!B15[8],!B15[9],B15[10] routing sp4_h_l_40 sp4_v_t_47
+!B0[5],B1[4],B1[6] routing sp4_h_l_41 sp4_h_r_0
+B4[8],!B4[9],!B4[10] routing sp4_h_l_41 sp4_h_r_4
+!B8[8],B8[9],B8[10] routing sp4_h_l_41 sp4_h_r_7
+B13[8],B13[9],B13[10] routing sp4_h_l_41 sp4_v_b_10
+B5[8],B5[9],!B5[10] routing sp4_h_l_41 sp4_v_b_4
+B7[8],!B7[9],!B7[10] routing sp4_h_l_41 sp4_v_t_41
+!B14[4],B14[6],!B15[5] routing sp4_h_l_41 sp4_v_t_44
+!B12[8],B12[9],B12[10] routing sp4_h_l_42 sp4_h_r_10
+!B4[5],B5[4],B5[6] routing sp4_h_l_42 sp4_h_r_3
+B8[8],!B8[9],!B8[10] routing sp4_h_l_42 sp4_h_r_7
+B1[8],B1[9],B1[10] routing sp4_h_l_42 sp4_v_b_1
+B9[8],B9[9],!B9[10] routing sp4_h_l_42 sp4_v_b_7
+!B2[4],B2[6],!B3[5] routing sp4_h_l_42 sp4_v_t_37
+B11[8],!B11[9],!B11[10] routing sp4_h_l_42 sp4_v_t_42
+!B0[12],B1[11],B1[13] routing sp4_h_l_43 sp4_h_r_2
+!B8[5],!B9[4],B9[6] routing sp4_h_l_43 sp4_h_r_6
+B12[5],B13[4],!B13[6] routing sp4_h_l_43 sp4_h_r_9
+B0[4],B0[6],B1[5] routing sp4_h_l_43 sp4_v_b_0
+B8[4],!B8[6],B9[5] routing sp4_h_l_43 sp4_v_b_6
+!B10[4],!B10[6],B11[5] routing sp4_h_l_43 sp4_v_t_43
+B14[11],!B14[13],!B15[12] routing sp4_h_l_43 sp4_v_t_46
+B0[5],B1[4],!B1[6] routing sp4_h_l_44 sp4_h_r_0
+!B4[12],B5[11],B5[13] routing sp4_h_l_44 sp4_h_r_5
+!B12[5],!B13[4],B13[6] routing sp4_h_l_44 sp4_h_r_9
+B4[4],B4[6],B5[5] routing sp4_h_l_44 sp4_v_b_3
+B12[4],!B12[6],B13[5] routing sp4_h_l_44 sp4_v_b_9
+B2[11],!B2[13],!B3[12] routing sp4_h_l_44 sp4_v_t_39
+!B14[4],!B14[6],B15[5] routing sp4_h_l_44 sp4_v_t_44
+B12[12],!B13[11],B13[13] routing sp4_h_l_45 sp4_h_r_11
+B4[8],!B4[9],B4[10] routing sp4_h_l_45 sp4_h_r_4
+!B8[12],B9[11],!B9[13] routing sp4_h_l_45 sp4_h_r_8
+B0[11],B0[13],B1[12] routing sp4_h_l_45 sp4_v_b_2
+!B8[11],B8[13],B9[12] routing sp4_h_l_45 sp4_v_b_8
+!B3[8],!B3[9],B3[10] routing sp4_h_l_45 sp4_v_t_36
+!B10[11],!B10[13],B11[12] routing sp4_h_l_45 sp4_v_t_45
+!B12[12],B13[11],!B13[13] routing sp4_h_l_46 sp4_h_r_11
+B0[12],!B1[11],B1[13] routing sp4_h_l_46 sp4_h_r_2
+B8[8],!B8[9],B8[10] routing sp4_h_l_46 sp4_h_r_7
+!B12[11],B12[13],B13[12] routing sp4_h_l_46 sp4_v_b_11
+B4[11],B4[13],B5[12] routing sp4_h_l_46 sp4_v_b_5
+!B7[8],!B7[9],B7[10] routing sp4_h_l_46 sp4_v_t_41
+!B14[11],!B14[13],B15[12] routing sp4_h_l_46 sp4_v_t_46
+!B0[8],B0[9],B0[10] routing sp4_h_l_47 sp4_h_r_1
+B12[8],!B12[9],!B12[10] routing sp4_h_l_47 sp4_h_r_10
+!B8[5],B9[4],B9[6] routing sp4_h_l_47 sp4_h_r_6
+B13[8],B13[9],!B13[10] routing sp4_h_l_47 sp4_v_b_10
+B5[8],B5[9],B5[10] routing sp4_h_l_47 sp4_v_b_4
+!B6[4],B6[6],!B7[5] routing sp4_h_l_47 sp4_v_t_38
+B15[8],!B15[9],!B15[10] routing sp4_h_l_47 sp4_v_t_47
+!B2[5],!B3[4],B3[6] routing sp4_h_r_0 sp4_h_l_37
+B6[5],B7[4],!B7[6] routing sp4_h_r_0 sp4_h_l_38
+!B10[12],B11[11],B11[13] routing sp4_h_r_0 sp4_h_l_45
+!B0[4],!B0[6],B1[5] routing sp4_h_r_0 sp4_v_b_0
+B4[11],!B4[13],!B5[12] routing sp4_h_r_0 sp4_v_b_5
+B2[4],!B2[6],B3[5] routing sp4_h_r_0 sp4_v_t_37
+B10[4],B10[6],B11[5] routing sp4_h_r_0 sp4_v_t_43
+B2[8],!B2[9],!B2[10] routing sp4_h_r_1 sp4_h_l_36
+!B6[8],B6[9],B6[10] routing sp4_h_r_1 sp4_h_l_41
+!B14[5],B15[4],B15[6] routing sp4_h_r_1 sp4_h_l_44
+B1[8],!B1[9],!B1[10] routing sp4_h_r_1 sp4_v_b_1
+!B8[4],B8[6],!B9[5] routing sp4_h_r_1 sp4_v_b_6
+B3[8],B3[9],!B3[10] routing sp4_h_r_1 sp4_v_t_36
+B11[8],B11[9],B11[10] routing sp4_h_r_1 sp4_v_t_42
+!B2[8],B2[9],B2[10] routing sp4_h_r_10 sp4_h_l_36
+!B10[5],B11[4],B11[6] routing sp4_h_r_10 sp4_h_l_43
+B14[8],!B14[9],!B14[10] routing sp4_h_r_10 sp4_h_l_47
+B13[8],!B13[9],!B13[10] routing sp4_h_r_10 sp4_v_b_10
+!B4[4],B4[6],!B5[5] routing sp4_h_r_10 sp4_v_b_3
+B7[8],B7[9],B7[10] routing sp4_h_r_10 sp4_v_t_41
+B15[8],B15[9],!B15[10] routing sp4_h_r_10 sp4_v_t_47
+B2[12],!B3[11],B3[13] routing sp4_h_r_11 sp4_h_l_39
+B10[8],!B10[9],B10[10] routing sp4_h_r_11 sp4_h_l_42
+!B14[12],B15[11],!B15[13] routing sp4_h_r_11 sp4_h_l_46
+!B12[11],!B12[13],B13[12] routing sp4_h_r_11 sp4_v_b_11
+!B5[8],!B5[9],B5[10] routing sp4_h_r_11 sp4_v_b_4
+B6[11],B6[13],B7[12] routing sp4_h_r_11 sp4_v_t_40
+!B14[11],B14[13],B15[12] routing sp4_h_r_11 sp4_v_t_46
+!B2[12],B3[11],!B3[13] routing sp4_h_r_2 sp4_h_l_39
+B6[12],!B7[11],B7[13] routing sp4_h_r_2 sp4_h_l_40
+B14[8],!B14[9],B14[10] routing sp4_h_r_2 sp4_h_l_47
+!B0[11],!B0[13],B1[12] routing sp4_h_r_2 sp4_v_b_2
+!B9[8],!B9[9],B9[10] routing sp4_h_r_2 sp4_v_b_7
+!B2[11],B2[13],B3[12] routing sp4_h_r_2 sp4_v_t_39
+B10[11],B10[13],B11[12] routing sp4_h_r_2 sp4_v_t_45
+!B6[5],!B7[4],B7[6] routing sp4_h_r_3 sp4_h_l_38
+B10[5],B11[4],!B11[6] routing sp4_h_r_3 sp4_h_l_43
+!B14[12],B15[11],B15[13] routing sp4_h_r_3 sp4_h_l_46
+!B4[4],!B4[6],B5[5] routing sp4_h_r_3 sp4_v_b_3
+B8[11],!B8[13],!B9[12] routing sp4_h_r_3 sp4_v_b_8
+B6[4],!B6[6],B7[5] routing sp4_h_r_3 sp4_v_t_38
+B14[4],B14[6],B15[5] routing sp4_h_r_3 sp4_v_t_44
+!B2[5],B3[4],B3[6] routing sp4_h_r_4 sp4_h_l_37
+B6[8],!B6[9],!B6[10] routing sp4_h_r_4 sp4_h_l_41
+!B10[8],B10[9],B10[10] routing sp4_h_r_4 sp4_h_l_42
+B5[8],!B5[9],!B5[10] routing sp4_h_r_4 sp4_v_b_4
+!B12[4],B12[6],!B13[5] routing sp4_h_r_4 sp4_v_b_9
+B7[8],B7[9],!B7[10] routing sp4_h_r_4 sp4_v_t_41
+B15[8],B15[9],B15[10] routing sp4_h_r_4 sp4_v_t_47
+B2[8],!B2[9],B2[10] routing sp4_h_r_5 sp4_h_l_36
+!B6[12],B7[11],!B7[13] routing sp4_h_r_5 sp4_h_l_40
+B10[12],!B11[11],B11[13] routing sp4_h_r_5 sp4_h_l_45
+!B13[8],!B13[9],B13[10] routing sp4_h_r_5 sp4_v_b_10
+!B4[11],!B4[13],B5[12] routing sp4_h_r_5 sp4_v_b_5
+!B6[11],B6[13],B7[12] routing sp4_h_r_5 sp4_v_t_40
+B14[11],B14[13],B15[12] routing sp4_h_r_5 sp4_v_t_46
+!B2[12],B3[11],B3[13] routing sp4_h_r_6 sp4_h_l_39
+!B10[5],!B11[4],B11[6] routing sp4_h_r_6 sp4_h_l_43
+B14[5],B15[4],!B15[6] routing sp4_h_r_6 sp4_h_l_44
+B12[11],!B12[13],!B13[12] routing sp4_h_r_6 sp4_v_b_11
+!B8[4],!B8[6],B9[5] routing sp4_h_r_6 sp4_v_b_6
+B2[4],B2[6],B3[5] routing sp4_h_r_6 sp4_v_t_37
+B10[4],!B10[6],B11[5] routing sp4_h_r_6 sp4_v_t_43
+!B6[5],B7[4],B7[6] routing sp4_h_r_7 sp4_h_l_38
+B10[8],!B10[9],!B10[10] routing sp4_h_r_7 sp4_h_l_42
+!B14[8],B14[9],B14[10] routing sp4_h_r_7 sp4_h_l_47
+!B0[4],B0[6],!B1[5] routing sp4_h_r_7 sp4_v_b_0
+B9[8],!B9[9],!B9[10] routing sp4_h_r_7 sp4_v_b_7
+B3[8],B3[9],B3[10] routing sp4_h_r_7 sp4_v_t_36
+B11[8],B11[9],!B11[10] routing sp4_h_r_7 sp4_v_t_42
+B6[8],!B6[9],B6[10] routing sp4_h_r_8 sp4_h_l_41
+!B10[12],B11[11],!B11[13] routing sp4_h_r_8 sp4_h_l_45
+B14[12],!B15[11],B15[13] routing sp4_h_r_8 sp4_h_l_46
+!B1[8],!B1[9],B1[10] routing sp4_h_r_8 sp4_v_b_1
+!B8[11],!B8[13],B9[12] routing sp4_h_r_8 sp4_v_b_8
+B2[11],B2[13],B3[12] routing sp4_h_r_8 sp4_v_t_39
+!B10[11],B10[13],B11[12] routing sp4_h_r_8 sp4_v_t_45
+B2[5],B3[4],!B3[6] routing sp4_h_r_9 sp4_h_l_37
+!B6[12],B7[11],B7[13] routing sp4_h_r_9 sp4_h_l_40
+!B14[5],!B15[4],B15[6] routing sp4_h_r_9 sp4_h_l_44
+B0[11],!B0[13],!B1[12] routing sp4_h_r_9 sp4_v_b_2
+!B12[4],!B12[6],B13[5] routing sp4_h_r_9 sp4_v_b_9
+B6[4],B6[6],B7[5] routing sp4_h_r_9 sp4_v_t_38
+B14[4],!B14[6],B15[5] routing sp4_h_r_9 sp4_v_t_44
+B2[5],!B3[4],!B3[6] routing sp4_v_b_0 sp4_h_l_37
+!B6[12],!B7[11],B7[13] routing sp4_v_b_0 sp4_h_l_40
+B0[5],!B1[4],B1[6] routing sp4_v_b_0 sp4_h_r_0
+B8[5],B9[4],B9[6] routing sp4_v_b_0 sp4_h_r_6
+B2[4],!B2[6],!B3[5] routing sp4_v_b_0 sp4_v_t_37
+!B6[4],B6[6],B7[5] routing sp4_v_b_0 sp4_v_t_38
+B10[11],B10[13],!B11[12] routing sp4_v_b_0 sp4_v_t_45
+!B2[8],B2[9],!B2[10] routing sp4_v_b_1 sp4_h_l_36
+!B10[5],B11[4],!B11[6] routing sp4_v_b_1 sp4_h_l_43
+B0[8],B0[9],!B0[10] routing sp4_v_b_1 sp4_h_r_1
+B8[8],B8[9],B8[10] routing sp4_v_b_1 sp4_h_r_7
+!B3[8],B3[9],!B3[10] routing sp4_v_b_1 sp4_v_t_36
+B7[8],!B7[9],B7[10] routing sp4_v_b_1 sp4_v_t_41
+B14[4],B14[6],!B15[5] routing sp4_v_b_1 sp4_v_t_44
+!B6[5],B7[4],!B7[6] routing sp4_v_b_10 sp4_h_l_38
+!B14[8],B14[9],!B14[10] routing sp4_v_b_10 sp4_h_l_47
+B12[8],B12[9],!B12[10] routing sp4_v_b_10 sp4_h_r_10
+B4[8],B4[9],B4[10] routing sp4_v_b_10 sp4_h_r_4
+B3[8],!B3[9],B3[10] routing sp4_v_b_10 sp4_v_t_36
+B10[4],B10[6],!B11[5] routing sp4_v_b_10 sp4_v_t_43
+!B15[8],B15[9],!B15[10] routing sp4_v_b_10 sp4_v_t_47
+!B6[8],!B6[9],B6[10] routing sp4_v_b_11 sp4_h_l_41
+B14[12],!B15[11],!B15[13] routing sp4_v_b_11 sp4_h_l_46
+B12[12],B13[11],!B13[13] routing sp4_v_b_11 sp4_h_r_11
+B4[12],B5[11],B5[13] routing sp4_v_b_11 sp4_h_r_5
+B2[11],!B2[13],B3[12] routing sp4_v_b_11 sp4_v_t_39
+!B11[8],B11[9],B11[10] routing sp4_v_b_11 sp4_v_t_42
+!B14[11],B14[13],!B15[12] routing sp4_v_b_11 sp4_v_t_46
+B2[12],!B3[11],!B3[13] routing sp4_v_b_2 sp4_h_l_39
+!B10[8],!B10[9],B10[10] routing sp4_v_b_2 sp4_h_l_42
+B0[12],B1[11],!B1[13] routing sp4_v_b_2 sp4_h_r_2
+B8[12],B9[11],B9[13] routing sp4_v_b_2 sp4_h_r_8
+!B2[11],B2[13],!B3[12] routing sp4_v_b_2 sp4_v_t_39
+B6[11],!B6[13],B7[12] routing sp4_v_b_2 sp4_v_t_40
+!B15[8],B15[9],B15[10] routing sp4_v_b_2 sp4_v_t_47
+B6[5],!B7[4],!B7[6] routing sp4_v_b_3 sp4_h_l_38
+!B10[12],!B11[11],B11[13] routing sp4_v_b_3 sp4_h_l_45
+B4[5],!B5[4],B5[6] routing sp4_v_b_3 sp4_h_r_3
+B12[5],B13[4],B13[6] routing sp4_v_b_3 sp4_h_r_9
+B6[4],!B6[6],!B7[5] routing sp4_v_b_3 sp4_v_t_38
+!B10[4],B10[6],B11[5] routing sp4_v_b_3 sp4_v_t_43
+B14[11],B14[13],!B15[12] routing sp4_v_b_3 sp4_v_t_46
+!B6[8],B6[9],!B6[10] routing sp4_v_b_4 sp4_h_l_41
+!B14[5],B15[4],!B15[6] routing sp4_v_b_4 sp4_h_l_44
+B12[8],B12[9],B12[10] routing sp4_v_b_4 sp4_h_r_10
+B4[8],B4[9],!B4[10] routing sp4_v_b_4 sp4_h_r_4
+B2[4],B2[6],!B3[5] routing sp4_v_b_4 sp4_v_t_37
+!B7[8],B7[9],!B7[10] routing sp4_v_b_4 sp4_v_t_41
+B11[8],!B11[9],B11[10] routing sp4_v_b_4 sp4_v_t_42
+B6[12],!B7[11],!B7[13] routing sp4_v_b_5 sp4_h_l_40
+!B14[8],!B14[9],B14[10] routing sp4_v_b_5 sp4_h_l_47
+B12[12],B13[11],B13[13] routing sp4_v_b_5 sp4_h_r_11
+B4[12],B5[11],!B5[13] routing sp4_v_b_5 sp4_h_r_5
+!B3[8],B3[9],B3[10] routing sp4_v_b_5 sp4_v_t_36
+!B6[11],B6[13],!B7[12] routing sp4_v_b_5 sp4_v_t_40
+B10[11],!B10[13],B11[12] routing sp4_v_b_5 sp4_v_t_45
+B10[5],!B11[4],!B11[6] routing sp4_v_b_6 sp4_h_l_43
+!B14[12],!B15[11],B15[13] routing sp4_v_b_6 sp4_h_l_46
+B0[5],B1[4],B1[6] routing sp4_v_b_6 sp4_h_r_0
+B8[5],!B9[4],B9[6] routing sp4_v_b_6 sp4_h_r_6
+B2[11],B2[13],!B3[12] routing sp4_v_b_6 sp4_v_t_39
+B10[4],!B10[6],!B11[5] routing sp4_v_b_6 sp4_v_t_43
+!B14[4],B14[6],B15[5] routing sp4_v_b_6 sp4_v_t_44
+!B2[5],B3[4],!B3[6] routing sp4_v_b_7 sp4_h_l_37
+!B10[8],B10[9],!B10[10] routing sp4_v_b_7 sp4_h_l_42
+B0[8],B0[9],B0[10] routing sp4_v_b_7 sp4_h_r_1
+B8[8],B8[9],!B8[10] routing sp4_v_b_7 sp4_h_r_7
+B6[4],B6[6],!B7[5] routing sp4_v_b_7 sp4_v_t_38
+!B11[8],B11[9],!B11[10] routing sp4_v_b_7 sp4_v_t_42
+B15[8],!B15[9],B15[10] routing sp4_v_b_7 sp4_v_t_47
+!B2[8],!B2[9],B2[10] routing sp4_v_b_8 sp4_h_l_36
+B10[12],!B11[11],!B11[13] routing sp4_v_b_8 sp4_h_l_45
+B0[12],B1[11],B1[13] routing sp4_v_b_8 sp4_h_r_2
+B8[12],B9[11],!B9[13] routing sp4_v_b_8 sp4_h_r_8
+!B7[8],B7[9],B7[10] routing sp4_v_b_8 sp4_v_t_41
+!B10[11],B10[13],!B11[12] routing sp4_v_b_8 sp4_v_t_45
+B14[11],!B14[13],B15[12] routing sp4_v_b_8 sp4_v_t_46
+!B2[12],!B3[11],B3[13] routing sp4_v_b_9 sp4_h_l_39
+B14[5],!B15[4],!B15[6] routing sp4_v_b_9 sp4_h_l_44
+B4[5],B5[4],B5[6] routing sp4_v_b_9 sp4_h_r_3
+B12[5],!B13[4],B13[6] routing sp4_v_b_9 sp4_h_r_9
+!B2[4],B2[6],B3[5] routing sp4_v_b_9 sp4_v_t_37
+B6[11],B6[13],!B7[12] routing sp4_v_b_9 sp4_v_t_40
+B14[4],!B14[6],!B15[5] routing sp4_v_b_9 sp4_v_t_44
+B2[8],B2[9],!B2[10] routing sp4_v_t_36 sp4_h_l_36
+B10[8],B10[9],B10[10] routing sp4_v_t_36 sp4_h_l_42
+!B0[8],B0[9],!B0[10] routing sp4_v_t_36 sp4_h_r_1
+!B8[5],B9[4],!B9[6] routing sp4_v_t_36 sp4_h_r_6
+!B1[8],B1[9],!B1[10] routing sp4_v_t_36 sp4_v_b_1
+B5[8],!B5[9],B5[10] routing sp4_v_t_36 sp4_v_b_4
+B12[4],B12[6],!B13[5] routing sp4_v_t_36 sp4_v_b_9
+B2[5],!B3[4],B3[6] routing sp4_v_t_37 sp4_h_l_37
+B10[5],B11[4],B11[6] routing sp4_v_t_37 sp4_h_l_43
+B0[5],!B1[4],!B1[6] routing sp4_v_t_37 sp4_h_r_0
+!B4[12],!B5[11],B5[13] routing sp4_v_t_37 sp4_h_r_5
+B0[4],!B0[6],!B1[5] routing sp4_v_t_37 sp4_v_b_0
+!B4[4],B4[6],B5[5] routing sp4_v_t_37 sp4_v_b_3
+B8[11],B8[13],!B9[12] routing sp4_v_t_37 sp4_v_b_8
+B6[5],!B7[4],B7[6] routing sp4_v_t_38 sp4_h_l_38
+B14[5],B15[4],B15[6] routing sp4_v_t_38 sp4_h_l_44
+B4[5],!B5[4],!B5[6] routing sp4_v_t_38 sp4_h_r_3
+!B8[12],!B9[11],B9[13] routing sp4_v_t_38 sp4_h_r_8
+B12[11],B12[13],!B13[12] routing sp4_v_t_38 sp4_v_b_11
+B4[4],!B4[6],!B5[5] routing sp4_v_t_38 sp4_v_b_3
+!B8[4],B8[6],B9[5] routing sp4_v_t_38 sp4_v_b_6
+B2[12],B3[11],!B3[13] routing sp4_v_t_39 sp4_h_l_39
+B10[12],B11[11],B11[13] routing sp4_v_t_39 sp4_h_l_45
+B0[12],!B1[11],!B1[13] routing sp4_v_t_39 sp4_h_r_2
+!B8[8],!B8[9],B8[10] routing sp4_v_t_39 sp4_h_r_7
+!B13[8],B13[9],B13[10] routing sp4_v_t_39 sp4_v_b_10
+!B0[11],B0[13],!B1[12] routing sp4_v_t_39 sp4_v_b_2
+B4[11],!B4[13],B5[12] routing sp4_v_t_39 sp4_v_b_5
+B6[12],B7[11],!B7[13] routing sp4_v_t_40 sp4_h_l_40
+B14[12],B15[11],B15[13] routing sp4_v_t_40 sp4_h_l_46
+!B12[8],!B12[9],B12[10] routing sp4_v_t_40 sp4_h_r_10
+B4[12],!B5[11],!B5[13] routing sp4_v_t_40 sp4_h_r_5
+!B1[8],B1[9],B1[10] routing sp4_v_t_40 sp4_v_b_1
+!B4[11],B4[13],!B5[12] routing sp4_v_t_40 sp4_v_b_5
+B8[11],!B8[13],B9[12] routing sp4_v_t_40 sp4_v_b_8
+B6[8],B6[9],!B6[10] routing sp4_v_t_41 sp4_h_l_41
+B14[8],B14[9],B14[10] routing sp4_v_t_41 sp4_h_l_47
+!B4[8],B4[9],!B4[10] routing sp4_v_t_41 sp4_h_r_4
+!B12[5],B13[4],!B13[6] routing sp4_v_t_41 sp4_h_r_9
+B0[4],B0[6],!B1[5] routing sp4_v_t_41 sp4_v_b_0
+!B5[8],B5[9],!B5[10] routing sp4_v_t_41 sp4_v_b_4
+B9[8],!B9[9],B9[10] routing sp4_v_t_41 sp4_v_b_7
+B2[8],B2[9],B2[10] routing sp4_v_t_42 sp4_h_l_36
+B10[8],B10[9],!B10[10] routing sp4_v_t_42 sp4_h_l_42
+!B0[5],B1[4],!B1[6] routing sp4_v_t_42 sp4_h_r_0
+!B8[8],B8[9],!B8[10] routing sp4_v_t_42 sp4_h_r_7
+B13[8],!B13[9],B13[10] routing sp4_v_t_42 sp4_v_b_10
+B4[4],B4[6],!B5[5] routing sp4_v_t_42 sp4_v_b_3
+!B9[8],B9[9],!B9[10] routing sp4_v_t_42 sp4_v_b_7
+B2[5],B3[4],B3[6] routing sp4_v_t_43 sp4_h_l_37
+B10[5],!B11[4],B11[6] routing sp4_v_t_43 sp4_h_l_43
+!B12[12],!B13[11],B13[13] routing sp4_v_t_43 sp4_h_r_11
+B8[5],!B9[4],!B9[6] routing sp4_v_t_43 sp4_h_r_6
+B0[11],B0[13],!B1[12] routing sp4_v_t_43 sp4_v_b_2
+B8[4],!B8[6],!B9[5] routing sp4_v_t_43 sp4_v_b_6
+!B12[4],B12[6],B13[5] routing sp4_v_t_43 sp4_v_b_9
+B6[5],B7[4],B7[6] routing sp4_v_t_44 sp4_h_l_38
+B14[5],!B15[4],B15[6] routing sp4_v_t_44 sp4_h_l_44
+!B0[12],!B1[11],B1[13] routing sp4_v_t_44 sp4_h_r_2
+B12[5],!B13[4],!B13[6] routing sp4_v_t_44 sp4_h_r_9
+!B0[4],B0[6],B1[5] routing sp4_v_t_44 sp4_v_b_0
+B4[11],B4[13],!B5[12] routing sp4_v_t_44 sp4_v_b_5
+B12[4],!B12[6],!B13[5] routing sp4_v_t_44 sp4_v_b_9
+B2[12],B3[11],B3[13] routing sp4_v_t_45 sp4_h_l_39
+B10[12],B11[11],!B11[13] routing sp4_v_t_45 sp4_h_l_45
+!B0[8],!B0[9],B0[10] routing sp4_v_t_45 sp4_h_r_1
+B8[12],!B9[11],!B9[13] routing sp4_v_t_45 sp4_h_r_8
+B12[11],!B12[13],B13[12] routing sp4_v_t_45 sp4_v_b_11
+!B5[8],B5[9],B5[10] routing sp4_v_t_45 sp4_v_b_4
+!B8[11],B8[13],!B9[12] routing sp4_v_t_45 sp4_v_b_8
+B6[12],B7[11],B7[13] routing sp4_v_t_46 sp4_h_l_40
+B14[12],B15[11],!B15[13] routing sp4_v_t_46 sp4_h_l_46
+B12[12],!B13[11],!B13[13] routing sp4_v_t_46 sp4_h_r_11
+!B4[8],!B4[9],B4[10] routing sp4_v_t_46 sp4_h_r_4
+!B12[11],B12[13],!B13[12] routing sp4_v_t_46 sp4_v_b_11
+B0[11],!B0[13],B1[12] routing sp4_v_t_46 sp4_v_b_2
+!B9[8],B9[9],B9[10] routing sp4_v_t_46 sp4_v_b_7
+B6[8],B6[9],B6[10] routing sp4_v_t_47 sp4_h_l_41
+B14[8],B14[9],!B14[10] routing sp4_v_t_47 sp4_h_l_47
+!B12[8],B12[9],!B12[10] routing sp4_v_t_47 sp4_h_r_10
+!B4[5],B5[4],!B5[6] routing sp4_v_t_47 sp4_h_r_3
+B1[8],!B1[9],B1[10] routing sp4_v_t_47 sp4_v_b_1
+!B13[8],B13[9],!B13[10] routing sp4_v_t_47 sp4_v_b_10
+B8[4],B8[6],!B9[5] routing sp4_v_t_47 sp4_v_b_6
+"""
+database_ramt_8k_txt = """
+B9[7] ColBufCtrl 8k_glb_netwk_0
+B8[7] ColBufCtrl 8k_glb_netwk_1
+B11[7] ColBufCtrl 8k_glb_netwk_2
+B10[7] ColBufCtrl 8k_glb_netwk_3
+B13[7] ColBufCtrl 8k_glb_netwk_4
+B12[7] ColBufCtrl 8k_glb_netwk_5
+B15[7] ColBufCtrl 8k_glb_netwk_6
+B14[7] ColBufCtrl 8k_glb_netwk_7
+B0[0] NegClk
+B1[7] RamConfig CBIT_0
+B0[7] RamConfig CBIT_1
+B3[7] RamConfig CBIT_2
+B2[7] RamConfig CBIT_3
+B8[14],B9[14],!B9[15],!B9[16],B9[17] buffer bnl_op_0 lc_trk_g2_0
+B12[14],B13[14],!B13[15],!B13[16],B13[17] buffer bnl_op_0 lc_trk_g3_0
+!B8[15],!B8[16],B8[17],B8[18],B9[18] buffer bnl_op_1 lc_trk_g2_1
+!B12[15],!B12[16],B12[17],B12[18],B13[18] buffer bnl_op_1 lc_trk_g3_1
+B8[25],B9[22],!B9[23],!B9[24],B9[25] buffer bnl_op_2 lc_trk_g2_2
+B12[25],B13[22],!B13[23],!B13[24],B13[25] buffer bnl_op_2 lc_trk_g3_2
+B8[21],B8[22],!B8[23],!B8[24],B9[21] buffer bnl_op_3 lc_trk_g2_3
+B12[21],B12[22],!B12[23],!B12[24],B13[21] buffer bnl_op_3 lc_trk_g3_3
+B10[14],B11[14],!B11[15],!B11[16],B11[17] buffer bnl_op_4 lc_trk_g2_4
+B14[14],B15[14],!B15[15],!B15[16],B15[17] buffer bnl_op_4 lc_trk_g3_4
+!B10[15],!B10[16],B10[17],B10[18],B11[18] buffer bnl_op_5 lc_trk_g2_5
+!B14[15],!B14[16],B14[17],B14[18],B15[18] buffer bnl_op_5 lc_trk_g3_5
+B10[25],B11[22],!B11[23],!B11[24],B11[25] buffer bnl_op_6 lc_trk_g2_6
+B14[25],B15[22],!B15[23],!B15[24],B15[25] buffer bnl_op_6 lc_trk_g3_6
+B10[21],B10[22],!B10[23],!B10[24],B11[21] buffer bnl_op_7 lc_trk_g2_7
+B14[21],B14[22],!B14[23],!B14[24],B15[21] buffer bnl_op_7 lc_trk_g3_7
+B0[14],B1[14],!B1[15],!B1[16],B1[17] buffer bnr_op_0 lc_trk_g0_0
+B4[14],B5[14],!B5[15],!B5[16],B5[17] buffer bnr_op_0 lc_trk_g1_0
+!B0[15],!B0[16],B0[17],B0[18],B1[18] buffer bnr_op_1 lc_trk_g0_1
+!B4[15],!B4[16],B4[17],B4[18],B5[18] buffer bnr_op_1 lc_trk_g1_1
+B0[25],B1[22],!B1[23],!B1[24],B1[25] buffer bnr_op_2 lc_trk_g0_2
+B4[25],B5[22],!B5[23],!B5[24],B5[25] buffer bnr_op_2 lc_trk_g1_2
+B0[21],B0[22],!B0[23],!B0[24],B1[21] buffer bnr_op_3 lc_trk_g0_3
+B4[21],B4[22],!B4[23],!B4[24],B5[21] buffer bnr_op_3 lc_trk_g1_3
+B2[14],B3[14],!B3[15],!B3[16],B3[17] buffer bnr_op_4 lc_trk_g0_4
+B6[14],B7[14],!B7[15],!B7[16],B7[17] buffer bnr_op_4 lc_trk_g1_4
+!B2[15],!B2[16],B2[17],B2[18],B3[18] buffer bnr_op_5 lc_trk_g0_5
+!B6[15],!B6[16],B6[17],B6[18],B7[18] buffer bnr_op_5 lc_trk_g1_5
+B2[25],B3[22],!B3[23],!B3[24],B3[25] buffer bnr_op_6 lc_trk_g0_6
+B6[25],B7[22],!B7[23],!B7[24],B7[25] buffer bnr_op_6 lc_trk_g1_6
+B2[21],B2[22],!B2[23],!B2[24],B3[21] buffer bnr_op_7 lc_trk_g0_7
+B6[21],B6[22],!B6[23],!B6[24],B7[21] buffer bnr_op_7 lc_trk_g1_7
+!B2[14],!B3[14],!B3[15],!B3[16],B3[17] buffer glb2local_0 lc_trk_g0_4
+!B2[15],!B2[16],B2[17],!B2[18],!B3[18] buffer glb2local_1 lc_trk_g0_5
+!B2[25],B3[22],!B3[23],!B3[24],!B3[25] buffer glb2local_2 lc_trk_g0_6
+!B2[21],B2[22],!B2[23],!B2[24],!B3[21] buffer glb2local_3 lc_trk_g0_7
+!B6[0],B6[1],!B7[0],!B7[1] buffer glb_netwk_0 glb2local_0
+!B8[0],B8[1],!B9[0],!B9[1] buffer glb_netwk_0 glb2local_1
+!B10[0],B10[1],!B11[0],!B11[1] buffer glb_netwk_0 glb2local_2
+!B12[0],B12[1],!B13[0],!B13[1] buffer glb_netwk_0 glb2local_3
+!B2[0],!B2[1],B2[2],!B3[0],!B3[2] buffer glb_netwk_0 wire_bram/ram/WCLK
+!B14[0],B14[1],!B15[0],!B15[1] buffer glb_netwk_0 wire_bram/ram/WE
+!B6[0],B6[1],B7[0],!B7[1] buffer glb_netwk_1 glb2local_0
+!B8[0],B8[1],B9[0],!B9[1] buffer glb_netwk_1 glb2local_1
+!B10[0],B10[1],B11[0],!B11[1] buffer glb_netwk_1 glb2local_2
+!B12[0],B12[1],B13[0],!B13[1] buffer glb_netwk_1 glb2local_3
+!B2[0],!B2[1],B2[2],B3[0],!B3[2] buffer glb_netwk_1 wire_bram/ram/WCLK
+!B4[0],B4[1],!B5[0],!B5[1] buffer glb_netwk_1 wire_bram/ram/WCLKE
+B6[0],B6[1],!B7[0],!B7[1] buffer glb_netwk_2 glb2local_0
+B8[0],B8[1],!B9[0],!B9[1] buffer glb_netwk_2 glb2local_1
+B10[0],B10[1],!B11[0],!B11[1] buffer glb_netwk_2 glb2local_2
+B12[0],B12[1],!B13[0],!B13[1] buffer glb_netwk_2 glb2local_3
+B2[0],!B2[1],B2[2],!B3[0],!B3[2] buffer glb_netwk_2 wire_bram/ram/WCLK
+!B14[0],B14[1],B15[0],!B15[1] buffer glb_netwk_2 wire_bram/ram/WE
+B6[0],B6[1],B7[0],!B7[1] buffer glb_netwk_3 glb2local_0
+B8[0],B8[1],B9[0],!B9[1] buffer glb_netwk_3 glb2local_1
+B10[0],B10[1],B11[0],!B11[1] buffer glb_netwk_3 glb2local_2
+B12[0],B12[1],B13[0],!B13[1] buffer glb_netwk_3 glb2local_3
+B2[0],!B2[1],B2[2],B3[0],!B3[2] buffer glb_netwk_3 wire_bram/ram/WCLK
+!B4[0],B4[1],B5[0],!B5[1] buffer glb_netwk_3 wire_bram/ram/WCLKE
+!B6[0],B6[1],!B7[0],B7[1] buffer glb_netwk_4 glb2local_0
+!B8[0],B8[1],!B9[0],B9[1] buffer glb_netwk_4 glb2local_1
+!B10[0],B10[1],!B11[0],B11[1] buffer glb_netwk_4 glb2local_2
+!B12[0],B12[1],!B13[0],B13[1] buffer glb_netwk_4 glb2local_3
+!B2[0],B2[1],B2[2],!B3[0],!B3[2] buffer glb_netwk_4 wire_bram/ram/WCLK
+B14[0],B14[1],!B15[0],!B15[1] buffer glb_netwk_4 wire_bram/ram/WE
+!B6[0],B6[1],B7[0],B7[1] buffer glb_netwk_5 glb2local_0
+!B8[0],B8[1],B9[0],B9[1] buffer glb_netwk_5 glb2local_1
+!B10[0],B10[1],B11[0],B11[1] buffer glb_netwk_5 glb2local_2
+!B12[0],B12[1],B13[0],B13[1] buffer glb_netwk_5 glb2local_3
+!B2[0],B2[1],B2[2],B3[0],!B3[2] buffer glb_netwk_5 wire_bram/ram/WCLK
+B4[0],B4[1],!B5[0],!B5[1] buffer glb_netwk_5 wire_bram/ram/WCLKE
+B6[0],B6[1],!B7[0],B7[1] buffer glb_netwk_6 glb2local_0
+B8[0],B8[1],!B9[0],B9[1] buffer glb_netwk_6 glb2local_1
+B10[0],B10[1],!B11[0],B11[1] buffer glb_netwk_6 glb2local_2
+B12[0],B12[1],!B13[0],B13[1] buffer glb_netwk_6 glb2local_3
+B2[0],B2[1],B2[2],!B3[0],!B3[2] buffer glb_netwk_6 wire_bram/ram/WCLK
+B14[0],B14[1],B15[0],!B15[1] buffer glb_netwk_6 wire_bram/ram/WE
+B6[0],B6[1],B7[0],B7[1] buffer glb_netwk_7 glb2local_0
+B8[0],B8[1],B9[0],B9[1] buffer glb_netwk_7 glb2local_1
+B10[0],B10[1],B11[0],B11[1] buffer glb_netwk_7 glb2local_2
+B12[0],B12[1],B13[0],B13[1] buffer glb_netwk_7 glb2local_3
+B2[0],B2[1],B2[2],B3[0],!B3[2] buffer glb_netwk_7 wire_bram/ram/WCLK
+B4[0],B4[1],B5[0],!B5[1] buffer glb_netwk_7 wire_bram/ram/WCLKE
+!B0[26],!B1[26],!B1[27],!B1[28],B1[29] buffer lc_trk_g0_0 input0_0
+!B4[26],!B5[26],!B5[27],!B5[28],B5[29] buffer lc_trk_g0_0 input0_2
+!B8[26],!B9[26],!B9[27],!B9[28],B9[29] buffer lc_trk_g0_0 input0_4
+!B12[26],!B13[26],!B13[27],!B13[28],B13[29] buffer lc_trk_g0_0 input0_6
+!B12[35],B13[32],!B13[33],!B13[34],!B13[35] buffer lc_trk_g0_0 input2_6
+!B2[0],!B2[1],B2[2],!B3[0],B3[2] buffer lc_trk_g0_0 wire_bram/ram/WCLK
+!B14[27],!B14[28],B14[29],!B14[30],!B15[30] buffer lc_trk_g0_0 wire_bram/ram/WDATA_0
+!B10[27],!B10[28],B10[29],!B10[30],!B11[30] buffer lc_trk_g0_0 wire_bram/ram/WDATA_2
+!B6[27],!B6[28],B6[29],!B6[30],!B7[30] buffer lc_trk_g0_0 wire_bram/ram/WDATA_4
+!B2[27],!B2[28],B2[29],!B2[30],!B3[30] buffer lc_trk_g0_0 wire_bram/ram/WDATA_6
+!B2[26],!B3[26],!B3[27],!B3[28],B3[29] buffer lc_trk_g0_1 input0_1
+!B6[26],!B7[26],!B7[27],!B7[28],B7[29] buffer lc_trk_g0_1 input0_3
+!B10[26],!B11[26],!B11[27],!B11[28],B11[29] buffer lc_trk_g0_1 input0_5
+!B14[26],!B15[26],!B15[27],!B15[28],B15[29] buffer lc_trk_g0_1 input0_7
+!B10[35],B11[32],!B11[33],!B11[34],!B11[35] buffer lc_trk_g0_1 input2_5
+!B14[35],B15[32],!B15[33],!B15[34],!B15[35] buffer lc_trk_g0_1 input2_7
+!B12[27],!B12[28],B12[29],!B12[30],!B13[30] buffer lc_trk_g0_1 wire_bram/ram/WDATA_1
+!B8[27],!B8[28],B8[29],!B8[30],!B9[30] buffer lc_trk_g0_1 wire_bram/ram/WDATA_3
+!B4[27],!B4[28],B4[29],!B4[30],!B5[30] buffer lc_trk_g0_1 wire_bram/ram/WDATA_5
+!B0[27],!B0[28],B0[29],!B0[30],!B1[30] buffer lc_trk_g0_1 wire_bram/ram/WDATA_7
+!B0[26],B1[26],!B1[27],!B1[28],B1[29] buffer lc_trk_g0_2 input0_0
+!B4[26],B5[26],!B5[27],!B5[28],B5[29] buffer lc_trk_g0_2 input0_2
+!B8[26],B9[26],!B9[27],!B9[28],B9[29] buffer lc_trk_g0_2 input0_4
+!B12[26],B13[26],!B13[27],!B13[28],B13[29] buffer lc_trk_g0_2 input0_6
+!B12[35],B13[32],!B13[33],!B13[34],B13[35] buffer lc_trk_g0_2 input2_6
+!B14[31],B14[32],!B14[33],!B14[34],B15[31] buffer lc_trk_g0_2 wire_bram/ram/MASK_0
+!B10[31],B10[32],!B10[33],!B10[34],B11[31] buffer lc_trk_g0_2 wire_bram/ram/MASK_2
+!B6[31],B6[32],!B6[33],!B6[34],B7[31] buffer lc_trk_g0_2 wire_bram/ram/MASK_4
+!B2[31],B2[32],!B2[33],!B2[34],B3[31] buffer lc_trk_g0_2 wire_bram/ram/MASK_6
+!B4[0],B4[1],!B5[0],B5[1] buffer lc_trk_g0_2 wire_bram/ram/WCLKE
+!B14[27],!B14[28],B14[29],!B14[30],B15[30] buffer lc_trk_g0_2 wire_bram/ram/WDATA_0
+!B10[27],!B10[28],B10[29],!B10[30],B11[30] buffer lc_trk_g0_2 wire_bram/ram/WDATA_2
+!B6[27],!B6[28],B6[29],!B6[30],B7[30] buffer lc_trk_g0_2 wire_bram/ram/WDATA_4
+!B2[27],!B2[28],B2[29],!B2[30],B3[30] buffer lc_trk_g0_2 wire_bram/ram/WDATA_6
+!B2[26],B3[26],!B3[27],!B3[28],B3[29] buffer lc_trk_g0_3 input0_1
+!B6[26],B7[26],!B7[27],!B7[28],B7[29] buffer lc_trk_g0_3 input0_3
+!B10[26],B11[26],!B11[27],!B11[28],B11[29] buffer lc_trk_g0_3 input0_5
+!B14[26],B15[26],!B15[27],!B15[28],B15[29] buffer lc_trk_g0_3 input0_7
+!B10[35],B11[32],!B11[33],!B11[34],B11[35] buffer lc_trk_g0_3 input2_5
+!B14[35],B15[32],!B15[33],!B15[34],B15[35] buffer lc_trk_g0_3 input2_7
+!B12[31],B12[32],!B12[33],!B12[34],B13[31] buffer lc_trk_g0_3 wire_bram/ram/MASK_1
+!B8[31],B8[32],!B8[33],!B8[34],B9[31] buffer lc_trk_g0_3 wire_bram/ram/MASK_3
+!B4[31],B4[32],!B4[33],!B4[34],B5[31] buffer lc_trk_g0_3 wire_bram/ram/MASK_5
+!B0[31],B0[32],!B0[33],!B0[34],B1[31] buffer lc_trk_g0_3 wire_bram/ram/MASK_7
+!B12[27],!B12[28],B12[29],!B12[30],B13[30] buffer lc_trk_g0_3 wire_bram/ram/WDATA_1
+!B8[27],!B8[28],B8[29],!B8[30],B9[30] buffer lc_trk_g0_3 wire_bram/ram/WDATA_3
+!B4[27],!B4[28],B4[29],!B4[30],B5[30] buffer lc_trk_g0_3 wire_bram/ram/WDATA_5
+!B0[27],!B0[28],B0[29],!B0[30],B1[30] buffer lc_trk_g0_3 wire_bram/ram/WDATA_7
+B0[26],!B1[26],!B1[27],!B1[28],B1[29] buffer lc_trk_g0_4 input0_0
+B4[26],!B5[26],!B5[27],!B5[28],B5[29] buffer lc_trk_g0_4 input0_2
+B8[26],!B9[26],!B9[27],!B9[28],B9[29] buffer lc_trk_g0_4 input0_4
+B12[26],!B13[26],!B13[27],!B13[28],B13[29] buffer lc_trk_g0_4 input0_6
+B12[35],B13[32],!B13[33],!B13[34],!B13[35] buffer lc_trk_g0_4 input2_6
+B14[31],B14[32],!B14[33],!B14[34],!B15[31] buffer lc_trk_g0_4 wire_bram/ram/MASK_0
+B10[31],B10[32],!B10[33],!B10[34],!B11[31] buffer lc_trk_g0_4 wire_bram/ram/MASK_2
+B6[31],B6[32],!B6[33],!B6[34],!B7[31] buffer lc_trk_g0_4 wire_bram/ram/MASK_4
+B2[31],B2[32],!B2[33],!B2[34],!B3[31] buffer lc_trk_g0_4 wire_bram/ram/MASK_6
+!B14[27],!B14[28],B14[29],B14[30],!B15[30] buffer lc_trk_g0_4 wire_bram/ram/WDATA_0
+!B10[27],!B10[28],B10[29],B10[30],!B11[30] buffer lc_trk_g0_4 wire_bram/ram/WDATA_2
+!B6[27],!B6[28],B6[29],B6[30],!B7[30] buffer lc_trk_g0_4 wire_bram/ram/WDATA_4
+!B2[27],!B2[28],B2[29],B2[30],!B3[30] buffer lc_trk_g0_4 wire_bram/ram/WDATA_6
+!B14[0],B14[1],!B15[0],B15[1] buffer lc_trk_g0_4 wire_bram/ram/WE
+B2[26],!B3[26],!B3[27],!B3[28],B3[29] buffer lc_trk_g0_5 input0_1
+B6[26],!B7[26],!B7[27],!B7[28],B7[29] buffer lc_trk_g0_5 input0_3
+B10[26],!B11[26],!B11[27],!B11[28],B11[29] buffer lc_trk_g0_5 input0_5
+B14[26],!B15[26],!B15[27],!B15[28],B15[29] buffer lc_trk_g0_5 input0_7
+B10[35],B11[32],!B11[33],!B11[34],!B11[35] buffer lc_trk_g0_5 input2_5
+B14[35],B15[32],!B15[33],!B15[34],!B15[35] buffer lc_trk_g0_5 input2_7
+B12[31],B12[32],!B12[33],!B12[34],!B13[31] buffer lc_trk_g0_5 wire_bram/ram/MASK_1
+B8[31],B8[32],!B8[33],!B8[34],!B9[31] buffer lc_trk_g0_5 wire_bram/ram/MASK_3
+B4[31],B4[32],!B4[33],!B4[34],!B5[31] buffer lc_trk_g0_5 wire_bram/ram/MASK_5
+B0[31],B0[32],!B0[33],!B0[34],!B1[31] buffer lc_trk_g0_5 wire_bram/ram/MASK_7
+!B12[27],!B12[28],B12[29],B12[30],!B13[30] buffer lc_trk_g0_5 wire_bram/ram/WDATA_1
+!B8[27],!B8[28],B8[29],B8[30],!B9[30] buffer lc_trk_g0_5 wire_bram/ram/WDATA_3
+!B4[27],!B4[28],B4[29],B4[30],!B5[30] buffer lc_trk_g0_5 wire_bram/ram/WDATA_5
+!B0[27],!B0[28],B0[29],B0[30],!B1[30] buffer lc_trk_g0_5 wire_bram/ram/WDATA_7
+B0[26],B1[26],!B1[27],!B1[28],B1[29] buffer lc_trk_g0_6 input0_0
+B4[26],B5[26],!B5[27],!B5[28],B5[29] buffer lc_trk_g0_6 input0_2
+B8[26],B9[26],!B9[27],!B9[28],B9[29] buffer lc_trk_g0_6 input0_4
+B12[26],B13[26],!B13[27],!B13[28],B13[29] buffer lc_trk_g0_6 input0_6
+B12[35],B13[32],!B13[33],!B13[34],B13[35] buffer lc_trk_g0_6 input2_6
+B14[31],B14[32],!B14[33],!B14[34],B15[31] buffer lc_trk_g0_6 wire_bram/ram/MASK_0
+B10[31],B10[32],!B10[33],!B10[34],B11[31] buffer lc_trk_g0_6 wire_bram/ram/MASK_2
+B6[31],B6[32],!B6[33],!B6[34],B7[31] buffer lc_trk_g0_6 wire_bram/ram/MASK_4
+B2[31],B2[32],!B2[33],!B2[34],B3[31] buffer lc_trk_g0_6 wire_bram/ram/MASK_6
+!B14[27],!B14[28],B14[29],B14[30],B15[30] buffer lc_trk_g0_6 wire_bram/ram/WDATA_0
+!B10[27],!B10[28],B10[29],B10[30],B11[30] buffer lc_trk_g0_6 wire_bram/ram/WDATA_2
+!B6[27],!B6[28],B6[29],B6[30],B7[30] buffer lc_trk_g0_6 wire_bram/ram/WDATA_4
+!B2[27],!B2[28],B2[29],B2[30],B3[30] buffer lc_trk_g0_6 wire_bram/ram/WDATA_6
+B2[26],B3[26],!B3[27],!B3[28],B3[29] buffer lc_trk_g0_7 input0_1
+B6[26],B7[26],!B7[27],!B7[28],B7[29] buffer lc_trk_g0_7 input0_3
+B10[26],B11[26],!B11[27],!B11[28],B11[29] buffer lc_trk_g0_7 input0_5
+B14[26],B15[26],!B15[27],!B15[28],B15[29] buffer lc_trk_g0_7 input0_7
+B10[35],B11[32],!B11[33],!B11[34],B11[35] buffer lc_trk_g0_7 input2_5
+B14[35],B15[32],!B15[33],!B15[34],B15[35] buffer lc_trk_g0_7 input2_7
+B12[31],B12[32],!B12[33],!B12[34],B13[31] buffer lc_trk_g0_7 wire_bram/ram/MASK_1
+B8[31],B8[32],!B8[33],!B8[34],B9[31] buffer lc_trk_g0_7 wire_bram/ram/MASK_3
+B4[31],B4[32],!B4[33],!B4[34],B5[31] buffer lc_trk_g0_7 wire_bram/ram/MASK_5
+B0[31],B0[32],!B0[33],!B0[34],B1[31] buffer lc_trk_g0_7 wire_bram/ram/MASK_7
+!B12[27],!B12[28],B12[29],B12[30],B13[30] buffer lc_trk_g0_7 wire_bram/ram/WDATA_1
+!B8[27],!B8[28],B8[29],B8[30],B9[30] buffer lc_trk_g0_7 wire_bram/ram/WDATA_3
+!B4[27],!B4[28],B4[29],B4[30],B5[30] buffer lc_trk_g0_7 wire_bram/ram/WDATA_5
+!B0[27],!B0[28],B0[29],B0[30],B1[30] buffer lc_trk_g0_7 wire_bram/ram/WDATA_7
+!B2[26],!B3[26],B3[27],!B3[28],B3[29] buffer lc_trk_g1_0 input0_1
+!B6[26],!B7[26],B7[27],!B7[28],B7[29] buffer lc_trk_g1_0 input0_3
+!B10[26],!B11[26],B11[27],!B11[28],B11[29] buffer lc_trk_g1_0 input0_5
+!B14[26],!B15[26],B15[27],!B15[28],B15[29] buffer lc_trk_g1_0 input0_7
+!B10[35],B11[32],!B11[33],B11[34],!B11[35] buffer lc_trk_g1_0 input2_5
+!B14[35],B15[32],!B15[33],B15[34],!B15[35] buffer lc_trk_g1_0 input2_7
+!B12[31],B12[32],!B12[33],B12[34],!B13[31] buffer lc_trk_g1_0 wire_bram/ram/MASK_1
+!B8[31],B8[32],!B8[33],B8[34],!B9[31] buffer lc_trk_g1_0 wire_bram/ram/MASK_3
+!B4[31],B4[32],!B4[33],B4[34],!B5[31] buffer lc_trk_g1_0 wire_bram/ram/MASK_5
+!B0[31],B0[32],!B0[33],B0[34],!B1[31] buffer lc_trk_g1_0 wire_bram/ram/MASK_7
+B12[27],!B12[28],B12[29],!B12[30],!B13[30] buffer lc_trk_g1_0 wire_bram/ram/WDATA_1
+B8[27],!B8[28],B8[29],!B8[30],!B9[30] buffer lc_trk_g1_0 wire_bram/ram/WDATA_3
+B4[27],!B4[28],B4[29],!B4[30],!B5[30] buffer lc_trk_g1_0 wire_bram/ram/WDATA_5
+B0[27],!B0[28],B0[29],!B0[30],!B1[30] buffer lc_trk_g1_0 wire_bram/ram/WDATA_7
+!B0[26],!B1[26],B1[27],!B1[28],B1[29] buffer lc_trk_g1_1 input0_0
+!B4[26],!B5[26],B5[27],!B5[28],B5[29] buffer lc_trk_g1_1 input0_2
+!B8[26],!B9[26],B9[27],!B9[28],B9[29] buffer lc_trk_g1_1 input0_4
+!B12[26],!B13[26],B13[27],!B13[28],B13[29] buffer lc_trk_g1_1 input0_6
+!B12[35],B13[32],!B13[33],B13[34],!B13[35] buffer lc_trk_g1_1 input2_6
+!B14[31],B14[32],!B14[33],B14[34],!B15[31] buffer lc_trk_g1_1 wire_bram/ram/MASK_0
+!B10[31],B10[32],!B10[33],B10[34],!B11[31] buffer lc_trk_g1_1 wire_bram/ram/MASK_2
+!B6[31],B6[32],!B6[33],B6[34],!B7[31] buffer lc_trk_g1_1 wire_bram/ram/MASK_4
+!B2[31],B2[32],!B2[33],B2[34],!B3[31] buffer lc_trk_g1_1 wire_bram/ram/MASK_6
+!B2[0],!B2[1],B2[2],B3[0],B3[2] buffer lc_trk_g1_1 wire_bram/ram/WCLK
+B14[27],!B14[28],B14[29],!B14[30],!B15[30] buffer lc_trk_g1_1 wire_bram/ram/WDATA_0
+B10[27],!B10[28],B10[29],!B10[30],!B11[30] buffer lc_trk_g1_1 wire_bram/ram/WDATA_2
+B6[27],!B6[28],B6[29],!B6[30],!B7[30] buffer lc_trk_g1_1 wire_bram/ram/WDATA_4
+B2[27],!B2[28],B2[29],!B2[30],!B3[30] buffer lc_trk_g1_1 wire_bram/ram/WDATA_6
+!B2[26],B3[26],B3[27],!B3[28],B3[29] buffer lc_trk_g1_2 input0_1
+!B6[26],B7[26],B7[27],!B7[28],B7[29] buffer lc_trk_g1_2 input0_3
+!B10[26],B11[26],B11[27],!B11[28],B11[29] buffer lc_trk_g1_2 input0_5
+!B14[26],B15[26],B15[27],!B15[28],B15[29] buffer lc_trk_g1_2 input0_7
+!B10[35],B11[32],!B11[33],B11[34],B11[35] buffer lc_trk_g1_2 input2_5
+!B14[35],B15[32],!B15[33],B15[34],B15[35] buffer lc_trk_g1_2 input2_7
+!B12[31],B12[32],!B12[33],B12[34],B13[31] buffer lc_trk_g1_2 wire_bram/ram/MASK_1
+!B8[31],B8[32],!B8[33],B8[34],B9[31] buffer lc_trk_g1_2 wire_bram/ram/MASK_3
+!B4[31],B4[32],!B4[33],B4[34],B5[31] buffer lc_trk_g1_2 wire_bram/ram/MASK_5
+!B0[31],B0[32],!B0[33],B0[34],B1[31] buffer lc_trk_g1_2 wire_bram/ram/MASK_7
+B12[27],!B12[28],B12[29],!B12[30],B13[30] buffer lc_trk_g1_2 wire_bram/ram/WDATA_1
+B8[27],!B8[28],B8[29],!B8[30],B9[30] buffer lc_trk_g1_2 wire_bram/ram/WDATA_3
+B4[27],!B4[28],B4[29],!B4[30],B5[30] buffer lc_trk_g1_2 wire_bram/ram/WDATA_5
+B0[27],!B0[28],B0[29],!B0[30],B1[30] buffer lc_trk_g1_2 wire_bram/ram/WDATA_7
+!B0[26],B1[26],B1[27],!B1[28],B1[29] buffer lc_trk_g1_3 input0_0
+!B4[26],B5[26],B5[27],!B5[28],B5[29] buffer lc_trk_g1_3 input0_2
+!B8[26],B9[26],B9[27],!B9[28],B9[29] buffer lc_trk_g1_3 input0_4
+!B12[26],B13[26],B13[27],!B13[28],B13[29] buffer lc_trk_g1_3 input0_6
+!B12[35],B13[32],!B13[33],B13[34],B13[35] buffer lc_trk_g1_3 input2_6
+!B14[31],B14[32],!B14[33],B14[34],B15[31] buffer lc_trk_g1_3 wire_bram/ram/MASK_0
+!B10[31],B10[32],!B10[33],B10[34],B11[31] buffer lc_trk_g1_3 wire_bram/ram/MASK_2
+!B6[31],B6[32],!B6[33],B6[34],B7[31] buffer lc_trk_g1_3 wire_bram/ram/MASK_4
+!B2[31],B2[32],!B2[33],B2[34],B3[31] buffer lc_trk_g1_3 wire_bram/ram/MASK_6
+!B4[0],B4[1],B5[0],B5[1] buffer lc_trk_g1_3 wire_bram/ram/WCLKE
+B14[27],!B14[28],B14[29],!B14[30],B15[30] buffer lc_trk_g1_3 wire_bram/ram/WDATA_0
+B10[27],!B10[28],B10[29],!B10[30],B11[30] buffer lc_trk_g1_3 wire_bram/ram/WDATA_2
+B6[27],!B6[28],B6[29],!B6[30],B7[30] buffer lc_trk_g1_3 wire_bram/ram/WDATA_4
+B2[27],!B2[28],B2[29],!B2[30],B3[30] buffer lc_trk_g1_3 wire_bram/ram/WDATA_6
+B2[26],!B3[26],B3[27],!B3[28],B3[29] buffer lc_trk_g1_4 input0_1
+B6[26],!B7[26],B7[27],!B7[28],B7[29] buffer lc_trk_g1_4 input0_3
+B10[26],!B11[26],B11[27],!B11[28],B11[29] buffer lc_trk_g1_4 input0_5
+B14[26],!B15[26],B15[27],!B15[28],B15[29] buffer lc_trk_g1_4 input0_7
+B10[35],B11[32],!B11[33],B11[34],!B11[35] buffer lc_trk_g1_4 input2_5
+B14[35],B15[32],!B15[33],B15[34],!B15[35] buffer lc_trk_g1_4 input2_7
+B12[31],B12[32],!B12[33],B12[34],!B13[31] buffer lc_trk_g1_4 wire_bram/ram/MASK_1
+B8[31],B8[32],!B8[33],B8[34],!B9[31] buffer lc_trk_g1_4 wire_bram/ram/MASK_3
+B4[31],B4[32],!B4[33],B4[34],!B5[31] buffer lc_trk_g1_4 wire_bram/ram/MASK_5
+B0[31],B0[32],!B0[33],B0[34],!B1[31] buffer lc_trk_g1_4 wire_bram/ram/MASK_7
+B12[27],!B12[28],B12[29],B12[30],!B13[30] buffer lc_trk_g1_4 wire_bram/ram/WDATA_1
+B8[27],!B8[28],B8[29],B8[30],!B9[30] buffer lc_trk_g1_4 wire_bram/ram/WDATA_3
+B4[27],!B4[28],B4[29],B4[30],!B5[30] buffer lc_trk_g1_4 wire_bram/ram/WDATA_5
+B0[27],!B0[28],B0[29],B0[30],!B1[30] buffer lc_trk_g1_4 wire_bram/ram/WDATA_7
+B0[26],!B1[26],B1[27],!B1[28],B1[29] buffer lc_trk_g1_5 input0_0
+B4[26],!B5[26],B5[27],!B5[28],B5[29] buffer lc_trk_g1_5 input0_2
+B8[26],!B9[26],B9[27],!B9[28],B9[29] buffer lc_trk_g1_5 input0_4
+B12[26],!B13[26],B13[27],!B13[28],B13[29] buffer lc_trk_g1_5 input0_6
+B12[35],B13[32],!B13[33],B13[34],!B13[35] buffer lc_trk_g1_5 input2_6
+B14[31],B14[32],!B14[33],B14[34],!B15[31] buffer lc_trk_g1_5 wire_bram/ram/MASK_0
+B10[31],B10[32],!B10[33],B10[34],!B11[31] buffer lc_trk_g1_5 wire_bram/ram/MASK_2
+B6[31],B6[32],!B6[33],B6[34],!B7[31] buffer lc_trk_g1_5 wire_bram/ram/MASK_4
+B2[31],B2[32],!B2[33],B2[34],!B3[31] buffer lc_trk_g1_5 wire_bram/ram/MASK_6
+B14[27],!B14[28],B14[29],B14[30],!B15[30] buffer lc_trk_g1_5 wire_bram/ram/WDATA_0
+B10[27],!B10[28],B10[29],B10[30],!B11[30] buffer lc_trk_g1_5 wire_bram/ram/WDATA_2
+B6[27],!B6[28],B6[29],B6[30],!B7[30] buffer lc_trk_g1_5 wire_bram/ram/WDATA_4
+B2[27],!B2[28],B2[29],B2[30],!B3[30] buffer lc_trk_g1_5 wire_bram/ram/WDATA_6
+!B14[0],B14[1],B15[0],B15[1] buffer lc_trk_g1_5 wire_bram/ram/WE
+B2[26],B3[26],B3[27],!B3[28],B3[29] buffer lc_trk_g1_6 input0_1
+B6[26],B7[26],B7[27],!B7[28],B7[29] buffer lc_trk_g1_6 input0_3
+B10[26],B11[26],B11[27],!B11[28],B11[29] buffer lc_trk_g1_6 input0_5
+B14[26],B15[26],B15[27],!B15[28],B15[29] buffer lc_trk_g1_6 input0_7
+B10[35],B11[32],!B11[33],B11[34],B11[35] buffer lc_trk_g1_6 input2_5
+B14[35],B15[32],!B15[33],B15[34],B15[35] buffer lc_trk_g1_6 input2_7
+B12[31],B12[32],!B12[33],B12[34],B13[31] buffer lc_trk_g1_6 wire_bram/ram/MASK_1
+B8[31],B8[32],!B8[33],B8[34],B9[31] buffer lc_trk_g1_6 wire_bram/ram/MASK_3
+B4[31],B4[32],!B4[33],B4[34],B5[31] buffer lc_trk_g1_6 wire_bram/ram/MASK_5
+B0[31],B0[32],!B0[33],B0[34],B1[31] buffer lc_trk_g1_6 wire_bram/ram/MASK_7
+B12[27],!B12[28],B12[29],B12[30],B13[30] buffer lc_trk_g1_6 wire_bram/ram/WDATA_1
+B8[27],!B8[28],B8[29],B8[30],B9[30] buffer lc_trk_g1_6 wire_bram/ram/WDATA_3
+B4[27],!B4[28],B4[29],B4[30],B5[30] buffer lc_trk_g1_6 wire_bram/ram/WDATA_5
+B0[27],!B0[28],B0[29],B0[30],B1[30] buffer lc_trk_g1_6 wire_bram/ram/WDATA_7
+B0[26],B1[26],B1[27],!B1[28],B1[29] buffer lc_trk_g1_7 input0_0
+B4[26],B5[26],B5[27],!B5[28],B5[29] buffer lc_trk_g1_7 input0_2
+B8[26],B9[26],B9[27],!B9[28],B9[29] buffer lc_trk_g1_7 input0_4
+B12[26],B13[26],B13[27],!B13[28],B13[29] buffer lc_trk_g1_7 input0_6
+B12[35],B13[32],!B13[33],B13[34],B13[35] buffer lc_trk_g1_7 input2_6
+B14[31],B14[32],!B14[33],B14[34],B15[31] buffer lc_trk_g1_7 wire_bram/ram/MASK_0
+B10[31],B10[32],!B10[33],B10[34],B11[31] buffer lc_trk_g1_7 wire_bram/ram/MASK_2
+B6[31],B6[32],!B6[33],B6[34],B7[31] buffer lc_trk_g1_7 wire_bram/ram/MASK_4
+B2[31],B2[32],!B2[33],B2[34],B3[31] buffer lc_trk_g1_7 wire_bram/ram/MASK_6
+B14[27],!B14[28],B14[29],B14[30],B15[30] buffer lc_trk_g1_7 wire_bram/ram/WDATA_0
+B10[27],!B10[28],B10[29],B10[30],B11[30] buffer lc_trk_g1_7 wire_bram/ram/WDATA_2
+B6[27],!B6[28],B6[29],B6[30],B7[30] buffer lc_trk_g1_7 wire_bram/ram/WDATA_4
+B2[27],!B2[28],B2[29],B2[30],B3[30] buffer lc_trk_g1_7 wire_bram/ram/WDATA_6
+!B0[26],!B1[26],!B1[27],B1[28],B1[29] buffer lc_trk_g2_0 input0_0
+!B4[26],!B5[26],!B5[27],B5[28],B5[29] buffer lc_trk_g2_0 input0_2
+!B8[26],!B9[26],!B9[27],B9[28],B9[29] buffer lc_trk_g2_0 input0_4
+!B12[26],!B13[26],!B13[27],B13[28],B13[29] buffer lc_trk_g2_0 input0_6
+!B12[35],B13[32],B13[33],!B13[34],!B13[35] buffer lc_trk_g2_0 input2_6
+!B14[31],B14[32],B14[33],!B14[34],!B15[31] buffer lc_trk_g2_0 wire_bram/ram/MASK_0
+!B10[31],B10[32],B10[33],!B10[34],!B11[31] buffer lc_trk_g2_0 wire_bram/ram/MASK_2
+!B6[31],B6[32],B6[33],!B6[34],!B7[31] buffer lc_trk_g2_0 wire_bram/ram/MASK_4
+!B2[31],B2[32],B2[33],!B2[34],!B3[31] buffer lc_trk_g2_0 wire_bram/ram/MASK_6
+B2[0],!B2[1],B2[2],!B3[0],B3[2] buffer lc_trk_g2_0 wire_bram/ram/WCLK
+!B14[27],B14[28],B14[29],!B14[30],!B15[30] buffer lc_trk_g2_0 wire_bram/ram/WDATA_0
+!B10[27],B10[28],B10[29],!B10[30],!B11[30] buffer lc_trk_g2_0 wire_bram/ram/WDATA_2
+!B6[27],B6[28],B6[29],!B6[30],!B7[30] buffer lc_trk_g2_0 wire_bram/ram/WDATA_4
+!B2[27],B2[28],B2[29],!B2[30],!B3[30] buffer lc_trk_g2_0 wire_bram/ram/WDATA_6
+!B2[26],!B3[26],!B3[27],B3[28],B3[29] buffer lc_trk_g2_1 input0_1
+!B6[26],!B7[26],!B7[27],B7[28],B7[29] buffer lc_trk_g2_1 input0_3
+!B10[26],!B11[26],!B11[27],B11[28],B11[29] buffer lc_trk_g2_1 input0_5
+!B14[26],!B15[26],!B15[27],B15[28],B15[29] buffer lc_trk_g2_1 input0_7
+!B10[35],B11[32],B11[33],!B11[34],!B11[35] buffer lc_trk_g2_1 input2_5
+!B14[35],B15[32],B15[33],!B15[34],!B15[35] buffer lc_trk_g2_1 input2_7
+!B12[31],B12[32],B12[33],!B12[34],!B13[31] buffer lc_trk_g2_1 wire_bram/ram/MASK_1
+!B8[31],B8[32],B8[33],!B8[34],!B9[31] buffer lc_trk_g2_1 wire_bram/ram/MASK_3
+!B4[31],B4[32],B4[33],!B4[34],!B5[31] buffer lc_trk_g2_1 wire_bram/ram/MASK_5
+!B0[31],B0[32],B0[33],!B0[34],!B1[31] buffer lc_trk_g2_1 wire_bram/ram/MASK_7
+!B12[27],B12[28],B12[29],!B12[30],!B13[30] buffer lc_trk_g2_1 wire_bram/ram/WDATA_1
+!B8[27],B8[28],B8[29],!B8[30],!B9[30] buffer lc_trk_g2_1 wire_bram/ram/WDATA_3
+!B4[27],B4[28],B4[29],!B4[30],!B5[30] buffer lc_trk_g2_1 wire_bram/ram/WDATA_5
+!B0[27],B0[28],B0[29],!B0[30],!B1[30] buffer lc_trk_g2_1 wire_bram/ram/WDATA_7
+!B0[26],B1[26],!B1[27],B1[28],B1[29] buffer lc_trk_g2_2 input0_0
+!B4[26],B5[26],!B5[27],B5[28],B5[29] buffer lc_trk_g2_2 input0_2
+!B8[26],B9[26],!B9[27],B9[28],B9[29] buffer lc_trk_g2_2 input0_4
+!B12[26],B13[26],!B13[27],B13[28],B13[29] buffer lc_trk_g2_2 input0_6
+!B12[35],B13[32],B13[33],!B13[34],B13[35] buffer lc_trk_g2_2 input2_6
+!B14[31],B14[32],B14[33],!B14[34],B15[31] buffer lc_trk_g2_2 wire_bram/ram/MASK_0
+!B10[31],B10[32],B10[33],!B10[34],B11[31] buffer lc_trk_g2_2 wire_bram/ram/MASK_2
+!B6[31],B6[32],B6[33],!B6[34],B7[31] buffer lc_trk_g2_2 wire_bram/ram/MASK_4
+!B2[31],B2[32],B2[33],!B2[34],B3[31] buffer lc_trk_g2_2 wire_bram/ram/MASK_6
+B4[0],B4[1],!B5[0],B5[1] buffer lc_trk_g2_2 wire_bram/ram/WCLKE
+!B14[27],B14[28],B14[29],!B14[30],B15[30] buffer lc_trk_g2_2 wire_bram/ram/WDATA_0
+!B10[27],B10[28],B10[29],!B10[30],B11[30] buffer lc_trk_g2_2 wire_bram/ram/WDATA_2
+!B6[27],B6[28],B6[29],!B6[30],B7[30] buffer lc_trk_g2_2 wire_bram/ram/WDATA_4
+!B2[27],B2[28],B2[29],!B2[30],B3[30] buffer lc_trk_g2_2 wire_bram/ram/WDATA_6
+!B2[26],B3[26],!B3[27],B3[28],B3[29] buffer lc_trk_g2_3 input0_1
+!B6[26],B7[26],!B7[27],B7[28],B7[29] buffer lc_trk_g2_3 input0_3
+!B10[26],B11[26],!B11[27],B11[28],B11[29] buffer lc_trk_g2_3 input0_5
+!B14[26],B15[26],!B15[27],B15[28],B15[29] buffer lc_trk_g2_3 input0_7
+!B10[35],B11[32],B11[33],!B11[34],B11[35] buffer lc_trk_g2_3 input2_5
+!B14[35],B15[32],B15[33],!B15[34],B15[35] buffer lc_trk_g2_3 input2_7
+!B12[31],B12[32],B12[33],!B12[34],B13[31] buffer lc_trk_g2_3 wire_bram/ram/MASK_1
+!B8[31],B8[32],B8[33],!B8[34],B9[31] buffer lc_trk_g2_3 wire_bram/ram/MASK_3
+!B4[31],B4[32],B4[33],!B4[34],B5[31] buffer lc_trk_g2_3 wire_bram/ram/MASK_5
+!B0[31],B0[32],B0[33],!B0[34],B1[31] buffer lc_trk_g2_3 wire_bram/ram/MASK_7
+!B12[27],B12[28],B12[29],!B12[30],B13[30] buffer lc_trk_g2_3 wire_bram/ram/WDATA_1
+!B8[27],B8[28],B8[29],!B8[30],B9[30] buffer lc_trk_g2_3 wire_bram/ram/WDATA_3
+!B4[27],B4[28],B4[29],!B4[30],B5[30] buffer lc_trk_g2_3 wire_bram/ram/WDATA_5
+!B0[27],B0[28],B0[29],!B0[30],B1[30] buffer lc_trk_g2_3 wire_bram/ram/WDATA_7
+B0[26],!B1[26],!B1[27],B1[28],B1[29] buffer lc_trk_g2_4 input0_0
+B4[26],!B5[26],!B5[27],B5[28],B5[29] buffer lc_trk_g2_4 input0_2
+B8[26],!B9[26],!B9[27],B9[28],B9[29] buffer lc_trk_g2_4 input0_4
+B12[26],!B13[26],!B13[27],B13[28],B13[29] buffer lc_trk_g2_4 input0_6
+B12[35],B13[32],B13[33],!B13[34],!B13[35] buffer lc_trk_g2_4 input2_6
+B14[31],B14[32],B14[33],!B14[34],!B15[31] buffer lc_trk_g2_4 wire_bram/ram/MASK_0
+B10[31],B10[32],B10[33],!B10[34],!B11[31] buffer lc_trk_g2_4 wire_bram/ram/MASK_2
+B6[31],B6[32],B6[33],!B6[34],!B7[31] buffer lc_trk_g2_4 wire_bram/ram/MASK_4
+B2[31],B2[32],B2[33],!B2[34],!B3[31] buffer lc_trk_g2_4 wire_bram/ram/MASK_6
+!B14[27],B14[28],B14[29],B14[30],!B15[30] buffer lc_trk_g2_4 wire_bram/ram/WDATA_0
+!B10[27],B10[28],B10[29],B10[30],!B11[30] buffer lc_trk_g2_4 wire_bram/ram/WDATA_2
+!B6[27],B6[28],B6[29],B6[30],!B7[30] buffer lc_trk_g2_4 wire_bram/ram/WDATA_4
+!B2[27],B2[28],B2[29],B2[30],!B3[30] buffer lc_trk_g2_4 wire_bram/ram/WDATA_6
+B14[0],B14[1],!B15[0],B15[1] buffer lc_trk_g2_4 wire_bram/ram/WE
+B2[26],!B3[26],!B3[27],B3[28],B3[29] buffer lc_trk_g2_5 input0_1
+B6[26],!B7[26],!B7[27],B7[28],B7[29] buffer lc_trk_g2_5 input0_3
+B10[26],!B11[26],!B11[27],B11[28],B11[29] buffer lc_trk_g2_5 input0_5
+B14[26],!B15[26],!B15[27],B15[28],B15[29] buffer lc_trk_g2_5 input0_7
+B10[35],B11[32],B11[33],!B11[34],!B11[35] buffer lc_trk_g2_5 input2_5
+B14[35],B15[32],B15[33],!B15[34],!B15[35] buffer lc_trk_g2_5 input2_7
+B12[31],B12[32],B12[33],!B12[34],!B13[31] buffer lc_trk_g2_5 wire_bram/ram/MASK_1
+B8[31],B8[32],B8[33],!B8[34],!B9[31] buffer lc_trk_g2_5 wire_bram/ram/MASK_3
+B4[31],B4[32],B4[33],!B4[34],!B5[31] buffer lc_trk_g2_5 wire_bram/ram/MASK_5
+B0[31],B0[32],B0[33],!B0[34],!B1[31] buffer lc_trk_g2_5 wire_bram/ram/MASK_7
+!B12[27],B12[28],B12[29],B12[30],!B13[30] buffer lc_trk_g2_5 wire_bram/ram/WDATA_1
+!B8[27],B8[28],B8[29],B8[30],!B9[30] buffer lc_trk_g2_5 wire_bram/ram/WDATA_3
+!B4[27],B4[28],B4[29],B4[30],!B5[30] buffer lc_trk_g2_5 wire_bram/ram/WDATA_5
+!B0[27],B0[28],B0[29],B0[30],!B1[30] buffer lc_trk_g2_5 wire_bram/ram/WDATA_7
+B0[26],B1[26],!B1[27],B1[28],B1[29] buffer lc_trk_g2_6 input0_0
+B4[26],B5[26],!B5[27],B5[28],B5[29] buffer lc_trk_g2_6 input0_2
+B8[26],B9[26],!B9[27],B9[28],B9[29] buffer lc_trk_g2_6 input0_4
+B12[26],B13[26],!B13[27],B13[28],B13[29] buffer lc_trk_g2_6 input0_6
+B12[35],B13[32],B13[33],!B13[34],B13[35] buffer lc_trk_g2_6 input2_6
+B14[31],B14[32],B14[33],!B14[34],B15[31] buffer lc_trk_g2_6 wire_bram/ram/MASK_0
+B10[31],B10[32],B10[33],!B10[34],B11[31] buffer lc_trk_g2_6 wire_bram/ram/MASK_2
+B6[31],B6[32],B6[33],!B6[34],B7[31] buffer lc_trk_g2_6 wire_bram/ram/MASK_4
+B2[31],B2[32],B2[33],!B2[34],B3[31] buffer lc_trk_g2_6 wire_bram/ram/MASK_6
+!B14[27],B14[28],B14[29],B14[30],B15[30] buffer lc_trk_g2_6 wire_bram/ram/WDATA_0
+!B10[27],B10[28],B10[29],B10[30],B11[30] buffer lc_trk_g2_6 wire_bram/ram/WDATA_2
+!B6[27],B6[28],B6[29],B6[30],B7[30] buffer lc_trk_g2_6 wire_bram/ram/WDATA_4
+!B2[27],B2[28],B2[29],B2[30],B3[30] buffer lc_trk_g2_6 wire_bram/ram/WDATA_6
+B2[26],B3[26],!B3[27],B3[28],B3[29] buffer lc_trk_g2_7 input0_1
+B6[26],B7[26],!B7[27],B7[28],B7[29] buffer lc_trk_g2_7 input0_3
+B10[26],B11[26],!B11[27],B11[28],B11[29] buffer lc_trk_g2_7 input0_5
+B14[26],B15[26],!B15[27],B15[28],B15[29] buffer lc_trk_g2_7 input0_7
+B10[35],B11[32],B11[33],!B11[34],B11[35] buffer lc_trk_g2_7 input2_5
+B14[35],B15[32],B15[33],!B15[34],B15[35] buffer lc_trk_g2_7 input2_7
+B12[31],B12[32],B12[33],!B12[34],B13[31] buffer lc_trk_g2_7 wire_bram/ram/MASK_1
+B8[31],B8[32],B8[33],!B8[34],B9[31] buffer lc_trk_g2_7 wire_bram/ram/MASK_3
+B4[31],B4[32],B4[33],!B4[34],B5[31] buffer lc_trk_g2_7 wire_bram/ram/MASK_5
+B0[31],B0[32],B0[33],!B0[34],B1[31] buffer lc_trk_g2_7 wire_bram/ram/MASK_7
+!B12[27],B12[28],B12[29],B12[30],B13[30] buffer lc_trk_g2_7 wire_bram/ram/WDATA_1
+!B8[27],B8[28],B8[29],B8[30],B9[30] buffer lc_trk_g2_7 wire_bram/ram/WDATA_3
+!B4[27],B4[28],B4[29],B4[30],B5[30] buffer lc_trk_g2_7 wire_bram/ram/WDATA_5
+!B0[27],B0[28],B0[29],B0[30],B1[30] buffer lc_trk_g2_7 wire_bram/ram/WDATA_7
+!B2[26],!B3[26],B3[27],B3[28],B3[29] buffer lc_trk_g3_0 input0_1
+!B6[26],!B7[26],B7[27],B7[28],B7[29] buffer lc_trk_g3_0 input0_3
+!B10[26],!B11[26],B11[27],B11[28],B11[29] buffer lc_trk_g3_0 input0_5
+!B14[26],!B15[26],B15[27],B15[28],B15[29] buffer lc_trk_g3_0 input0_7
+!B10[35],B11[32],B11[33],B11[34],!B11[35] buffer lc_trk_g3_0 input2_5
+!B14[35],B15[32],B15[33],B15[34],!B15[35] buffer lc_trk_g3_0 input2_7
+!B12[31],B12[32],B12[33],B12[34],!B13[31] buffer lc_trk_g3_0 wire_bram/ram/MASK_1
+!B8[31],B8[32],B8[33],B8[34],!B9[31] buffer lc_trk_g3_0 wire_bram/ram/MASK_3
+!B4[31],B4[32],B4[33],B4[34],!B5[31] buffer lc_trk_g3_0 wire_bram/ram/MASK_5
+!B0[31],B0[32],B0[33],B0[34],!B1[31] buffer lc_trk_g3_0 wire_bram/ram/MASK_7
+B12[27],B12[28],B12[29],!B12[30],!B13[30] buffer lc_trk_g3_0 wire_bram/ram/WDATA_1
+B8[27],B8[28],B8[29],!B8[30],!B9[30] buffer lc_trk_g3_0 wire_bram/ram/WDATA_3
+B4[27],B4[28],B4[29],!B4[30],!B5[30] buffer lc_trk_g3_0 wire_bram/ram/WDATA_5
+B0[27],B0[28],B0[29],!B0[30],!B1[30] buffer lc_trk_g3_0 wire_bram/ram/WDATA_7
+!B0[26],!B1[26],B1[27],B1[28],B1[29] buffer lc_trk_g3_1 input0_0
+!B4[26],!B5[26],B5[27],B5[28],B5[29] buffer lc_trk_g3_1 input0_2
+!B8[26],!B9[26],B9[27],B9[28],B9[29] buffer lc_trk_g3_1 input0_4
+!B12[26],!B13[26],B13[27],B13[28],B13[29] buffer lc_trk_g3_1 input0_6
+!B12[35],B13[32],B13[33],B13[34],!B13[35] buffer lc_trk_g3_1 input2_6
+!B14[31],B14[32],B14[33],B14[34],!B15[31] buffer lc_trk_g3_1 wire_bram/ram/MASK_0
+!B10[31],B10[32],B10[33],B10[34],!B11[31] buffer lc_trk_g3_1 wire_bram/ram/MASK_2
+!B6[31],B6[32],B6[33],B6[34],!B7[31] buffer lc_trk_g3_1 wire_bram/ram/MASK_4
+!B2[31],B2[32],B2[33],B2[34],!B3[31] buffer lc_trk_g3_1 wire_bram/ram/MASK_6
+B2[0],!B2[1],B2[2],B3[0],B3[2] buffer lc_trk_g3_1 wire_bram/ram/WCLK
+B14[27],B14[28],B14[29],!B14[30],!B15[30] buffer lc_trk_g3_1 wire_bram/ram/WDATA_0
+B10[27],B10[28],B10[29],!B10[30],!B11[30] buffer lc_trk_g3_1 wire_bram/ram/WDATA_2
+B6[27],B6[28],B6[29],!B6[30],!B7[30] buffer lc_trk_g3_1 wire_bram/ram/WDATA_4
+B2[27],B2[28],B2[29],!B2[30],!B3[30] buffer lc_trk_g3_1 wire_bram/ram/WDATA_6
+!B2[26],B3[26],B3[27],B3[28],B3[29] buffer lc_trk_g3_2 input0_1
+!B6[26],B7[26],B7[27],B7[28],B7[29] buffer lc_trk_g3_2 input0_3
+!B10[26],B11[26],B11[27],B11[28],B11[29] buffer lc_trk_g3_2 input0_5
+!B14[26],B15[26],B15[27],B15[28],B15[29] buffer lc_trk_g3_2 input0_7
+!B10[35],B11[32],B11[33],B11[34],B11[35] buffer lc_trk_g3_2 input2_5
+!B14[35],B15[32],B15[33],B15[34],B15[35] buffer lc_trk_g3_2 input2_7
+!B12[31],B12[32],B12[33],B12[34],B13[31] buffer lc_trk_g3_2 wire_bram/ram/MASK_1
+!B8[31],B8[32],B8[33],B8[34],B9[31] buffer lc_trk_g3_2 wire_bram/ram/MASK_3
+!B4[31],B4[32],B4[33],B4[34],B5[31] buffer lc_trk_g3_2 wire_bram/ram/MASK_5
+!B0[31],B0[32],B0[33],B0[34],B1[31] buffer lc_trk_g3_2 wire_bram/ram/MASK_7
+B12[27],B12[28],B12[29],!B12[30],B13[30] buffer lc_trk_g3_2 wire_bram/ram/WDATA_1
+B8[27],B8[28],B8[29],!B8[30],B9[30] buffer lc_trk_g3_2 wire_bram/ram/WDATA_3
+B4[27],B4[28],B4[29],!B4[30],B5[30] buffer lc_trk_g3_2 wire_bram/ram/WDATA_5
+B0[27],B0[28],B0[29],!B0[30],B1[30] buffer lc_trk_g3_2 wire_bram/ram/WDATA_7
+!B0[26],B1[26],B1[27],B1[28],B1[29] buffer lc_trk_g3_3 input0_0
+!B4[26],B5[26],B5[27],B5[28],B5[29] buffer lc_trk_g3_3 input0_2
+!B8[26],B9[26],B9[27],B9[28],B9[29] buffer lc_trk_g3_3 input0_4
+!B12[26],B13[26],B13[27],B13[28],B13[29] buffer lc_trk_g3_3 input0_6
+!B12[35],B13[32],B13[33],B13[34],B13[35] buffer lc_trk_g3_3 input2_6
+!B14[31],B14[32],B14[33],B14[34],B15[31] buffer lc_trk_g3_3 wire_bram/ram/MASK_0
+!B10[31],B10[32],B10[33],B10[34],B11[31] buffer lc_trk_g3_3 wire_bram/ram/MASK_2
+!B6[31],B6[32],B6[33],B6[34],B7[31] buffer lc_trk_g3_3 wire_bram/ram/MASK_4
+!B2[31],B2[32],B2[33],B2[34],B3[31] buffer lc_trk_g3_3 wire_bram/ram/MASK_6
+B4[0],B4[1],B5[0],B5[1] buffer lc_trk_g3_3 wire_bram/ram/WCLKE
+B14[27],B14[28],B14[29],!B14[30],B15[30] buffer lc_trk_g3_3 wire_bram/ram/WDATA_0
+B10[27],B10[28],B10[29],!B10[30],B11[30] buffer lc_trk_g3_3 wire_bram/ram/WDATA_2
+B6[27],B6[28],B6[29],!B6[30],B7[30] buffer lc_trk_g3_3 wire_bram/ram/WDATA_4
+B2[27],B2[28],B2[29],!B2[30],B3[30] buffer lc_trk_g3_3 wire_bram/ram/WDATA_6
+B2[26],!B3[26],B3[27],B3[28],B3[29] buffer lc_trk_g3_4 input0_1
+B6[26],!B7[26],B7[27],B7[28],B7[29] buffer lc_trk_g3_4 input0_3
+B10[26],!B11[26],B11[27],B11[28],B11[29] buffer lc_trk_g3_4 input0_5
+B14[26],!B15[26],B15[27],B15[28],B15[29] buffer lc_trk_g3_4 input0_7
+B10[35],B11[32],B11[33],B11[34],!B11[35] buffer lc_trk_g3_4 input2_5
+B14[35],B15[32],B15[33],B15[34],!B15[35] buffer lc_trk_g3_4 input2_7
+B12[31],B12[32],B12[33],B12[34],!B13[31] buffer lc_trk_g3_4 wire_bram/ram/MASK_1
+B8[31],B8[32],B8[33],B8[34],!B9[31] buffer lc_trk_g3_4 wire_bram/ram/MASK_3
+B4[31],B4[32],B4[33],B4[34],!B5[31] buffer lc_trk_g3_4 wire_bram/ram/MASK_5
+B0[31],B0[32],B0[33],B0[34],!B1[31] buffer lc_trk_g3_4 wire_bram/ram/MASK_7
+B12[27],B12[28],B12[29],B12[30],!B13[30] buffer lc_trk_g3_4 wire_bram/ram/WDATA_1
+B8[27],B8[28],B8[29],B8[30],!B9[30] buffer lc_trk_g3_4 wire_bram/ram/WDATA_3
+B4[27],B4[28],B4[29],B4[30],!B5[30] buffer lc_trk_g3_4 wire_bram/ram/WDATA_5
+B0[27],B0[28],B0[29],B0[30],!B1[30] buffer lc_trk_g3_4 wire_bram/ram/WDATA_7
+B0[26],!B1[26],B1[27],B1[28],B1[29] buffer lc_trk_g3_5 input0_0
+B4[26],!B5[26],B5[27],B5[28],B5[29] buffer lc_trk_g3_5 input0_2
+B8[26],!B9[26],B9[27],B9[28],B9[29] buffer lc_trk_g3_5 input0_4
+B12[26],!B13[26],B13[27],B13[28],B13[29] buffer lc_trk_g3_5 input0_6
+B12[35],B13[32],B13[33],B13[34],!B13[35] buffer lc_trk_g3_5 input2_6
+B14[31],B14[32],B14[33],B14[34],!B15[31] buffer lc_trk_g3_5 wire_bram/ram/MASK_0
+B10[31],B10[32],B10[33],B10[34],!B11[31] buffer lc_trk_g3_5 wire_bram/ram/MASK_2
+B6[31],B6[32],B6[33],B6[34],!B7[31] buffer lc_trk_g3_5 wire_bram/ram/MASK_4
+B2[31],B2[32],B2[33],B2[34],!B3[31] buffer lc_trk_g3_5 wire_bram/ram/MASK_6
+B14[27],B14[28],B14[29],B14[30],!B15[30] buffer lc_trk_g3_5 wire_bram/ram/WDATA_0
+B10[27],B10[28],B10[29],B10[30],!B11[30] buffer lc_trk_g3_5 wire_bram/ram/WDATA_2
+B6[27],B6[28],B6[29],B6[30],!B7[30] buffer lc_trk_g3_5 wire_bram/ram/WDATA_4
+B2[27],B2[28],B2[29],B2[30],!B3[30] buffer lc_trk_g3_5 wire_bram/ram/WDATA_6
+B14[0],B14[1],B15[0],B15[1] buffer lc_trk_g3_5 wire_bram/ram/WE
+B2[26],B3[26],B3[27],B3[28],B3[29] buffer lc_trk_g3_6 input0_1
+B6[26],B7[26],B7[27],B7[28],B7[29] buffer lc_trk_g3_6 input0_3
+B10[26],B11[26],B11[27],B11[28],B11[29] buffer lc_trk_g3_6 input0_5
+B14[26],B15[26],B15[27],B15[28],B15[29] buffer lc_trk_g3_6 input0_7
+B10[35],B11[32],B11[33],B11[34],B11[35] buffer lc_trk_g3_6 input2_5
+B14[35],B15[32],B15[33],B15[34],B15[35] buffer lc_trk_g3_6 input2_7
+B12[31],B12[32],B12[33],B12[34],B13[31] buffer lc_trk_g3_6 wire_bram/ram/MASK_1
+B8[31],B8[32],B8[33],B8[34],B9[31] buffer lc_trk_g3_6 wire_bram/ram/MASK_3
+B4[31],B4[32],B4[33],B4[34],B5[31] buffer lc_trk_g3_6 wire_bram/ram/MASK_5
+B0[31],B0[32],B0[33],B0[34],B1[31] buffer lc_trk_g3_6 wire_bram/ram/MASK_7
+B12[27],B12[28],B12[29],B12[30],B13[30] buffer lc_trk_g3_6 wire_bram/ram/WDATA_1
+B8[27],B8[28],B8[29],B8[30],B9[30] buffer lc_trk_g3_6 wire_bram/ram/WDATA_3
+B4[27],B4[28],B4[29],B4[30],B5[30] buffer lc_trk_g3_6 wire_bram/ram/WDATA_5
+B0[27],B0[28],B0[29],B0[30],B1[30] buffer lc_trk_g3_6 wire_bram/ram/WDATA_7
+B0[26],B1[26],B1[27],B1[28],B1[29] buffer lc_trk_g3_7 input0_0
+B4[26],B5[26],B5[27],B5[28],B5[29] buffer lc_trk_g3_7 input0_2
+B8[26],B9[26],B9[27],B9[28],B9[29] buffer lc_trk_g3_7 input0_4
+B12[26],B13[26],B13[27],B13[28],B13[29] buffer lc_trk_g3_7 input0_6
+B12[35],B13[32],B13[33],B13[34],B13[35] buffer lc_trk_g3_7 input2_6
+B14[31],B14[32],B14[33],B14[34],B15[31] buffer lc_trk_g3_7 wire_bram/ram/MASK_0
+B10[31],B10[32],B10[33],B10[34],B11[31] buffer lc_trk_g3_7 wire_bram/ram/MASK_2
+B6[31],B6[32],B6[33],B6[34],B7[31] buffer lc_trk_g3_7 wire_bram/ram/MASK_4
+B2[31],B2[32],B2[33],B2[34],B3[31] buffer lc_trk_g3_7 wire_bram/ram/MASK_6
+B14[27],B14[28],B14[29],B14[30],B15[30] buffer lc_trk_g3_7 wire_bram/ram/WDATA_0
+B10[27],B10[28],B10[29],B10[30],B11[30] buffer lc_trk_g3_7 wire_bram/ram/WDATA_2
+B6[27],B6[28],B6[29],B6[30],B7[30] buffer lc_trk_g3_7 wire_bram/ram/WDATA_4
+B2[27],B2[28],B2[29],B2[30],B3[30] buffer lc_trk_g3_7 wire_bram/ram/WDATA_6
+B0[14],!B1[14],B1[15],!B1[16],B1[17] buffer lft_op_0 lc_trk_g0_0
+B4[14],!B5[14],B5[15],!B5[16],B5[17] buffer lft_op_0 lc_trk_g1_0
+B0[15],!B0[16],B0[17],B0[18],!B1[18] buffer lft_op_1 lc_trk_g0_1
+B4[15],!B4[16],B4[17],B4[18],!B5[18] buffer lft_op_1 lc_trk_g1_1
+B0[25],B1[22],!B1[23],B1[24],!B1[25] buffer lft_op_2 lc_trk_g0_2
+B4[25],B5[22],!B5[23],B5[24],!B5[25] buffer lft_op_2 lc_trk_g1_2
+B0[21],B0[22],!B0[23],B0[24],!B1[21] buffer lft_op_3 lc_trk_g0_3
+B4[21],B4[22],!B4[23],B4[24],!B5[21] buffer lft_op_3 lc_trk_g1_3
+B2[14],!B3[14],B3[15],!B3[16],B3[17] buffer lft_op_4 lc_trk_g0_4
+B6[14],!B7[14],B7[15],!B7[16],B7[17] buffer lft_op_4 lc_trk_g1_4
+B2[15],!B2[16],B2[17],B2[18],!B3[18] buffer lft_op_5 lc_trk_g0_5
+B6[15],!B6[16],B6[17],B6[18],!B7[18] buffer lft_op_5 lc_trk_g1_5
+B2[25],B3[22],!B3[23],B3[24],!B3[25] buffer lft_op_6 lc_trk_g0_6
+B6[25],B7[22],!B7[23],B7[24],!B7[25] buffer lft_op_6 lc_trk_g1_6
+B2[21],B2[22],!B2[23],B2[24],!B3[21] buffer lft_op_7 lc_trk_g0_7
+B6[21],B6[22],!B6[23],B6[24],!B7[21] buffer lft_op_7 lc_trk_g1_7
+B8[14],!B9[14],B9[15],!B9[16],B9[17] buffer rgt_op_0 lc_trk_g2_0
+B12[14],!B13[14],B13[15],!B13[16],B13[17] buffer rgt_op_0 lc_trk_g3_0
+B8[15],!B8[16],B8[17],B8[18],!B9[18] buffer rgt_op_1 lc_trk_g2_1
+B12[15],!B12[16],B12[17],B12[18],!B13[18] buffer rgt_op_1 lc_trk_g3_1
+B8[25],B9[22],!B9[23],B9[24],!B9[25] buffer rgt_op_2 lc_trk_g2_2
+B12[25],B13[22],!B13[23],B13[24],!B13[25] buffer rgt_op_2 lc_trk_g3_2
+B8[21],B8[22],!B8[23],B8[24],!B9[21] buffer rgt_op_3 lc_trk_g2_3
+B12[21],B12[22],!B12[23],B12[24],!B13[21] buffer rgt_op_3 lc_trk_g3_3
+B10[14],!B11[14],B11[15],!B11[16],B11[17] buffer rgt_op_4 lc_trk_g2_4
+B14[14],!B15[14],B15[15],!B15[16],B15[17] buffer rgt_op_4 lc_trk_g3_4
+B10[15],!B10[16],B10[17],B10[18],!B11[18] buffer rgt_op_5 lc_trk_g2_5
+B14[15],!B14[16],B14[17],B14[18],!B15[18] buffer rgt_op_5 lc_trk_g3_5
+B10[25],B11[22],!B11[23],B11[24],!B11[25] buffer rgt_op_6 lc_trk_g2_6
+B14[25],B15[22],!B15[23],B15[24],!B15[25] buffer rgt_op_6 lc_trk_g3_6
+B10[21],B10[22],!B10[23],B10[24],!B11[21] buffer rgt_op_7 lc_trk_g2_7
+B14[21],B14[22],!B14[23],B14[24],!B15[21] buffer rgt_op_7 lc_trk_g3_7
+B0[21],B0[22],!B0[23],B0[24],B1[21] buffer sp12_h_l_0 lc_trk_g0_3
+B4[21],B4[22],!B4[23],B4[24],B5[21] buffer sp12_h_l_0 lc_trk_g1_3
+!B2[21],B2[22],B2[23],!B2[24],!B3[21] buffer sp12_h_l_12 lc_trk_g0_7
+!B6[21],B6[22],B6[23],!B6[24],!B7[21] buffer sp12_h_l_12 lc_trk_g1_7
+!B2[25],B3[22],B3[23],!B3[24],!B3[25] buffer sp12_h_l_13 lc_trk_g0_6
+!B6[25],B7[22],B7[23],!B7[24],!B7[25] buffer sp12_h_l_13 lc_trk_g1_6
+B6[2] buffer sp12_h_l_13 sp4_h_r_19
+!B0[21],B0[22],B0[23],!B0[24],B1[21] buffer sp12_h_l_16 lc_trk_g0_3
+!B4[21],B4[22],B4[23],!B4[24],B5[21] buffer sp12_h_l_16 lc_trk_g1_3
+!B2[15],B2[16],B2[17],!B2[18],B3[18] buffer sp12_h_l_18 lc_trk_g0_5
+!B6[15],B6[16],B6[17],!B6[18],B7[18] buffer sp12_h_l_18 lc_trk_g1_5
+!B2[25],B3[22],B3[23],!B3[24],B3[25] buffer sp12_h_l_21 lc_trk_g0_6
+!B6[25],B7[22],B7[23],!B7[24],B7[25] buffer sp12_h_l_21 lc_trk_g1_6
+B14[2] buffer sp12_h_l_21 sp4_h_l_10
+B2[14],B3[14],B3[15],!B3[16],B3[17] buffer sp12_h_l_3 lc_trk_g0_4
+B6[14],B7[14],B7[15],!B7[16],B7[17] buffer sp12_h_l_3 lc_trk_g1_4
+B15[19] buffer sp12_h_l_3 sp4_h_l_3
+B2[21],B2[22],!B2[23],B2[24],B3[21] buffer sp12_h_l_4 lc_trk_g0_7
+B6[21],B6[22],!B6[23],B6[24],B7[21] buffer sp12_h_l_4 lc_trk_g1_7
+B2[25],B3[22],!B3[23],B3[24],B3[25] buffer sp12_h_l_5 lc_trk_g0_6
+B6[25],B7[22],!B7[23],B7[24],B7[25] buffer sp12_h_l_5 lc_trk_g1_6
+B14[19] buffer sp12_h_l_5 sp4_h_l_2
+!B0[15],B0[16],B0[17],!B0[18],!B1[18] buffer sp12_h_l_6 lc_trk_g0_1
+!B4[15],B4[16],B4[17],!B4[18],!B5[18] buffer sp12_h_l_6 lc_trk_g1_1
+B0[14],B1[14],B1[15],!B1[16],B1[17] buffer sp12_h_r_0 lc_trk_g0_0
+B4[14],B5[14],B5[15],!B5[16],B5[17] buffer sp12_h_r_0 lc_trk_g1_0
+B13[19] buffer sp12_h_r_0 sp4_h_r_12
+B0[15],!B0[16],B0[17],B0[18],B1[18] buffer sp12_h_r_1 lc_trk_g0_1
+B4[15],!B4[16],B4[17],B4[18],B5[18] buffer sp12_h_r_1 lc_trk_g1_1
+!B0[25],B1[22],B1[23],!B1[24],!B1[25] buffer sp12_h_r_10 lc_trk_g0_2
+!B4[25],B5[22],B5[23],!B5[24],!B5[25] buffer sp12_h_r_10 lc_trk_g1_2
+B3[1] buffer sp12_h_r_10 sp4_h_r_17
+!B0[21],B0[22],B0[23],!B0[24],!B1[21] buffer sp12_h_r_11 lc_trk_g0_3
+!B4[21],B4[22],B4[23],!B4[24],!B5[21] buffer sp12_h_r_11 lc_trk_g1_3
+!B2[14],!B3[14],!B3[15],B3[16],B3[17] buffer sp12_h_r_12 lc_trk_g0_4
+!B6[14],!B7[14],!B7[15],B7[16],B7[17] buffer sp12_h_r_12 lc_trk_g1_4
+B4[2] buffer sp12_h_r_12 sp4_h_l_7
+!B2[15],B2[16],B2[17],!B2[18],!B3[18] buffer sp12_h_r_13 lc_trk_g0_5
+!B6[15],B6[16],B6[17],!B6[18],!B7[18] buffer sp12_h_r_13 lc_trk_g1_5
+!B0[14],B1[14],!B1[15],B1[16],B1[17] buffer sp12_h_r_16 lc_trk_g0_0
+!B4[14],B5[14],!B5[15],B5[16],B5[17] buffer sp12_h_r_16 lc_trk_g1_0
+B8[2] buffer sp12_h_r_16 sp4_h_r_20
+!B0[15],B0[16],B0[17],!B0[18],B1[18] buffer sp12_h_r_17 lc_trk_g0_1
+!B4[15],B4[16],B4[17],!B4[18],B5[18] buffer sp12_h_r_17 lc_trk_g1_1
+!B0[25],B1[22],B1[23],!B1[24],B1[25] buffer sp12_h_r_18 lc_trk_g0_2
+!B4[25],B5[22],B5[23],!B5[24],B5[25] buffer sp12_h_r_18 lc_trk_g1_2
+B10[2] buffer sp12_h_r_18 sp4_h_l_8
+B0[25],B1[22],!B1[23],B1[24],B1[25] buffer sp12_h_r_2 lc_trk_g0_2
+B4[25],B5[22],!B5[23],B5[24],B5[25] buffer sp12_h_r_2 lc_trk_g1_2
+B12[19] buffer sp12_h_r_2 sp4_h_r_13
+!B2[14],B3[14],!B3[15],B3[16],B3[17] buffer sp12_h_r_20 lc_trk_g0_4
+!B6[14],B7[14],!B7[15],B7[16],B7[17] buffer sp12_h_r_20 lc_trk_g1_4
+B12[2] buffer sp12_h_r_20 sp4_h_r_22
+!B2[21],B2[22],B2[23],!B2[24],B3[21] buffer sp12_h_r_23 lc_trk_g0_7
+!B6[21],B6[22],B6[23],!B6[24],B7[21] buffer sp12_h_r_23 lc_trk_g1_7
+B2[15],!B2[16],B2[17],B2[18],B3[18] buffer sp12_h_r_5 lc_trk_g0_5
+B6[15],!B6[16],B6[17],B6[18],B7[18] buffer sp12_h_r_5 lc_trk_g1_5
+!B0[14],!B1[14],!B1[15],B1[16],B1[17] buffer sp12_h_r_8 lc_trk_g0_0
+!B4[14],!B5[14],!B5[15],B5[16],B5[17] buffer sp12_h_r_8 lc_trk_g1_0
+B0[2] buffer sp12_h_r_8 sp4_h_l_5
+B8[14],B9[14],B9[15],!B9[16],B9[17] buffer sp12_v_b_0 lc_trk_g2_0
+B12[14],B13[14],B13[15],!B13[16],B13[17] buffer sp12_v_b_0 lc_trk_g3_0
+B8[15],!B8[16],B8[17],B8[18],B9[18] buffer sp12_v_b_1 lc_trk_g2_1
+B12[15],!B12[16],B12[17],B12[18],B13[18] buffer sp12_v_b_1 lc_trk_g3_1
+B1[19] buffer sp12_v_b_1 sp4_v_t_1
+!B8[21],B8[22],B8[23],!B8[24],!B9[21] buffer sp12_v_b_11 lc_trk_g2_3
+!B12[21],B12[22],B12[23],!B12[24],!B13[21] buffer sp12_v_b_11 lc_trk_g3_3
+B4[19] buffer sp12_v_b_11 sp4_v_b_17
+!B10[14],!B11[14],!B11[15],B11[16],B11[17] buffer sp12_v_b_12 lc_trk_g2_4
+!B14[14],!B15[14],!B15[15],B15[16],B15[17] buffer sp12_v_b_12 lc_trk_g3_4
+!B10[25],B11[22],B11[23],!B11[24],!B11[25] buffer sp12_v_b_14 lc_trk_g2_6
+!B14[25],B15[22],B15[23],!B15[24],!B15[25] buffer sp12_v_b_14 lc_trk_g3_6
+!B8[14],B9[14],!B9[15],B9[16],B9[17] buffer sp12_v_b_16 lc_trk_g2_0
+!B12[14],B13[14],!B13[15],B13[16],B13[17] buffer sp12_v_b_16 lc_trk_g3_0
+!B8[15],B8[16],B8[17],!B8[18],B9[18] buffer sp12_v_b_17 lc_trk_g2_1
+!B12[15],B12[16],B12[17],!B12[18],B13[18] buffer sp12_v_b_17 lc_trk_g3_1
+B9[19] buffer sp12_v_b_17 sp4_v_b_20
+B8[25],B9[22],!B9[23],B9[24],B9[25] buffer sp12_v_b_2 lc_trk_g2_2
+B12[25],B13[22],!B13[23],B13[24],B13[25] buffer sp12_v_b_2 lc_trk_g3_2
+!B10[15],B10[16],B10[17],!B10[18],B11[18] buffer sp12_v_b_21 lc_trk_g2_5
+!B14[15],B14[16],B14[17],!B14[18],B15[18] buffer sp12_v_b_21 lc_trk_g3_5
+B11[19] buffer sp12_v_b_21 sp4_v_b_22
+!B10[21],B10[22],B10[23],!B10[24],B11[21] buffer sp12_v_b_23 lc_trk_g2_7
+!B14[21],B14[22],B14[23],!B14[24],B15[21] buffer sp12_v_b_23 lc_trk_g3_7
+B10[19] buffer sp12_v_b_23 sp4_v_t_10
+B10[15],!B10[16],B10[17],B10[18],B11[18] buffer sp12_v_b_5 lc_trk_g2_5
+B14[15],!B14[16],B14[17],B14[18],B15[18] buffer sp12_v_b_5 lc_trk_g3_5
+B3[19] buffer sp12_v_b_5 sp4_v_b_14
+B10[25],B11[22],!B11[23],B11[24],B11[25] buffer sp12_v_b_6 lc_trk_g2_6
+B14[25],B15[22],!B15[23],B15[24],B15[25] buffer sp12_v_b_6 lc_trk_g3_6
+B10[21],B10[22],!B10[23],B10[24],B11[21] buffer sp12_v_b_7 lc_trk_g2_7
+B14[21],B14[22],!B14[23],B14[24],B15[21] buffer sp12_v_b_7 lc_trk_g3_7
+B2[19] buffer sp12_v_b_7 sp4_v_t_2
+!B8[15],B8[16],B8[17],!B8[18],!B9[18] buffer sp12_v_b_9 lc_trk_g2_1
+!B12[15],B12[16],B12[17],!B12[18],!B13[18] buffer sp12_v_b_9 lc_trk_g3_1
+B5[19] buffer sp12_v_b_9 sp4_v_b_16
+B8[21],B8[22],!B8[23],B8[24],B9[21] buffer sp12_v_t_0 lc_trk_g2_3
+B12[21],B12[22],!B12[23],B12[24],B13[21] buffer sp12_v_t_0 lc_trk_g3_3
+B0[19] buffer sp12_v_t_0 sp4_v_b_13
+!B10[15],B10[16],B10[17],!B10[18],!B11[18] buffer sp12_v_t_10 lc_trk_g2_5
+!B14[15],B14[16],B14[17],!B14[18],!B15[18] buffer sp12_v_t_10 lc_trk_g3_5
+B7[19] buffer sp12_v_t_10 sp4_v_t_7
+!B10[21],B10[22],B10[23],!B10[24],!B11[21] buffer sp12_v_t_12 lc_trk_g2_7
+!B14[21],B14[22],B14[23],!B14[24],!B15[21] buffer sp12_v_t_12 lc_trk_g3_7
+B6[19] buffer sp12_v_t_12 sp4_v_b_19
+!B8[21],B8[22],B8[23],!B8[24],B9[21] buffer sp12_v_t_16 lc_trk_g2_3
+!B12[21],B12[22],B12[23],!B12[24],B13[21] buffer sp12_v_t_16 lc_trk_g3_3
+B8[19] buffer sp12_v_t_16 sp4_v_t_8
+!B8[25],B9[22],B9[23],!B9[24],B9[25] buffer sp12_v_t_17 lc_trk_g2_2
+!B12[25],B13[22],B13[23],!B13[24],B13[25] buffer sp12_v_t_17 lc_trk_g3_2
+!B10[14],B11[14],!B11[15],B11[16],B11[17] buffer sp12_v_t_19 lc_trk_g2_4
+!B14[14],B15[14],!B15[15],B15[16],B15[17] buffer sp12_v_t_19 lc_trk_g3_4
+!B10[25],B11[22],B11[23],!B11[24],B11[25] buffer sp12_v_t_21 lc_trk_g2_6
+!B14[25],B15[22],B15[23],!B15[24],B15[25] buffer sp12_v_t_21 lc_trk_g3_6
+B10[14],B11[14],B11[15],!B11[16],B11[17] buffer sp12_v_t_3 lc_trk_g2_4
+B14[14],B15[14],B15[15],!B15[16],B15[17] buffer sp12_v_t_3 lc_trk_g3_4
+!B8[14],!B9[14],!B9[15],B9[16],B9[17] buffer sp12_v_t_7 lc_trk_g2_0
+!B12[14],!B13[14],!B13[15],B13[16],B13[17] buffer sp12_v_t_7 lc_trk_g3_0
+!B8[25],B9[22],B9[23],!B9[24],!B9[25] buffer sp12_v_t_9 lc_trk_g2_2
+!B12[25],B13[22],B13[23],!B13[24],!B13[25] buffer sp12_v_t_9 lc_trk_g3_2
+B2[21],B2[22],B2[23],B2[24],B3[21] buffer sp4_h_l_10 lc_trk_g0_7
+B6[21],B6[22],B6[23],B6[24],B7[21] buffer sp4_h_l_10 lc_trk_g1_7
+!B8[14],B9[14],B9[15],B9[16],B9[17] buffer sp4_h_l_13 lc_trk_g2_0
+!B12[14],B13[14],B13[15],B13[16],B13[17] buffer sp4_h_l_13 lc_trk_g3_0
+!B8[25],B9[22],B9[23],B9[24],B9[25] buffer sp4_h_l_15 lc_trk_g2_2
+!B12[25],B13[22],B13[23],B13[24],B13[25] buffer sp4_h_l_15 lc_trk_g3_2
+B10[15],B10[16],B10[17],!B10[18],B11[18] buffer sp4_h_l_16 lc_trk_g2_5
+B14[15],B14[16],B14[17],!B14[18],B15[18] buffer sp4_h_l_16 lc_trk_g3_5
+!B10[14],B11[14],B11[15],B11[16],B11[17] buffer sp4_h_l_17 lc_trk_g2_4
+!B14[14],B15[14],B15[15],B15[16],B15[17] buffer sp4_h_l_17 lc_trk_g3_4
+!B10[21],B10[22],B10[23],B10[24],B11[21] buffer sp4_h_l_18 lc_trk_g2_7
+!B14[21],B14[22],B14[23],B14[24],B15[21] buffer sp4_h_l_18 lc_trk_g3_7
+B2[21],B2[22],B2[23],B2[24],!B3[21] buffer sp4_h_l_2 lc_trk_g0_7
+B6[21],B6[22],B6[23],B6[24],!B7[21] buffer sp4_h_l_2 lc_trk_g1_7
+B8[15],B8[16],B8[17],B8[18],!B9[18] buffer sp4_h_l_20 lc_trk_g2_1
+B12[15],B12[16],B12[17],B12[18],!B13[18] buffer sp4_h_l_20 lc_trk_g3_1
+B8[14],!B9[14],B9[15],B9[16],B9[17] buffer sp4_h_l_21 lc_trk_g2_0
+B12[14],!B13[14],B13[15],B13[16],B13[17] buffer sp4_h_l_21 lc_trk_g3_0
+B10[21],B10[22],B10[23],B10[24],!B11[21] buffer sp4_h_l_26 lc_trk_g2_7
+B14[21],B14[22],B14[23],B14[24],!B15[21] buffer sp4_h_l_26 lc_trk_g3_7
+B10[25],B11[22],B11[23],B11[24],!B11[25] buffer sp4_h_l_27 lc_trk_g2_6
+B14[25],B15[22],B15[23],B15[24],!B15[25] buffer sp4_h_l_27 lc_trk_g3_6
+B8[15],B8[16],B8[17],B8[18],B9[18] buffer sp4_h_l_28 lc_trk_g2_1
+B12[15],B12[16],B12[17],B12[18],B13[18] buffer sp4_h_l_28 lc_trk_g3_1
+B8[14],B9[14],B9[15],B9[16],B9[17] buffer sp4_h_l_29 lc_trk_g2_0
+B12[14],B13[14],B13[15],B13[16],B13[17] buffer sp4_h_l_29 lc_trk_g3_0
+B2[25],B3[22],B3[23],B3[24],!B3[25] buffer sp4_h_l_3 lc_trk_g0_6
+B6[25],B7[22],B7[23],B7[24],!B7[25] buffer sp4_h_l_3 lc_trk_g1_6
+B8[21],B8[22],B8[23],B8[24],B9[21] buffer sp4_h_l_30 lc_trk_g2_3
+B12[21],B12[22],B12[23],B12[24],B13[21] buffer sp4_h_l_30 lc_trk_g3_3
+B0[14],B1[14],B1[15],B1[16],B1[17] buffer sp4_h_l_5 lc_trk_g0_0
+B4[14],B5[14],B5[15],B5[16],B5[17] buffer sp4_h_l_5 lc_trk_g1_0
+B0[25],B1[22],B1[23],B1[24],B1[25] buffer sp4_h_l_7 lc_trk_g0_2
+B4[25],B5[22],B5[23],B5[24],B5[25] buffer sp4_h_l_7 lc_trk_g1_2
+B2[15],B2[16],B2[17],B2[18],B3[18] buffer sp4_h_l_8 lc_trk_g0_5
+B6[15],B6[16],B6[17],B6[18],B7[18] buffer sp4_h_l_8 lc_trk_g1_5
+!B0[14],B1[14],B1[15],B1[16],B1[17] buffer sp4_h_r_0 lc_trk_g0_0
+!B4[14],B5[14],B5[15],B5[16],B5[17] buffer sp4_h_r_0 lc_trk_g1_0
+B0[15],B0[16],B0[17],!B0[18],B1[18] buffer sp4_h_r_1 lc_trk_g0_1
+B4[15],B4[16],B4[17],!B4[18],B5[18] buffer sp4_h_r_1 lc_trk_g1_1
+B0[25],B1[22],B1[23],B1[24],!B1[25] buffer sp4_h_r_10 lc_trk_g0_2
+B4[25],B5[22],B5[23],B5[24],!B5[25] buffer sp4_h_r_10 lc_trk_g1_2
+B0[21],B0[22],B0[23],B0[24],!B1[21] buffer sp4_h_r_11 lc_trk_g0_3
+B4[21],B4[22],B4[23],B4[24],!B5[21] buffer sp4_h_r_11 lc_trk_g1_3
+B2[14],!B3[14],B3[15],B3[16],B3[17] buffer sp4_h_r_12 lc_trk_g0_4
+B6[14],!B7[14],B7[15],B7[16],B7[17] buffer sp4_h_r_12 lc_trk_g1_4
+B2[15],B2[16],B2[17],B2[18],!B3[18] buffer sp4_h_r_13 lc_trk_g0_5
+B6[15],B6[16],B6[17],B6[18],!B7[18] buffer sp4_h_r_13 lc_trk_g1_5
+B0[15],B0[16],B0[17],B0[18],B1[18] buffer sp4_h_r_17 lc_trk_g0_1
+B4[15],B4[16],B4[17],B4[18],B5[18] buffer sp4_h_r_17 lc_trk_g1_1
+B0[21],B0[22],B0[23],B0[24],B1[21] buffer sp4_h_r_19 lc_trk_g0_3
+B4[21],B4[22],B4[23],B4[24],B5[21] buffer sp4_h_r_19 lc_trk_g1_3
+!B0[25],B1[22],B1[23],B1[24],B1[25] buffer sp4_h_r_2 lc_trk_g0_2
+!B4[25],B5[22],B5[23],B5[24],B5[25] buffer sp4_h_r_2 lc_trk_g1_2
+B2[14],B3[14],B3[15],B3[16],B3[17] buffer sp4_h_r_20 lc_trk_g0_4
+B6[14],B7[14],B7[15],B7[16],B7[17] buffer sp4_h_r_20 lc_trk_g1_4
+B2[25],B3[22],B3[23],B3[24],B3[25] buffer sp4_h_r_22 lc_trk_g0_6
+B6[25],B7[22],B7[23],B7[24],B7[25] buffer sp4_h_r_22 lc_trk_g1_6
+B8[15],B8[16],B8[17],!B8[18],B9[18] buffer sp4_h_r_25 lc_trk_g2_1
+B12[15],B12[16],B12[17],!B12[18],B13[18] buffer sp4_h_r_25 lc_trk_g3_1
+!B8[21],B8[22],B8[23],B8[24],B9[21] buffer sp4_h_r_27 lc_trk_g2_3
+!B12[21],B12[22],B12[23],B12[24],B13[21] buffer sp4_h_r_27 lc_trk_g3_3
+!B0[21],B0[22],B0[23],B0[24],B1[21] buffer sp4_h_r_3 lc_trk_g0_3
+!B4[21],B4[22],B4[23],B4[24],B5[21] buffer sp4_h_r_3 lc_trk_g1_3
+!B10[25],B11[22],B11[23],B11[24],B11[25] buffer sp4_h_r_30 lc_trk_g2_6
+!B14[25],B15[22],B15[23],B15[24],B15[25] buffer sp4_h_r_30 lc_trk_g3_6
+B8[25],B9[22],B9[23],B9[24],!B9[25] buffer sp4_h_r_34 lc_trk_g2_2
+B12[25],B13[22],B13[23],B13[24],!B13[25] buffer sp4_h_r_34 lc_trk_g3_2
+B8[21],B8[22],B8[23],B8[24],!B9[21] buffer sp4_h_r_35 lc_trk_g2_3
+B12[21],B12[22],B12[23],B12[24],!B13[21] buffer sp4_h_r_35 lc_trk_g3_3
+B10[14],!B11[14],B11[15],B11[16],B11[17] buffer sp4_h_r_36 lc_trk_g2_4
+B14[14],!B15[14],B15[15],B15[16],B15[17] buffer sp4_h_r_36 lc_trk_g3_4
+B10[15],B10[16],B10[17],B10[18],!B11[18] buffer sp4_h_r_37 lc_trk_g2_5
+B14[15],B14[16],B14[17],B14[18],!B15[18] buffer sp4_h_r_37 lc_trk_g3_5
+!B2[14],B3[14],B3[15],B3[16],B3[17] buffer sp4_h_r_4 lc_trk_g0_4
+!B6[14],B7[14],B7[15],B7[16],B7[17] buffer sp4_h_r_4 lc_trk_g1_4
+B8[25],B9[22],B9[23],B9[24],B9[25] buffer sp4_h_r_42 lc_trk_g2_2
+B12[25],B13[22],B13[23],B13[24],B13[25] buffer sp4_h_r_42 lc_trk_g3_2
+B10[14],B11[14],B11[15],B11[16],B11[17] buffer sp4_h_r_44 lc_trk_g2_4
+B14[14],B15[14],B15[15],B15[16],B15[17] buffer sp4_h_r_44 lc_trk_g3_4
+B10[15],B10[16],B10[17],B10[18],B11[18] buffer sp4_h_r_45 lc_trk_g2_5
+B14[15],B14[16],B14[17],B14[18],B15[18] buffer sp4_h_r_45 lc_trk_g3_5
+B10[25],B11[22],B11[23],B11[24],B11[25] buffer sp4_h_r_46 lc_trk_g2_6
+B14[25],B15[22],B15[23],B15[24],B15[25] buffer sp4_h_r_46 lc_trk_g3_6
+B10[21],B10[22],B10[23],B10[24],B11[21] buffer sp4_h_r_47 lc_trk_g2_7
+B14[21],B14[22],B14[23],B14[24],B15[21] buffer sp4_h_r_47 lc_trk_g3_7
+B2[15],B2[16],B2[17],!B2[18],B3[18] buffer sp4_h_r_5 lc_trk_g0_5
+B6[15],B6[16],B6[17],!B6[18],B7[18] buffer sp4_h_r_5 lc_trk_g1_5
+!B2[25],B3[22],B3[23],B3[24],B3[25] buffer sp4_h_r_6 lc_trk_g0_6
+!B6[25],B7[22],B7[23],B7[24],B7[25] buffer sp4_h_r_6 lc_trk_g1_6
+!B2[21],B2[22],B2[23],B2[24],B3[21] buffer sp4_h_r_7 lc_trk_g0_7
+!B6[21],B6[22],B6[23],B6[24],B7[21] buffer sp4_h_r_7 lc_trk_g1_7
+B0[14],!B1[14],B1[15],B1[16],B1[17] buffer sp4_h_r_8 lc_trk_g0_0
+B4[14],!B5[14],B5[15],B5[16],B5[17] buffer sp4_h_r_8 lc_trk_g1_0
+B0[15],B0[16],B0[17],B0[18],!B1[18] buffer sp4_h_r_9 lc_trk_g0_1
+B4[15],B4[16],B4[17],B4[18],!B5[18] buffer sp4_h_r_9 lc_trk_g1_1
+!B4[14],!B5[14],!B5[15],!B5[16],B5[17] buffer sp4_r_v_b_0 lc_trk_g1_0
+!B4[15],!B4[16],B4[17],!B4[18],!B5[18] buffer sp4_r_v_b_1 lc_trk_g1_1
+!B8[25],B9[22],!B9[23],!B9[24],!B9[25] buffer sp4_r_v_b_10 lc_trk_g2_2
+!B8[21],B8[22],!B8[23],!B8[24],!B9[21] buffer sp4_r_v_b_11 lc_trk_g2_3
+!B10[14],!B11[14],!B11[15],!B11[16],B11[17] buffer sp4_r_v_b_12 lc_trk_g2_4
+!B10[15],!B10[16],B10[17],!B10[18],!B11[18] buffer sp4_r_v_b_13 lc_trk_g2_5
+!B10[25],B11[22],!B11[23],!B11[24],!B11[25] buffer sp4_r_v_b_14 lc_trk_g2_6
+!B10[21],B10[22],!B10[23],!B10[24],!B11[21] buffer sp4_r_v_b_15 lc_trk_g2_7
+!B12[14],!B13[14],!B13[15],!B13[16],B13[17] buffer sp4_r_v_b_16 lc_trk_g3_0
+!B12[15],!B12[16],B12[17],!B12[18],!B13[18] buffer sp4_r_v_b_17 lc_trk_g3_1
+!B12[25],B13[22],!B13[23],!B13[24],!B13[25] buffer sp4_r_v_b_18 lc_trk_g3_2
+!B12[21],B12[22],!B12[23],!B12[24],!B13[21] buffer sp4_r_v_b_19 lc_trk_g3_3
+!B4[25],B5[22],!B5[23],!B5[24],!B5[25] buffer sp4_r_v_b_2 lc_trk_g1_2
+!B14[14],!B15[14],!B15[15],!B15[16],B15[17] buffer sp4_r_v_b_20 lc_trk_g3_4
+!B14[15],!B14[16],B14[17],!B14[18],!B15[18] buffer sp4_r_v_b_21 lc_trk_g3_5
+!B14[25],B15[22],!B15[23],!B15[24],!B15[25] buffer sp4_r_v_b_22 lc_trk_g3_6
+!B14[21],B14[22],!B14[23],!B14[24],!B15[21] buffer sp4_r_v_b_23 lc_trk_g3_7
+!B0[14],!B1[14],!B1[15],!B1[16],B1[17] buffer sp4_r_v_b_24 lc_trk_g0_0
+!B4[14],B5[14],!B5[15],!B5[16],B5[17] buffer sp4_r_v_b_24 lc_trk_g1_0
+!B0[15],!B0[16],B0[17],!B0[18],!B1[18] buffer sp4_r_v_b_25 lc_trk_g0_1
+!B4[15],!B4[16],B4[17],!B4[18],B5[18] buffer sp4_r_v_b_25 lc_trk_g1_1
+!B0[25],B1[22],!B1[23],!B1[24],!B1[25] buffer sp4_r_v_b_26 lc_trk_g0_2
+!B4[25],B5[22],!B5[23],!B5[24],B5[25] buffer sp4_r_v_b_26 lc_trk_g1_2
+!B0[21],B0[22],!B0[23],!B0[24],!B1[21] buffer sp4_r_v_b_27 lc_trk_g0_3
+!B4[21],B4[22],!B4[23],!B4[24],B5[21] buffer sp4_r_v_b_27 lc_trk_g1_3
+!B2[14],B3[14],!B3[15],!B3[16],B3[17] buffer sp4_r_v_b_28 lc_trk_g0_4
+!B6[14],B7[14],!B7[15],!B7[16],B7[17] buffer sp4_r_v_b_28 lc_trk_g1_4
+!B2[15],!B2[16],B2[17],!B2[18],B3[18] buffer sp4_r_v_b_29 lc_trk_g0_5
+!B6[15],!B6[16],B6[17],!B6[18],B7[18] buffer sp4_r_v_b_29 lc_trk_g1_5
+!B4[21],B4[22],!B4[23],!B4[24],!B5[21] buffer sp4_r_v_b_3 lc_trk_g1_3
+!B2[25],B3[22],!B3[23],!B3[24],B3[25] buffer sp4_r_v_b_30 lc_trk_g0_6
+!B6[25],B7[22],!B7[23],!B7[24],B7[25] buffer sp4_r_v_b_30 lc_trk_g1_6
+!B2[21],B2[22],!B2[23],!B2[24],B3[21] buffer sp4_r_v_b_31 lc_trk_g0_7
+!B6[21],B6[22],!B6[23],!B6[24],B7[21] buffer sp4_r_v_b_31 lc_trk_g1_7
+!B0[21],B0[22],!B0[23],!B0[24],B1[21] buffer sp4_r_v_b_32 lc_trk_g0_3
+!B8[14],B9[14],!B9[15],!B9[16],B9[17] buffer sp4_r_v_b_32 lc_trk_g2_0
+!B0[25],B1[22],!B1[23],!B1[24],B1[25] buffer sp4_r_v_b_33 lc_trk_g0_2
+!B8[15],!B8[16],B8[17],!B8[18],B9[18] buffer sp4_r_v_b_33 lc_trk_g2_1
+!B0[15],!B0[16],B0[17],!B0[18],B1[18] buffer sp4_r_v_b_34 lc_trk_g0_1
+!B8[25],B9[22],!B9[23],!B9[24],B9[25] buffer sp4_r_v_b_34 lc_trk_g2_2
+!B0[14],B1[14],!B1[15],!B1[16],B1[17] buffer sp4_r_v_b_35 lc_trk_g0_0
+!B8[21],B8[22],!B8[23],!B8[24],B9[21] buffer sp4_r_v_b_35 lc_trk_g2_3
+!B10[14],B11[14],!B11[15],!B11[16],B11[17] buffer sp4_r_v_b_36 lc_trk_g2_4
+!B10[15],!B10[16],B10[17],!B10[18],B11[18] buffer sp4_r_v_b_37 lc_trk_g2_5
+!B10[25],B11[22],!B11[23],!B11[24],B11[25] buffer sp4_r_v_b_38 lc_trk_g2_6
+!B10[21],B10[22],!B10[23],!B10[24],B11[21] buffer sp4_r_v_b_39 lc_trk_g2_7
+!B6[14],!B7[14],!B7[15],!B7[16],B7[17] buffer sp4_r_v_b_4 lc_trk_g1_4
+!B12[14],B13[14],!B13[15],!B13[16],B13[17] buffer sp4_r_v_b_40 lc_trk_g3_0
+!B12[15],!B12[16],B12[17],!B12[18],B13[18] buffer sp4_r_v_b_41 lc_trk_g3_1
+!B12[25],B13[22],!B13[23],!B13[24],B13[25] buffer sp4_r_v_b_42 lc_trk_g3_2
+!B12[21],B12[22],!B12[23],!B12[24],B13[21] buffer sp4_r_v_b_43 lc_trk_g3_3
+!B14[14],B15[14],!B15[15],!B15[16],B15[17] buffer sp4_r_v_b_44 lc_trk_g3_4
+!B14[15],!B14[16],B14[17],!B14[18],B15[18] buffer sp4_r_v_b_45 lc_trk_g3_5
+!B14[25],B15[22],!B15[23],!B15[24],B15[25] buffer sp4_r_v_b_46 lc_trk_g3_6
+!B14[21],B14[22],!B14[23],!B14[24],B15[21] buffer sp4_r_v_b_47 lc_trk_g3_7
+!B6[15],!B6[16],B6[17],!B6[18],!B7[18] buffer sp4_r_v_b_5 lc_trk_g1_5
+!B6[25],B7[22],!B7[23],!B7[24],!B7[25] buffer sp4_r_v_b_6 lc_trk_g1_6
+!B6[21],B6[22],!B6[23],!B6[24],!B7[21] buffer sp4_r_v_b_7 lc_trk_g1_7
+!B8[14],!B9[14],!B9[15],!B9[16],B9[17] buffer sp4_r_v_b_8 lc_trk_g2_0
+!B8[15],!B8[16],B8[17],!B8[18],!B9[18] buffer sp4_r_v_b_9 lc_trk_g2_1
+B0[14],!B1[14],!B1[15],B1[16],B1[17] buffer sp4_v_b_0 lc_trk_g0_0
+B4[14],!B5[14],!B5[15],B5[16],B5[17] buffer sp4_v_b_0 lc_trk_g1_0
+!B0[15],B0[16],B0[17],B0[18],!B1[18] buffer sp4_v_b_1 lc_trk_g0_1
+!B4[15],B4[16],B4[17],B4[18],!B5[18] buffer sp4_v_b_1 lc_trk_g1_1
+B0[25],B1[22],B1[23],!B1[24],B1[25] buffer sp4_v_b_10 lc_trk_g0_2
+B4[25],B5[22],B5[23],!B5[24],B5[25] buffer sp4_v_b_10 lc_trk_g1_2
+B0[21],B0[22],B0[23],!B0[24],B1[21] buffer sp4_v_b_11 lc_trk_g0_3
+B4[21],B4[22],B4[23],!B4[24],B5[21] buffer sp4_v_b_11 lc_trk_g1_3
+!B2[15],B2[16],B2[17],B2[18],B3[18] buffer sp4_v_b_13 lc_trk_g0_5
+!B6[15],B6[16],B6[17],B6[18],B7[18] buffer sp4_v_b_13 lc_trk_g1_5
+B2[25],B3[22],B3[23],!B3[24],B3[25] buffer sp4_v_b_14 lc_trk_g0_6
+B6[25],B7[22],B7[23],!B7[24],B7[25] buffer sp4_v_b_14 lc_trk_g1_6
+!B0[14],!B1[14],B1[15],B1[16],B1[17] buffer sp4_v_b_16 lc_trk_g0_0
+!B4[14],!B5[14],B5[15],B5[16],B5[17] buffer sp4_v_b_16 lc_trk_g1_0
+B0[15],B0[16],B0[17],!B0[18],!B1[18] buffer sp4_v_b_17 lc_trk_g0_1
+B4[15],B4[16],B4[17],!B4[18],!B5[18] buffer sp4_v_b_17 lc_trk_g1_1
+!B0[21],B0[22],B0[23],B0[24],!B1[21] buffer sp4_v_b_19 lc_trk_g0_3
+!B4[21],B4[22],B4[23],B4[24],!B5[21] buffer sp4_v_b_19 lc_trk_g1_3
+B0[25],B1[22],B1[23],!B1[24],!B1[25] buffer sp4_v_b_2 lc_trk_g0_2
+B4[25],B5[22],B5[23],!B5[24],!B5[25] buffer sp4_v_b_2 lc_trk_g1_2
+!B2[14],!B3[14],B3[15],B3[16],B3[17] buffer sp4_v_b_20 lc_trk_g0_4
+!B6[14],!B7[14],B7[15],B7[16],B7[17] buffer sp4_v_b_20 lc_trk_g1_4
+!B2[25],B3[22],B3[23],B3[24],!B3[25] buffer sp4_v_b_22 lc_trk_g0_6
+!B6[25],B7[22],B7[23],B7[24],!B7[25] buffer sp4_v_b_22 lc_trk_g1_6
+!B8[15],B8[16],B8[17],B8[18],!B9[18] buffer sp4_v_b_25 lc_trk_g2_1
+!B12[15],B12[16],B12[17],B12[18],!B13[18] buffer sp4_v_b_25 lc_trk_g3_1
+B8[25],B9[22],B9[23],!B9[24],!B9[25] buffer sp4_v_b_26 lc_trk_g2_2
+B12[25],B13[22],B13[23],!B13[24],!B13[25] buffer sp4_v_b_26 lc_trk_g3_2
+B10[14],!B11[14],!B11[15],B11[16],B11[17] buffer sp4_v_b_28 lc_trk_g2_4
+B14[14],!B15[14],!B15[15],B15[16],B15[17] buffer sp4_v_b_28 lc_trk_g3_4
+!B10[15],B10[16],B10[17],B10[18],!B11[18] buffer sp4_v_b_29 lc_trk_g2_5
+!B14[15],B14[16],B14[17],B14[18],!B15[18] buffer sp4_v_b_29 lc_trk_g3_5
+B0[21],B0[22],B0[23],!B0[24],!B1[21] buffer sp4_v_b_3 lc_trk_g0_3
+B4[21],B4[22],B4[23],!B4[24],!B5[21] buffer sp4_v_b_3 lc_trk_g1_3
+B10[25],B11[22],B11[23],!B11[24],!B11[25] buffer sp4_v_b_30 lc_trk_g2_6
+B14[25],B15[22],B15[23],!B15[24],!B15[25] buffer sp4_v_b_30 lc_trk_g3_6
+!B8[15],B8[16],B8[17],B8[18],B9[18] buffer sp4_v_b_33 lc_trk_g2_1
+!B12[15],B12[16],B12[17],B12[18],B13[18] buffer sp4_v_b_33 lc_trk_g3_1
+!B10[15],B10[16],B10[17],B10[18],B11[18] buffer sp4_v_b_37 lc_trk_g2_5
+!B14[15],B14[16],B14[17],B14[18],B15[18] buffer sp4_v_b_37 lc_trk_g3_5
+B10[25],B11[22],B11[23],!B11[24],B11[25] buffer sp4_v_b_38 lc_trk_g2_6
+B14[25],B15[22],B15[23],!B15[24],B15[25] buffer sp4_v_b_38 lc_trk_g3_6
+B2[14],!B3[14],!B3[15],B3[16],B3[17] buffer sp4_v_b_4 lc_trk_g0_4
+B6[14],!B7[14],!B7[15],B7[16],B7[17] buffer sp4_v_b_4 lc_trk_g1_4
+!B8[14],!B9[14],B9[15],B9[16],B9[17] buffer sp4_v_b_40 lc_trk_g2_0
+!B12[14],!B13[14],B13[15],B13[16],B13[17] buffer sp4_v_b_40 lc_trk_g3_0
+B8[15],B8[16],B8[17],!B8[18],!B9[18] buffer sp4_v_b_41 lc_trk_g2_1
+B12[15],B12[16],B12[17],!B12[18],!B13[18] buffer sp4_v_b_41 lc_trk_g3_1
+B10[15],B10[16],B10[17],!B10[18],!B11[18] buffer sp4_v_b_45 lc_trk_g2_5
+B14[15],B14[16],B14[17],!B14[18],!B15[18] buffer sp4_v_b_45 lc_trk_g3_5
+!B10[25],B11[22],B11[23],B11[24],!B11[25] buffer sp4_v_b_46 lc_trk_g2_6
+!B14[25],B15[22],B15[23],B15[24],!B15[25] buffer sp4_v_b_46 lc_trk_g3_6
+!B10[21],B10[22],B10[23],B10[24],!B11[21] buffer sp4_v_b_47 lc_trk_g2_7
+!B14[21],B14[22],B14[23],B14[24],!B15[21] buffer sp4_v_b_47 lc_trk_g3_7
+!B2[15],B2[16],B2[17],B2[18],!B3[18] buffer sp4_v_b_5 lc_trk_g0_5
+!B6[15],B6[16],B6[17],B6[18],!B7[18] buffer sp4_v_b_5 lc_trk_g1_5
+B2[25],B3[22],B3[23],!B3[24],!B3[25] buffer sp4_v_b_6 lc_trk_g0_6
+B6[25],B7[22],B7[23],!B7[24],!B7[25] buffer sp4_v_b_6 lc_trk_g1_6
+B2[21],B2[22],B2[23],!B2[24],!B3[21] buffer sp4_v_b_7 lc_trk_g0_7
+B6[21],B6[22],B6[23],!B6[24],!B7[21] buffer sp4_v_b_7 lc_trk_g1_7
+B0[14],B1[14],!B1[15],B1[16],B1[17] buffer sp4_v_b_8 lc_trk_g0_0
+B4[14],B5[14],!B5[15],B5[16],B5[17] buffer sp4_v_b_8 lc_trk_g1_0
+!B0[15],B0[16],B0[17],B0[18],B1[18] buffer sp4_v_b_9 lc_trk_g0_1
+!B4[15],B4[16],B4[17],B4[18],B5[18] buffer sp4_v_b_9 lc_trk_g1_1
+B2[14],B3[14],!B3[15],B3[16],B3[17] buffer sp4_v_t_1 lc_trk_g0_4
+B6[14],B7[14],!B7[15],B7[16],B7[17] buffer sp4_v_t_1 lc_trk_g1_4
+!B2[21],B2[22],B2[23],B2[24],!B3[21] buffer sp4_v_t_10 lc_trk_g0_7
+!B6[21],B6[22],B6[23],B6[24],!B7[21] buffer sp4_v_t_10 lc_trk_g1_7
+B8[14],!B9[14],!B9[15],B9[16],B9[17] buffer sp4_v_t_13 lc_trk_g2_0
+B12[14],!B13[14],!B13[15],B13[16],B13[17] buffer sp4_v_t_13 lc_trk_g3_0
+B8[21],B8[22],B8[23],!B8[24],!B9[21] buffer sp4_v_t_14 lc_trk_g2_3
+B12[21],B12[22],B12[23],!B12[24],!B13[21] buffer sp4_v_t_14 lc_trk_g3_3
+B10[21],B10[22],B10[23],!B10[24],!B11[21] buffer sp4_v_t_18 lc_trk_g2_7
+B14[21],B14[22],B14[23],!B14[24],!B15[21] buffer sp4_v_t_18 lc_trk_g3_7
+B2[21],B2[22],B2[23],!B2[24],B3[21] buffer sp4_v_t_2 lc_trk_g0_7
+B6[21],B6[22],B6[23],!B6[24],B7[21] buffer sp4_v_t_2 lc_trk_g1_7
+B8[14],B9[14],!B9[15],B9[16],B9[17] buffer sp4_v_t_21 lc_trk_g2_0
+B12[14],B13[14],!B13[15],B13[16],B13[17] buffer sp4_v_t_21 lc_trk_g3_0
+B8[21],B8[22],B8[23],!B8[24],B9[21] buffer sp4_v_t_22 lc_trk_g2_3
+B12[21],B12[22],B12[23],!B12[24],B13[21] buffer sp4_v_t_22 lc_trk_g3_3
+B8[25],B9[22],B9[23],!B9[24],B9[25] buffer sp4_v_t_23 lc_trk_g2_2
+B12[25],B13[22],B13[23],!B13[24],B13[25] buffer sp4_v_t_23 lc_trk_g3_2
+B10[14],B11[14],!B11[15],B11[16],B11[17] buffer sp4_v_t_25 lc_trk_g2_4
+B14[14],B15[14],!B15[15],B15[16],B15[17] buffer sp4_v_t_25 lc_trk_g3_4
+B10[21],B10[22],B10[23],!B10[24],B11[21] buffer sp4_v_t_26 lc_trk_g2_7
+B14[21],B14[22],B14[23],!B14[24],B15[21] buffer sp4_v_t_26 lc_trk_g3_7
+!B8[21],B8[22],B8[23],B8[24],!B9[21] buffer sp4_v_t_30 lc_trk_g2_3
+!B12[21],B12[22],B12[23],B12[24],!B13[21] buffer sp4_v_t_30 lc_trk_g3_3
+!B8[25],B9[22],B9[23],B9[24],!B9[25] buffer sp4_v_t_31 lc_trk_g2_2
+!B12[25],B13[22],B13[23],B13[24],!B13[25] buffer sp4_v_t_31 lc_trk_g3_2
+!B10[14],!B11[14],B11[15],B11[16],B11[17] buffer sp4_v_t_33 lc_trk_g2_4
+!B14[14],!B15[14],B15[15],B15[16],B15[17] buffer sp4_v_t_33 lc_trk_g3_4
+!B0[25],B1[22],B1[23],B1[24],!B1[25] buffer sp4_v_t_7 lc_trk_g0_2
+!B4[25],B5[22],B5[23],B5[24],!B5[25] buffer sp4_v_t_7 lc_trk_g1_2
+B2[15],B2[16],B2[17],!B2[18],!B3[18] buffer sp4_v_t_8 lc_trk_g0_5
+B6[15],B6[16],B6[17],!B6[18],!B7[18] buffer sp4_v_t_8 lc_trk_g1_5
+!B8[14],B9[14],B9[15],!B9[16],B9[17] buffer tnl_op_0 lc_trk_g2_0
+!B12[14],B13[14],B13[15],!B13[16],B13[17] buffer tnl_op_0 lc_trk_g3_0
+B8[15],!B8[16],B8[17],!B8[18],B9[18] buffer tnl_op_1 lc_trk_g2_1
+B12[15],!B12[16],B12[17],!B12[18],B13[18] buffer tnl_op_1 lc_trk_g3_1
+!B8[25],B9[22],!B9[23],B9[24],B9[25] buffer tnl_op_2 lc_trk_g2_2
+!B12[25],B13[22],!B13[23],B13[24],B13[25] buffer tnl_op_2 lc_trk_g3_2
+!B8[21],B8[22],!B8[23],B8[24],B9[21] buffer tnl_op_3 lc_trk_g2_3
+!B12[21],B12[22],!B12[23],B12[24],B13[21] buffer tnl_op_3 lc_trk_g3_3
+!B10[14],B11[14],B11[15],!B11[16],B11[17] buffer tnl_op_4 lc_trk_g2_4
+!B14[14],B15[14],B15[15],!B15[16],B15[17] buffer tnl_op_4 lc_trk_g3_4
+B10[15],!B10[16],B10[17],!B10[18],B11[18] buffer tnl_op_5 lc_trk_g2_5
+B14[15],!B14[16],B14[17],!B14[18],B15[18] buffer tnl_op_5 lc_trk_g3_5
+!B10[25],B11[22],!B11[23],B11[24],B11[25] buffer tnl_op_6 lc_trk_g2_6
+!B14[25],B15[22],!B15[23],B15[24],B15[25] buffer tnl_op_6 lc_trk_g3_6
+!B10[21],B10[22],!B10[23],B10[24],B11[21] buffer tnl_op_7 lc_trk_g2_7
+!B14[21],B14[22],!B14[23],B14[24],B15[21] buffer tnl_op_7 lc_trk_g3_7
+!B8[14],!B9[14],B9[15],!B9[16],B9[17] buffer tnr_op_0 lc_trk_g2_0
+!B12[14],!B13[14],B13[15],!B13[16],B13[17] buffer tnr_op_0 lc_trk_g3_0
+B8[15],!B8[16],B8[17],!B8[18],!B9[18] buffer tnr_op_1 lc_trk_g2_1
+B12[15],!B12[16],B12[17],!B12[18],!B13[18] buffer tnr_op_1 lc_trk_g3_1
+!B8[25],B9[22],!B9[23],B9[24],!B9[25] buffer tnr_op_2 lc_trk_g2_2
+!B12[25],B13[22],!B13[23],B13[24],!B13[25] buffer tnr_op_2 lc_trk_g3_2
+!B8[21],B8[22],!B8[23],B8[24],!B9[21] buffer tnr_op_3 lc_trk_g2_3
+!B12[21],B12[22],!B12[23],B12[24],!B13[21] buffer tnr_op_3 lc_trk_g3_3
+!B10[14],!B11[14],B11[15],!B11[16],B11[17] buffer tnr_op_4 lc_trk_g2_4
+!B14[14],!B15[14],B15[15],!B15[16],B15[17] buffer tnr_op_4 lc_trk_g3_4
+B10[15],!B10[16],B10[17],!B10[18],!B11[18] buffer tnr_op_5 lc_trk_g2_5
+B14[15],!B14[16],B14[17],!B14[18],!B15[18] buffer tnr_op_5 lc_trk_g3_5
+!B10[25],B11[22],!B11[23],B11[24],!B11[25] buffer tnr_op_6 lc_trk_g2_6
+!B14[25],B15[22],!B15[23],B15[24],!B15[25] buffer tnr_op_6 lc_trk_g3_6
+!B10[21],B10[22],!B10[23],B10[24],!B11[21] buffer tnr_op_7 lc_trk_g2_7
+!B14[21],B14[22],!B14[23],B14[24],!B15[21] buffer tnr_op_7 lc_trk_g3_7
+!B0[14],B1[14],B1[15],!B1[16],B1[17] buffer top_op_0 lc_trk_g0_0
+!B4[14],B5[14],B5[15],!B5[16],B5[17] buffer top_op_0 lc_trk_g1_0
+!B0[25],B1[22],!B1[23],B1[24],B1[25] buffer top_op_2 lc_trk_g0_2
+!B4[25],B5[22],!B5[23],B5[24],B5[25] buffer top_op_2 lc_trk_g1_2
+!B2[14],B3[14],B3[15],!B3[16],B3[17] buffer top_op_4 lc_trk_g0_4
+!B6[14],B7[14],B7[15],!B7[16],B7[17] buffer top_op_4 lc_trk_g1_4
+!B2[25],B3[22],!B3[23],B3[24],B3[25] buffer top_op_6 lc_trk_g0_6
+!B6[25],B7[22],!B7[23],B7[24],B7[25] buffer top_op_6 lc_trk_g1_6
+B15[38] buffer wire_bram/ram/RDATA_0 sp12_h_l_21
+B14[37] buffer wire_bram/ram/RDATA_0 sp12_h_l_5
+B15[40] buffer wire_bram/ram/RDATA_0 sp12_v_b_14
+B15[36] buffer wire_bram/ram/RDATA_0 sp4_h_l_3
+B15[37] buffer wire_bram/ram/RDATA_0 sp4_h_r_30
+B14[36] buffer wire_bram/ram/RDATA_0 sp4_h_r_46
+B15[41] buffer wire_bram/ram/RDATA_0 sp4_r_v_b_15
+B14[40] buffer wire_bram/ram/RDATA_0 sp4_r_v_b_31
+B14[41] buffer wire_bram/ram/RDATA_0 sp4_r_v_b_47
+B15[39] buffer wire_bram/ram/RDATA_0 sp4_v_b_14
+B14[38] buffer wire_bram/ram/RDATA_0 sp4_v_b_30
+B14[39] buffer wire_bram/ram/RDATA_0 sp4_v_b_46
+B12[37] buffer wire_bram/ram/RDATA_1 sp12_h_l_3
+B13[38] buffer wire_bram/ram/RDATA_1 sp12_h_r_20
+B13[40] buffer wire_bram/ram/RDATA_1 sp12_v_b_12
+B13[37] buffer wire_bram/ram/RDATA_1 sp4_h_l_17
+B13[36] buffer wire_bram/ram/RDATA_1 sp4_h_r_12
+B12[36] buffer wire_bram/ram/RDATA_1 sp4_h_r_44
+B13[41] buffer wire_bram/ram/RDATA_1 sp4_r_v_b_13
+B12[40] buffer wire_bram/ram/RDATA_1 sp4_r_v_b_29
+B12[41] buffer wire_bram/ram/RDATA_1 sp4_r_v_b_45
+B12[38] buffer wire_bram/ram/RDATA_1 sp4_v_b_28
+B13[39] buffer wire_bram/ram/RDATA_1 sp4_v_t_1
+B12[39] buffer wire_bram/ram/RDATA_1 sp4_v_t_33
+B11[38] buffer wire_bram/ram/RDATA_2 sp12_h_r_18
+B10[37] buffer wire_bram/ram/RDATA_2 sp12_h_r_2
+B11[40] buffer wire_bram/ram/RDATA_2 sp12_v_t_9
+B11[37] buffer wire_bram/ram/RDATA_2 sp4_h_l_15
+B11[36] buffer wire_bram/ram/RDATA_2 sp4_h_r_10
+B10[36] buffer wire_bram/ram/RDATA_2 sp4_h_r_42
+B11[41] buffer wire_bram/ram/RDATA_2 sp4_r_v_b_11
+B10[40] buffer wire_bram/ram/RDATA_2 sp4_r_v_b_27
+B10[41] buffer wire_bram/ram/RDATA_2 sp4_r_v_b_43
+B11[39] buffer wire_bram/ram/RDATA_2 sp4_v_b_10
+B10[38] buffer wire_bram/ram/RDATA_2 sp4_v_b_26
+B10[39] buffer wire_bram/ram/RDATA_2 sp4_v_t_31
+B8[37] buffer wire_bram/ram/RDATA_3 sp12_h_r_0
+B9[38] buffer wire_bram/ram/RDATA_3 sp12_h_r_16
+B9[40] buffer wire_bram/ram/RDATA_3 sp12_v_t_7
+B9[37] buffer wire_bram/ram/RDATA_3 sp4_h_l_13
+B8[36] buffer wire_bram/ram/RDATA_3 sp4_h_l_29
+B9[36] buffer wire_bram/ram/RDATA_3 sp4_h_r_8
+B8[40] buffer wire_bram/ram/RDATA_3 sp4_r_v_b_25
+B8[41] buffer wire_bram/ram/RDATA_3 sp4_r_v_b_41
+B9[41] buffer wire_bram/ram/RDATA_3 sp4_r_v_b_9
+B8[39] buffer wire_bram/ram/RDATA_3 sp4_v_b_40
+B9[39] buffer wire_bram/ram/RDATA_3 sp4_v_b_8
+B8[38] buffer wire_bram/ram/RDATA_3 sp4_v_t_13
+B6[37] buffer wire_bram/ram/RDATA_4 sp12_h_l_13
+B6[39] buffer wire_bram/ram/RDATA_4 sp12_v_b_6
+B7[40] buffer wire_bram/ram/RDATA_4 sp12_v_t_21
+B6[36] buffer wire_bram/ram/RDATA_4 sp4_h_l_27
+B7[37] buffer wire_bram/ram/RDATA_4 sp4_h_r_22
+B7[36] buffer wire_bram/ram/RDATA_4 sp4_h_r_6
+B6[40] buffer wire_bram/ram/RDATA_4 sp4_r_v_b_23
+B6[41] buffer wire_bram/ram/RDATA_4 sp4_r_v_b_39
+B7[41] buffer wire_bram/ram/RDATA_4 sp4_r_v_b_7
+B7[39] buffer wire_bram/ram/RDATA_4 sp4_v_b_22
+B6[38] buffer wire_bram/ram/RDATA_4 sp4_v_b_38
+B7[38] buffer wire_bram/ram/RDATA_4 sp4_v_b_6
+B4[37] buffer wire_bram/ram/RDATA_5 sp12_h_r_12
+B5[40] buffer wire_bram/ram/RDATA_5 sp12_v_t_19
+B4[39] buffer wire_bram/ram/RDATA_5 sp12_v_t_3
+B5[37] buffer wire_bram/ram/RDATA_5 sp4_h_r_20
+B4[36] buffer wire_bram/ram/RDATA_5 sp4_h_r_36
+B5[36] buffer wire_bram/ram/RDATA_5 sp4_h_r_4
+B4[40] buffer wire_bram/ram/RDATA_5 sp4_r_v_b_21
+B4[41] buffer wire_bram/ram/RDATA_5 sp4_r_v_b_37
+B5[41] buffer wire_bram/ram/RDATA_5 sp4_r_v_b_5
+B5[39] buffer wire_bram/ram/RDATA_5 sp4_v_b_20
+B5[38] buffer wire_bram/ram/RDATA_5 sp4_v_b_4
+B4[38] buffer wire_bram/ram/RDATA_5 sp4_v_t_25
+B2[37] buffer wire_bram/ram/RDATA_6 sp12_h_r_10
+B2[39] buffer wire_bram/ram/RDATA_6 sp12_v_b_2
+B3[40] buffer wire_bram/ram/RDATA_6 sp12_v_t_17
+B3[37] buffer wire_bram/ram/RDATA_6 sp4_h_l_7
+B3[36] buffer wire_bram/ram/RDATA_6 sp4_h_r_2
+B2[36] buffer wire_bram/ram/RDATA_6 sp4_h_r_34
+B2[40] buffer wire_bram/ram/RDATA_6 sp4_r_v_b_19
+B3[41] buffer wire_bram/ram/RDATA_6 sp4_r_v_b_3
+B2[41] buffer wire_bram/ram/RDATA_6 sp4_r_v_b_35
+B3[38] buffer wire_bram/ram/RDATA_6 sp4_v_b_2
+B2[38] buffer wire_bram/ram/RDATA_6 sp4_v_t_23
+B3[39] buffer wire_bram/ram/RDATA_6 sp4_v_t_7
+B0[37] buffer wire_bram/ram/RDATA_7 sp12_h_r_8
+B0[39] buffer wire_bram/ram/RDATA_7 sp12_v_b_0
+B1[40] buffer wire_bram/ram/RDATA_7 sp12_v_b_16
+B0[36] buffer wire_bram/ram/RDATA_7 sp4_h_l_21
+B1[37] buffer wire_bram/ram/RDATA_7 sp4_h_l_5
+B1[36] buffer wire_bram/ram/RDATA_7 sp4_h_r_0
+B1[41] buffer wire_bram/ram/RDATA_7 sp4_r_v_b_1
+B0[40] buffer wire_bram/ram/RDATA_7 sp4_r_v_b_17
+B0[41] buffer wire_bram/ram/RDATA_7 sp4_r_v_b_33
+B1[38] buffer wire_bram/ram/RDATA_7 sp4_v_b_0
+B1[39] buffer wire_bram/ram/RDATA_7 sp4_v_b_16
+B0[38] buffer wire_bram/ram/RDATA_7 sp4_v_t_21
+!B12[3],B13[3] routing sp12_h_l_22 sp12_h_r_1
+!B8[3],B9[3] routing sp12_h_l_22 sp12_v_b_1
+!B14[3],B15[3] routing sp12_h_l_22 sp12_v_t_22
+!B4[3],B5[3] routing sp12_h_l_23 sp12_h_r_0
+!B0[3],B1[3] routing sp12_h_l_23 sp12_v_b_0
+!B6[3],B7[3] routing sp12_h_l_23 sp12_v_t_23
+B2[3],B3[3] routing sp12_h_r_0 sp12_h_l_23
+B0[3],B1[3] routing sp12_h_r_0 sp12_v_b_0
+B6[3],B7[3] routing sp12_h_r_0 sp12_v_t_23
+B10[3],B11[3] routing sp12_h_r_1 sp12_h_l_22
+B8[3],B9[3] routing sp12_h_r_1 sp12_v_b_1
+B14[3],B15[3] routing sp12_h_r_1 sp12_v_t_22
+!B2[3],B3[3] routing sp12_v_b_0 sp12_h_l_23
+B4[3],B5[3] routing sp12_v_b_0 sp12_h_r_0
+B6[3],!B7[3] routing sp12_v_b_0 sp12_v_t_23
+!B10[3],B11[3] routing sp12_v_b_1 sp12_h_l_22
+B12[3],B13[3] routing sp12_v_b_1 sp12_h_r_1
+B14[3],!B15[3] routing sp12_v_b_1 sp12_v_t_22
+B10[3],!B11[3] routing sp12_v_t_22 sp12_h_l_22
+B12[3],!B13[3] routing sp12_v_t_22 sp12_h_r_1
+B8[3],!B9[3] routing sp12_v_t_22 sp12_v_b_1
+B2[3],!B3[3] routing sp12_v_t_23 sp12_h_l_23
+B4[3],!B5[3] routing sp12_v_t_23 sp12_h_r_0
+B0[3],!B1[3] routing sp12_v_t_23 sp12_v_b_0
+B0[8],!B0[9],!B0[10] routing sp4_h_l_36 sp4_h_r_1
+!B4[8],B4[9],B4[10] routing sp4_h_l_36 sp4_h_r_4
+!B12[5],B13[4],B13[6] routing sp4_h_l_36 sp4_h_r_9
+B1[8],B1[9],!B1[10] routing sp4_h_l_36 sp4_v_b_1
+B9[8],B9[9],B9[10] routing sp4_h_l_36 sp4_v_b_7
+B3[8],!B3[9],!B3[10] routing sp4_h_l_36 sp4_v_t_36
+!B10[4],B10[6],!B11[5] routing sp4_h_l_36 sp4_v_t_43
+!B0[5],!B1[4],B1[6] routing sp4_h_l_37 sp4_h_r_0
+B4[5],B5[4],!B5[6] routing sp4_h_l_37 sp4_h_r_3
+!B8[12],B9[11],B9[13] routing sp4_h_l_37 sp4_h_r_8
+B0[4],!B0[6],B1[5] routing sp4_h_l_37 sp4_v_b_0
+B8[4],B8[6],B9[5] routing sp4_h_l_37 sp4_v_b_6
+!B2[4],!B2[6],B3[5] routing sp4_h_l_37 sp4_v_t_37
+B6[11],!B6[13],!B7[12] routing sp4_h_l_37 sp4_v_t_40
+!B12[12],B13[11],B13[13] routing sp4_h_l_38 sp4_h_r_11
+!B4[5],!B5[4],B5[6] routing sp4_h_l_38 sp4_h_r_3
+B8[5],B9[4],!B9[6] routing sp4_h_l_38 sp4_h_r_6
+B4[4],!B4[6],B5[5] routing sp4_h_l_38 sp4_v_b_3
+B12[4],B12[6],B13[5] routing sp4_h_l_38 sp4_v_b_9
+!B6[4],!B6[6],B7[5] routing sp4_h_l_38 sp4_v_t_38
+B10[11],!B10[13],!B11[12] routing sp4_h_l_38 sp4_v_t_45
+B12[8],!B12[9],B12[10] routing sp4_h_l_39 sp4_h_r_10
+!B0[12],B1[11],!B1[13] routing sp4_h_l_39 sp4_h_r_2
+B4[12],!B5[11],B5[13] routing sp4_h_l_39 sp4_h_r_5
+!B0[11],B0[13],B1[12] routing sp4_h_l_39 sp4_v_b_2
+B8[11],B8[13],B9[12] routing sp4_h_l_39 sp4_v_b_8
+!B2[11],!B2[13],B3[12] routing sp4_h_l_39 sp4_v_t_39
+!B11[8],!B11[9],B11[10] routing sp4_h_l_39 sp4_v_t_42
+B0[8],!B0[9],B0[10] routing sp4_h_l_40 sp4_h_r_1
+!B4[12],B5[11],!B5[13] routing sp4_h_l_40 sp4_h_r_5
+B8[12],!B9[11],B9[13] routing sp4_h_l_40 sp4_h_r_8
+B12[11],B12[13],B13[12] routing sp4_h_l_40 sp4_v_b_11
+!B4[11],B4[13],B5[12] routing sp4_h_l_40 sp4_v_b_5
+!B6[11],!B6[13],B7[12] routing sp4_h_l_40 sp4_v_t_40
+!B15[8],!B15[9],B15[10] routing sp4_h_l_40 sp4_v_t_47
+!B0[5],B1[4],B1[6] routing sp4_h_l_41 sp4_h_r_0
+B4[8],!B4[9],!B4[10] routing sp4_h_l_41 sp4_h_r_4
+!B8[8],B8[9],B8[10] routing sp4_h_l_41 sp4_h_r_7
+B13[8],B13[9],B13[10] routing sp4_h_l_41 sp4_v_b_10
+B5[8],B5[9],!B5[10] routing sp4_h_l_41 sp4_v_b_4
+B7[8],!B7[9],!B7[10] routing sp4_h_l_41 sp4_v_t_41
+!B14[4],B14[6],!B15[5] routing sp4_h_l_41 sp4_v_t_44
+!B12[8],B12[9],B12[10] routing sp4_h_l_42 sp4_h_r_10
+!B4[5],B5[4],B5[6] routing sp4_h_l_42 sp4_h_r_3
+B8[8],!B8[9],!B8[10] routing sp4_h_l_42 sp4_h_r_7
+B1[8],B1[9],B1[10] routing sp4_h_l_42 sp4_v_b_1
+B9[8],B9[9],!B9[10] routing sp4_h_l_42 sp4_v_b_7
+!B2[4],B2[6],!B3[5] routing sp4_h_l_42 sp4_v_t_37
+B11[8],!B11[9],!B11[10] routing sp4_h_l_42 sp4_v_t_42
+!B0[12],B1[11],B1[13] routing sp4_h_l_43 sp4_h_r_2
+!B8[5],!B9[4],B9[6] routing sp4_h_l_43 sp4_h_r_6
+B12[5],B13[4],!B13[6] routing sp4_h_l_43 sp4_h_r_9
+B0[4],B0[6],B1[5] routing sp4_h_l_43 sp4_v_b_0
+B8[4],!B8[6],B9[5] routing sp4_h_l_43 sp4_v_b_6
+!B10[4],!B10[6],B11[5] routing sp4_h_l_43 sp4_v_t_43
+B14[11],!B14[13],!B15[12] routing sp4_h_l_43 sp4_v_t_46
+B0[5],B1[4],!B1[6] routing sp4_h_l_44 sp4_h_r_0
+!B4[12],B5[11],B5[13] routing sp4_h_l_44 sp4_h_r_5
+!B12[5],!B13[4],B13[6] routing sp4_h_l_44 sp4_h_r_9
+B4[4],B4[6],B5[5] routing sp4_h_l_44 sp4_v_b_3
+B12[4],!B12[6],B13[5] routing sp4_h_l_44 sp4_v_b_9
+B2[11],!B2[13],!B3[12] routing sp4_h_l_44 sp4_v_t_39
+!B14[4],!B14[6],B15[5] routing sp4_h_l_44 sp4_v_t_44
+B12[12],!B13[11],B13[13] routing sp4_h_l_45 sp4_h_r_11
+B4[8],!B4[9],B4[10] routing sp4_h_l_45 sp4_h_r_4
+!B8[12],B9[11],!B9[13] routing sp4_h_l_45 sp4_h_r_8
+B0[11],B0[13],B1[12] routing sp4_h_l_45 sp4_v_b_2
+!B8[11],B8[13],B9[12] routing sp4_h_l_45 sp4_v_b_8
+!B3[8],!B3[9],B3[10] routing sp4_h_l_45 sp4_v_t_36
+!B10[11],!B10[13],B11[12] routing sp4_h_l_45 sp4_v_t_45
+!B12[12],B13[11],!B13[13] routing sp4_h_l_46 sp4_h_r_11
+B0[12],!B1[11],B1[13] routing sp4_h_l_46 sp4_h_r_2
+B8[8],!B8[9],B8[10] routing sp4_h_l_46 sp4_h_r_7
+!B12[11],B12[13],B13[12] routing sp4_h_l_46 sp4_v_b_11
+B4[11],B4[13],B5[12] routing sp4_h_l_46 sp4_v_b_5
+!B7[8],!B7[9],B7[10] routing sp4_h_l_46 sp4_v_t_41
+!B14[11],!B14[13],B15[12] routing sp4_h_l_46 sp4_v_t_46
+!B0[8],B0[9],B0[10] routing sp4_h_l_47 sp4_h_r_1
+B12[8],!B12[9],!B12[10] routing sp4_h_l_47 sp4_h_r_10
+!B8[5],B9[4],B9[6] routing sp4_h_l_47 sp4_h_r_6
+B13[8],B13[9],!B13[10] routing sp4_h_l_47 sp4_v_b_10
+B5[8],B5[9],B5[10] routing sp4_h_l_47 sp4_v_b_4
+!B6[4],B6[6],!B7[5] routing sp4_h_l_47 sp4_v_t_38
+B15[8],!B15[9],!B15[10] routing sp4_h_l_47 sp4_v_t_47
+!B2[5],!B3[4],B3[6] routing sp4_h_r_0 sp4_h_l_37
+B6[5],B7[4],!B7[6] routing sp4_h_r_0 sp4_h_l_38
+!B10[12],B11[11],B11[13] routing sp4_h_r_0 sp4_h_l_45
+!B0[4],!B0[6],B1[5] routing sp4_h_r_0 sp4_v_b_0
+B4[11],!B4[13],!B5[12] routing sp4_h_r_0 sp4_v_b_5
+B2[4],!B2[6],B3[5] routing sp4_h_r_0 sp4_v_t_37
+B10[4],B10[6],B11[5] routing sp4_h_r_0 sp4_v_t_43
+B2[8],!B2[9],!B2[10] routing sp4_h_r_1 sp4_h_l_36
+!B6[8],B6[9],B6[10] routing sp4_h_r_1 sp4_h_l_41
+!B14[5],B15[4],B15[6] routing sp4_h_r_1 sp4_h_l_44
+B1[8],!B1[9],!B1[10] routing sp4_h_r_1 sp4_v_b_1
+!B8[4],B8[6],!B9[5] routing sp4_h_r_1 sp4_v_b_6
+B3[8],B3[9],!B3[10] routing sp4_h_r_1 sp4_v_t_36
+B11[8],B11[9],B11[10] routing sp4_h_r_1 sp4_v_t_42
+!B2[8],B2[9],B2[10] routing sp4_h_r_10 sp4_h_l_36
+!B10[5],B11[4],B11[6] routing sp4_h_r_10 sp4_h_l_43
+B14[8],!B14[9],!B14[10] routing sp4_h_r_10 sp4_h_l_47
+B13[8],!B13[9],!B13[10] routing sp4_h_r_10 sp4_v_b_10
+!B4[4],B4[6],!B5[5] routing sp4_h_r_10 sp4_v_b_3
+B7[8],B7[9],B7[10] routing sp4_h_r_10 sp4_v_t_41
+B15[8],B15[9],!B15[10] routing sp4_h_r_10 sp4_v_t_47
+B2[12],!B3[11],B3[13] routing sp4_h_r_11 sp4_h_l_39
+B10[8],!B10[9],B10[10] routing sp4_h_r_11 sp4_h_l_42
+!B14[12],B15[11],!B15[13] routing sp4_h_r_11 sp4_h_l_46
+!B12[11],!B12[13],B13[12] routing sp4_h_r_11 sp4_v_b_11
+!B5[8],!B5[9],B5[10] routing sp4_h_r_11 sp4_v_b_4
+B6[11],B6[13],B7[12] routing sp4_h_r_11 sp4_v_t_40
+!B14[11],B14[13],B15[12] routing sp4_h_r_11 sp4_v_t_46
+!B2[12],B3[11],!B3[13] routing sp4_h_r_2 sp4_h_l_39
+B6[12],!B7[11],B7[13] routing sp4_h_r_2 sp4_h_l_40
+B14[8],!B14[9],B14[10] routing sp4_h_r_2 sp4_h_l_47
+!B0[11],!B0[13],B1[12] routing sp4_h_r_2 sp4_v_b_2
+!B9[8],!B9[9],B9[10] routing sp4_h_r_2 sp4_v_b_7
+!B2[11],B2[13],B3[12] routing sp4_h_r_2 sp4_v_t_39
+B10[11],B10[13],B11[12] routing sp4_h_r_2 sp4_v_t_45
+!B6[5],!B7[4],B7[6] routing sp4_h_r_3 sp4_h_l_38
+B10[5],B11[4],!B11[6] routing sp4_h_r_3 sp4_h_l_43
+!B14[12],B15[11],B15[13] routing sp4_h_r_3 sp4_h_l_46
+!B4[4],!B4[6],B5[5] routing sp4_h_r_3 sp4_v_b_3
+B8[11],!B8[13],!B9[12] routing sp4_h_r_3 sp4_v_b_8
+B6[4],!B6[6],B7[5] routing sp4_h_r_3 sp4_v_t_38
+B14[4],B14[6],B15[5] routing sp4_h_r_3 sp4_v_t_44
+!B2[5],B3[4],B3[6] routing sp4_h_r_4 sp4_h_l_37
+B6[8],!B6[9],!B6[10] routing sp4_h_r_4 sp4_h_l_41
+!B10[8],B10[9],B10[10] routing sp4_h_r_4 sp4_h_l_42
+B5[8],!B5[9],!B5[10] routing sp4_h_r_4 sp4_v_b_4
+!B12[4],B12[6],!B13[5] routing sp4_h_r_4 sp4_v_b_9
+B7[8],B7[9],!B7[10] routing sp4_h_r_4 sp4_v_t_41
+B15[8],B15[9],B15[10] routing sp4_h_r_4 sp4_v_t_47
+B2[8],!B2[9],B2[10] routing sp4_h_r_5 sp4_h_l_36
+!B6[12],B7[11],!B7[13] routing sp4_h_r_5 sp4_h_l_40
+B10[12],!B11[11],B11[13] routing sp4_h_r_5 sp4_h_l_45
+!B13[8],!B13[9],B13[10] routing sp4_h_r_5 sp4_v_b_10
+!B4[11],!B4[13],B5[12] routing sp4_h_r_5 sp4_v_b_5
+!B6[11],B6[13],B7[12] routing sp4_h_r_5 sp4_v_t_40
+B14[11],B14[13],B15[12] routing sp4_h_r_5 sp4_v_t_46
+!B2[12],B3[11],B3[13] routing sp4_h_r_6 sp4_h_l_39
+!B10[5],!B11[4],B11[6] routing sp4_h_r_6 sp4_h_l_43
+B14[5],B15[4],!B15[6] routing sp4_h_r_6 sp4_h_l_44
+B12[11],!B12[13],!B13[12] routing sp4_h_r_6 sp4_v_b_11
+!B8[4],!B8[6],B9[5] routing sp4_h_r_6 sp4_v_b_6
+B2[4],B2[6],B3[5] routing sp4_h_r_6 sp4_v_t_37
+B10[4],!B10[6],B11[5] routing sp4_h_r_6 sp4_v_t_43
+!B6[5],B7[4],B7[6] routing sp4_h_r_7 sp4_h_l_38
+B10[8],!B10[9],!B10[10] routing sp4_h_r_7 sp4_h_l_42
+!B14[8],B14[9],B14[10] routing sp4_h_r_7 sp4_h_l_47
+!B0[4],B0[6],!B1[5] routing sp4_h_r_7 sp4_v_b_0
+B9[8],!B9[9],!B9[10] routing sp4_h_r_7 sp4_v_b_7
+B3[8],B3[9],B3[10] routing sp4_h_r_7 sp4_v_t_36
+B11[8],B11[9],!B11[10] routing sp4_h_r_7 sp4_v_t_42
+B6[8],!B6[9],B6[10] routing sp4_h_r_8 sp4_h_l_41
+!B10[12],B11[11],!B11[13] routing sp4_h_r_8 sp4_h_l_45
+B14[12],!B15[11],B15[13] routing sp4_h_r_8 sp4_h_l_46
+!B1[8],!B1[9],B1[10] routing sp4_h_r_8 sp4_v_b_1
+!B8[11],!B8[13],B9[12] routing sp4_h_r_8 sp4_v_b_8
+B2[11],B2[13],B3[12] routing sp4_h_r_8 sp4_v_t_39
+!B10[11],B10[13],B11[12] routing sp4_h_r_8 sp4_v_t_45
+B2[5],B3[4],!B3[6] routing sp4_h_r_9 sp4_h_l_37
+!B6[12],B7[11],B7[13] routing sp4_h_r_9 sp4_h_l_40
+!B14[5],!B15[4],B15[6] routing sp4_h_r_9 sp4_h_l_44
+B0[11],!B0[13],!B1[12] routing sp4_h_r_9 sp4_v_b_2
+!B12[4],!B12[6],B13[5] routing sp4_h_r_9 sp4_v_b_9
+B6[4],B6[6],B7[5] routing sp4_h_r_9 sp4_v_t_38
+B14[4],!B14[6],B15[5] routing sp4_h_r_9 sp4_v_t_44
+B2[5],!B3[4],!B3[6] routing sp4_v_b_0 sp4_h_l_37
+!B6[12],!B7[11],B7[13] routing sp4_v_b_0 sp4_h_l_40
+B0[5],!B1[4],B1[6] routing sp4_v_b_0 sp4_h_r_0
+B8[5],B9[4],B9[6] routing sp4_v_b_0 sp4_h_r_6
+B2[4],!B2[6],!B3[5] routing sp4_v_b_0 sp4_v_t_37
+!B6[4],B6[6],B7[5] routing sp4_v_b_0 sp4_v_t_38
+B10[11],B10[13],!B11[12] routing sp4_v_b_0 sp4_v_t_45
+!B2[8],B2[9],!B2[10] routing sp4_v_b_1 sp4_h_l_36
+!B10[5],B11[4],!B11[6] routing sp4_v_b_1 sp4_h_l_43
+B0[8],B0[9],!B0[10] routing sp4_v_b_1 sp4_h_r_1
+B8[8],B8[9],B8[10] routing sp4_v_b_1 sp4_h_r_7
+!B3[8],B3[9],!B3[10] routing sp4_v_b_1 sp4_v_t_36
+B7[8],!B7[9],B7[10] routing sp4_v_b_1 sp4_v_t_41
+B14[4],B14[6],!B15[5] routing sp4_v_b_1 sp4_v_t_44
+!B6[5],B7[4],!B7[6] routing sp4_v_b_10 sp4_h_l_38
+!B14[8],B14[9],!B14[10] routing sp4_v_b_10 sp4_h_l_47
+B12[8],B12[9],!B12[10] routing sp4_v_b_10 sp4_h_r_10
+B4[8],B4[9],B4[10] routing sp4_v_b_10 sp4_h_r_4
+B3[8],!B3[9],B3[10] routing sp4_v_b_10 sp4_v_t_36
+B10[4],B10[6],!B11[5] routing sp4_v_b_10 sp4_v_t_43
+!B15[8],B15[9],!B15[10] routing sp4_v_b_10 sp4_v_t_47
+!B6[8],!B6[9],B6[10] routing sp4_v_b_11 sp4_h_l_41
+B14[12],!B15[11],!B15[13] routing sp4_v_b_11 sp4_h_l_46
+B12[12],B13[11],!B13[13] routing sp4_v_b_11 sp4_h_r_11
+B4[12],B5[11],B5[13] routing sp4_v_b_11 sp4_h_r_5
+B2[11],!B2[13],B3[12] routing sp4_v_b_11 sp4_v_t_39
+!B11[8],B11[9],B11[10] routing sp4_v_b_11 sp4_v_t_42
+!B14[11],B14[13],!B15[12] routing sp4_v_b_11 sp4_v_t_46
+B2[12],!B3[11],!B3[13] routing sp4_v_b_2 sp4_h_l_39
+!B10[8],!B10[9],B10[10] routing sp4_v_b_2 sp4_h_l_42
+B0[12],B1[11],!B1[13] routing sp4_v_b_2 sp4_h_r_2
+B8[12],B9[11],B9[13] routing sp4_v_b_2 sp4_h_r_8
+!B2[11],B2[13],!B3[12] routing sp4_v_b_2 sp4_v_t_39
+B6[11],!B6[13],B7[12] routing sp4_v_b_2 sp4_v_t_40
+!B15[8],B15[9],B15[10] routing sp4_v_b_2 sp4_v_t_47
+B6[5],!B7[4],!B7[6] routing sp4_v_b_3 sp4_h_l_38
+!B10[12],!B11[11],B11[13] routing sp4_v_b_3 sp4_h_l_45
+B4[5],!B5[4],B5[6] routing sp4_v_b_3 sp4_h_r_3
+B12[5],B13[4],B13[6] routing sp4_v_b_3 sp4_h_r_9
+B6[4],!B6[6],!B7[5] routing sp4_v_b_3 sp4_v_t_38
+!B10[4],B10[6],B11[5] routing sp4_v_b_3 sp4_v_t_43
+B14[11],B14[13],!B15[12] routing sp4_v_b_3 sp4_v_t_46
+!B6[8],B6[9],!B6[10] routing sp4_v_b_4 sp4_h_l_41
+!B14[5],B15[4],!B15[6] routing sp4_v_b_4 sp4_h_l_44
+B12[8],B12[9],B12[10] routing sp4_v_b_4 sp4_h_r_10
+B4[8],B4[9],!B4[10] routing sp4_v_b_4 sp4_h_r_4
+B2[4],B2[6],!B3[5] routing sp4_v_b_4 sp4_v_t_37
+!B7[8],B7[9],!B7[10] routing sp4_v_b_4 sp4_v_t_41
+B11[8],!B11[9],B11[10] routing sp4_v_b_4 sp4_v_t_42
+B6[12],!B7[11],!B7[13] routing sp4_v_b_5 sp4_h_l_40
+!B14[8],!B14[9],B14[10] routing sp4_v_b_5 sp4_h_l_47
+B12[12],B13[11],B13[13] routing sp4_v_b_5 sp4_h_r_11
+B4[12],B5[11],!B5[13] routing sp4_v_b_5 sp4_h_r_5
+!B3[8],B3[9],B3[10] routing sp4_v_b_5 sp4_v_t_36
+!B6[11],B6[13],!B7[12] routing sp4_v_b_5 sp4_v_t_40
+B10[11],!B10[13],B11[12] routing sp4_v_b_5 sp4_v_t_45
+B10[5],!B11[4],!B11[6] routing sp4_v_b_6 sp4_h_l_43
+!B14[12],!B15[11],B15[13] routing sp4_v_b_6 sp4_h_l_46
+B0[5],B1[4],B1[6] routing sp4_v_b_6 sp4_h_r_0
+B8[5],!B9[4],B9[6] routing sp4_v_b_6 sp4_h_r_6
+B2[11],B2[13],!B3[12] routing sp4_v_b_6 sp4_v_t_39
+B10[4],!B10[6],!B11[5] routing sp4_v_b_6 sp4_v_t_43
+!B14[4],B14[6],B15[5] routing sp4_v_b_6 sp4_v_t_44
+!B2[5],B3[4],!B3[6] routing sp4_v_b_7 sp4_h_l_37
+!B10[8],B10[9],!B10[10] routing sp4_v_b_7 sp4_h_l_42
+B0[8],B0[9],B0[10] routing sp4_v_b_7 sp4_h_r_1
+B8[8],B8[9],!B8[10] routing sp4_v_b_7 sp4_h_r_7
+B6[4],B6[6],!B7[5] routing sp4_v_b_7 sp4_v_t_38
+!B11[8],B11[9],!B11[10] routing sp4_v_b_7 sp4_v_t_42
+B15[8],!B15[9],B15[10] routing sp4_v_b_7 sp4_v_t_47
+!B2[8],!B2[9],B2[10] routing sp4_v_b_8 sp4_h_l_36
+B10[12],!B11[11],!B11[13] routing sp4_v_b_8 sp4_h_l_45
+B0[12],B1[11],B1[13] routing sp4_v_b_8 sp4_h_r_2
+B8[12],B9[11],!B9[13] routing sp4_v_b_8 sp4_h_r_8
+!B7[8],B7[9],B7[10] routing sp4_v_b_8 sp4_v_t_41
+!B10[11],B10[13],!B11[12] routing sp4_v_b_8 sp4_v_t_45
+B14[11],!B14[13],B15[12] routing sp4_v_b_8 sp4_v_t_46
+!B2[12],!B3[11],B3[13] routing sp4_v_b_9 sp4_h_l_39
+B14[5],!B15[4],!B15[6] routing sp4_v_b_9 sp4_h_l_44
+B4[5],B5[4],B5[6] routing sp4_v_b_9 sp4_h_r_3
+B12[5],!B13[4],B13[6] routing sp4_v_b_9 sp4_h_r_9
+!B2[4],B2[6],B3[5] routing sp4_v_b_9 sp4_v_t_37
+B6[11],B6[13],!B7[12] routing sp4_v_b_9 sp4_v_t_40
+B14[4],!B14[6],!B15[5] routing sp4_v_b_9 sp4_v_t_44
+B2[8],B2[9],!B2[10] routing sp4_v_t_36 sp4_h_l_36
+B10[8],B10[9],B10[10] routing sp4_v_t_36 sp4_h_l_42
+!B0[8],B0[9],!B0[10] routing sp4_v_t_36 sp4_h_r_1
+!B8[5],B9[4],!B9[6] routing sp4_v_t_36 sp4_h_r_6
+!B1[8],B1[9],!B1[10] routing sp4_v_t_36 sp4_v_b_1
+B5[8],!B5[9],B5[10] routing sp4_v_t_36 sp4_v_b_4
+B12[4],B12[6],!B13[5] routing sp4_v_t_36 sp4_v_b_9
+B2[5],!B3[4],B3[6] routing sp4_v_t_37 sp4_h_l_37
+B10[5],B11[4],B11[6] routing sp4_v_t_37 sp4_h_l_43
+B0[5],!B1[4],!B1[6] routing sp4_v_t_37 sp4_h_r_0
+!B4[12],!B5[11],B5[13] routing sp4_v_t_37 sp4_h_r_5
+B0[4],!B0[6],!B1[5] routing sp4_v_t_37 sp4_v_b_0
+!B4[4],B4[6],B5[5] routing sp4_v_t_37 sp4_v_b_3
+B8[11],B8[13],!B9[12] routing sp4_v_t_37 sp4_v_b_8
+B6[5],!B7[4],B7[6] routing sp4_v_t_38 sp4_h_l_38
+B14[5],B15[4],B15[6] routing sp4_v_t_38 sp4_h_l_44
+B4[5],!B5[4],!B5[6] routing sp4_v_t_38 sp4_h_r_3
+!B8[12],!B9[11],B9[13] routing sp4_v_t_38 sp4_h_r_8
+B12[11],B12[13],!B13[12] routing sp4_v_t_38 sp4_v_b_11
+B4[4],!B4[6],!B5[5] routing sp4_v_t_38 sp4_v_b_3
+!B8[4],B8[6],B9[5] routing sp4_v_t_38 sp4_v_b_6
+B2[12],B3[11],!B3[13] routing sp4_v_t_39 sp4_h_l_39
+B10[12],B11[11],B11[13] routing sp4_v_t_39 sp4_h_l_45
+B0[12],!B1[11],!B1[13] routing sp4_v_t_39 sp4_h_r_2
+!B8[8],!B8[9],B8[10] routing sp4_v_t_39 sp4_h_r_7
+!B13[8],B13[9],B13[10] routing sp4_v_t_39 sp4_v_b_10
+!B0[11],B0[13],!B1[12] routing sp4_v_t_39 sp4_v_b_2
+B4[11],!B4[13],B5[12] routing sp4_v_t_39 sp4_v_b_5
+B6[12],B7[11],!B7[13] routing sp4_v_t_40 sp4_h_l_40
+B14[12],B15[11],B15[13] routing sp4_v_t_40 sp4_h_l_46
+!B12[8],!B12[9],B12[10] routing sp4_v_t_40 sp4_h_r_10
+B4[12],!B5[11],!B5[13] routing sp4_v_t_40 sp4_h_r_5
+!B1[8],B1[9],B1[10] routing sp4_v_t_40 sp4_v_b_1
+!B4[11],B4[13],!B5[12] routing sp4_v_t_40 sp4_v_b_5
+B8[11],!B8[13],B9[12] routing sp4_v_t_40 sp4_v_b_8
+B6[8],B6[9],!B6[10] routing sp4_v_t_41 sp4_h_l_41
+B14[8],B14[9],B14[10] routing sp4_v_t_41 sp4_h_l_47
+!B4[8],B4[9],!B4[10] routing sp4_v_t_41 sp4_h_r_4
+!B12[5],B13[4],!B13[6] routing sp4_v_t_41 sp4_h_r_9
+B0[4],B0[6],!B1[5] routing sp4_v_t_41 sp4_v_b_0
+!B5[8],B5[9],!B5[10] routing sp4_v_t_41 sp4_v_b_4
+B9[8],!B9[9],B9[10] routing sp4_v_t_41 sp4_v_b_7
+B2[8],B2[9],B2[10] routing sp4_v_t_42 sp4_h_l_36
+B10[8],B10[9],!B10[10] routing sp4_v_t_42 sp4_h_l_42
+!B0[5],B1[4],!B1[6] routing sp4_v_t_42 sp4_h_r_0
+!B8[8],B8[9],!B8[10] routing sp4_v_t_42 sp4_h_r_7
+B13[8],!B13[9],B13[10] routing sp4_v_t_42 sp4_v_b_10
+B4[4],B4[6],!B5[5] routing sp4_v_t_42 sp4_v_b_3
+!B9[8],B9[9],!B9[10] routing sp4_v_t_42 sp4_v_b_7
+B2[5],B3[4],B3[6] routing sp4_v_t_43 sp4_h_l_37
+B10[5],!B11[4],B11[6] routing sp4_v_t_43 sp4_h_l_43
+!B12[12],!B13[11],B13[13] routing sp4_v_t_43 sp4_h_r_11
+B8[5],!B9[4],!B9[6] routing sp4_v_t_43 sp4_h_r_6
+B0[11],B0[13],!B1[12] routing sp4_v_t_43 sp4_v_b_2
+B8[4],!B8[6],!B9[5] routing sp4_v_t_43 sp4_v_b_6
+!B12[4],B12[6],B13[5] routing sp4_v_t_43 sp4_v_b_9
+B6[5],B7[4],B7[6] routing sp4_v_t_44 sp4_h_l_38
+B14[5],!B15[4],B15[6] routing sp4_v_t_44 sp4_h_l_44
+!B0[12],!B1[11],B1[13] routing sp4_v_t_44 sp4_h_r_2
+B12[5],!B13[4],!B13[6] routing sp4_v_t_44 sp4_h_r_9
+!B0[4],B0[6],B1[5] routing sp4_v_t_44 sp4_v_b_0
+B4[11],B4[13],!B5[12] routing sp4_v_t_44 sp4_v_b_5
+B12[4],!B12[6],!B13[5] routing sp4_v_t_44 sp4_v_b_9
+B2[12],B3[11],B3[13] routing sp4_v_t_45 sp4_h_l_39
+B10[12],B11[11],!B11[13] routing sp4_v_t_45 sp4_h_l_45
+!B0[8],!B0[9],B0[10] routing sp4_v_t_45 sp4_h_r_1
+B8[12],!B9[11],!B9[13] routing sp4_v_t_45 sp4_h_r_8
+B12[11],!B12[13],B13[12] routing sp4_v_t_45 sp4_v_b_11
+!B5[8],B5[9],B5[10] routing sp4_v_t_45 sp4_v_b_4
+!B8[11],B8[13],!B9[12] routing sp4_v_t_45 sp4_v_b_8
+B6[12],B7[11],B7[13] routing sp4_v_t_46 sp4_h_l_40
+B14[12],B15[11],!B15[13] routing sp4_v_t_46 sp4_h_l_46
+B12[12],!B13[11],!B13[13] routing sp4_v_t_46 sp4_h_r_11
+!B4[8],!B4[9],B4[10] routing sp4_v_t_46 sp4_h_r_4
+!B12[11],B12[13],!B13[12] routing sp4_v_t_46 sp4_v_b_11
+B0[11],!B0[13],B1[12] routing sp4_v_t_46 sp4_v_b_2
+!B9[8],B9[9],B9[10] routing sp4_v_t_46 sp4_v_b_7
+B6[8],B6[9],B6[10] routing sp4_v_t_47 sp4_h_l_41
+B14[8],B14[9],!B14[10] routing sp4_v_t_47 sp4_h_l_47
+!B12[8],B12[9],!B12[10] routing sp4_v_t_47 sp4_h_r_10
+!B4[5],B5[4],!B5[6] routing sp4_v_t_47 sp4_h_r_3
+B1[8],!B1[9],B1[10] routing sp4_v_t_47 sp4_v_b_1
+!B13[8],B13[9],!B13[10] routing sp4_v_t_47 sp4_v_b_10
+B8[4],B8[6],!B9[5] routing sp4_v_t_47 sp4_v_b_6
"""
diff --git a/icefuzz/Makefile b/icefuzz/Makefile
new file mode 100644
index 0000000..d388f3f
--- /dev/null
+++ b/icefuzz/Makefile
@@ -0,0 +1,97 @@
+
+export LC_ALL=C
+
+TESTS =
+TESTS += binop
+TESTS += pin2pin
+TESTS += mesh
+TESTS += fanout
+TESTS += logic
+TESTS += cluster
+TESTS += iopack
+TESTS += io
+TESTS += gbio
+TESTS += gbio2
+TESTS += prim
+TESTS += fflogic
+TESTS += ram40
+TESTS += pll
+
+EIGTHK = _8k
+
+database: bitdata_io.txt bitdata_logic.txt bitdata_ramb$(EIGTHK).txt bitdata_ramt$(EIGTHK).txt
+ifeq ($(EIGTHK),_8k)
+ cp cached_ramb.txt bitdata_ramb.txt
+ cp cached_ramt.txt bitdata_ramt.txt
+else
+ cp cached_ramb_8k.txt bitdata_ramb_8k.txt
+ cp cached_ramt_8k.txt bitdata_ramt_8k.txt
+endif
+ python database.py
+ python export.py
+ diff -U0 cached_io.txt bitdata_io.txt || cp -v bitdata_io.txt cached_io.txt
+ diff -U0 cached_logic.txt bitdata_logic.txt || cp -v bitdata_logic.txt cached_logic.txt
+ diff -U0 cached_ramb.txt bitdata_ramb.txt || cp -v bitdata_ramb.txt cached_ramb.txt
+ diff -U0 cached_ramt.txt bitdata_ramt.txt || cp -v bitdata_ramt.txt cached_ramt.txt
+ diff -U0 cached_ramb_8k.txt bitdata_ramb_8k.txt || cp -v bitdata_ramb_8k.txt cached_ramb_8k.txt
+ diff -U0 cached_ramt_8k.txt bitdata_ramt_8k.txt || cp -v bitdata_ramt_8k.txt cached_ramt_8k.txt
+
+data_cached.txt: cached_io.txt cached_logic.txt cached_ramb$(EIGTHK).txt cached_ramt$(EIGTHK).txt
+ gawk '{ print "io", $$0; }' cached_io.txt > data_cached.new
+ gawk '{ print "logic", $$0; }' cached_logic.txt >> data_cached.new
+ gawk '{ print "ramb$(EIGTHK)", $$0; }' cached_ramb$(EIGTHK).txt >> data_cached.new
+ gawk '{ print "ramt$(EIGTHK)", $$0; }' cached_ramt$(EIGTHK).txt >> data_cached.new
+ mv data_cached.new data_cached.txt
+
+bitdata_io.txt: data_cached.txt $(addprefix data_,$(addsuffix .txt,$(TESTS)))
+ grep ^io $^ | tr -s ' ' | tr -d '\r' | cut -f2- -d' ' | sort -u > $@
+
+bitdata_logic.txt: data_cached.txt $(addprefix data_,$(addsuffix .txt,$(TESTS)))
+ grep ^logic $^ | tr -s ' ' | tr -d '\r' | cut -f2- -d' ' | sort -u > $@
+
+bitdata_ramb$(EIGTHK).txt: data_cached.txt $(addprefix data_,$(addsuffix .txt,$(TESTS)))
+ grep ^ramb$(EIGTHK) $^ | tr -s ' ' | tr -d '\r' | cut -f2- -d' ' | sort -u > $@
+
+bitdata_ramt$(EIGTHK).txt: data_cached.txt $(addprefix data_,$(addsuffix .txt,$(TESTS)))
+ grep ^ramt$(EIGTHK) $^ | tr -s ' ' | tr -d '\r' | cut -f2- -d' ' | sort -u > $@
+
+datafiles: $(addprefix data_,$(addsuffix .txt,$(TESTS)))
+
+../icepack/icepack:
+ $(MAKE) -C ../icepack
+
+define data_template
+data_$(1).txt: make_$(1).py ../icepack/icepack
+ifeq ($(EIGTHK),_8k)
+ ICE8KPINS=1 python make_$(1).py
+ ICEDEV=hx8k-ct256 $$(MAKE) -C work_$(1)
+ python extract.py -8 work_$(1)/*.glb > $$@
+else
+ python make_$(1).py
+ $$(MAKE) -C work_$(1)
+ python extract.py work_$(1)/*.glb > $$@
+endif
+endef
+
+$(foreach test,$(TESTS),$(eval $(call data_template,$(test))))
+
+%.ok: %.bin
+ bash check.sh $<
+
+check: $(addsuffix .ok,$(basename $(wildcard work_binop/*.bin)))
+check: $(addsuffix .ok,$(basename $(wildcard work_pin2pin/*.bin)))
+check: $(addsuffix .ok,$(basename $(wildcard work_mesh/*.bin)))
+check: $(addsuffix .ok,$(basename $(wildcard work_fanout/*.bin)))
+check: $(addsuffix .ok,$(basename $(wildcard work_logic/*.bin)))
+check: $(addsuffix .ok,$(basename $(wildcard work_cluster/*.bin)))
+check: $(addsuffix .ok,$(basename $(wildcard work_iopack/*.bin)))
+check: $(addsuffix .ok,$(basename $(wildcard work_pll/*.bin)))
+
+clean:
+ rm -rf work_*
+ rm -rf data_*.txt
+ rm -rf bitdata_*.txt
+ rm -rf database_*.txt
+
+.PHONY: database datafiles check clean
+
diff --git a/icefuzz/cached_io.txt b/icefuzz/cached_io.txt
new file mode 100644
index 0000000..257e8d0
--- /dev/null
+++ b/icefuzz/cached_io.txt
@@ -0,0 +1,2270 @@
+(0 0) Enable bit of Mux _out_links/OutMux2_0 => wire_io_cluster/io_0/D_IN_0 span4_horz_16
+(0 0) Enable bit of Mux _out_links/OutMux2_0 => wire_io_cluster/io_0/D_IN_0 span4_vert_16
+(0 1) Enable bit of Mux _out_links/OutMux0_0 => wire_io_cluster/io_0/D_IN_0 span4_horz_0
+(0 1) Enable bit of Mux _out_links/OutMux0_0 => wire_io_cluster/io_0/D_IN_0 span4_vert_0
+(0 10) Enable bit of Mux _out_links/OutMux7_2 => wire_io_cluster/io_1/D_IN_0 span4_horz_r_6
+(0 10) Enable bit of Mux _out_links/OutMux7_2 => wire_io_cluster/io_1/D_IN_0 span4_vert_b_6
+(0 11) Enable bit of Mux _out_links/OutMux5_2 => wire_io_cluster/io_1/D_IN_0 span4_horz_44
+(0 11) Enable bit of Mux _out_links/OutMux5_2 => wire_io_cluster/io_1/D_IN_0 span4_vert_44
+(0 12) Enable bit of Mux _out_links/OutMux2_3 => wire_io_cluster/io_1/D_IN_1 span4_horz_22
+(0 12) Enable bit of Mux _out_links/OutMux2_3 => wire_io_cluster/io_1/D_IN_1 span4_vert_22
+(0 13) Enable bit of Mux _out_links/OutMux0_3 => wire_io_cluster/io_1/D_IN_1 span4_horz_6
+(0 13) Enable bit of Mux _out_links/OutMux0_3 => wire_io_cluster/io_1/D_IN_1 span4_vert_6
+(0 14) Enable bit of Mux _out_links/OutMux7_3 => wire_io_cluster/io_1/D_IN_1 span4_horz_r_7
+(0 14) Enable bit of Mux _out_links/OutMux7_3 => wire_io_cluster/io_1/D_IN_1 span4_vert_b_7
+(0 15) Enable bit of Mux _out_links/OutMux5_3 => wire_io_cluster/io_1/D_IN_1 span4_vert_46
+(0 2) Enable bit of Mux _out_links/OutMux7_0 => wire_io_cluster/io_0/D_IN_0 span4_horz_r_4
+(0 2) Enable bit of Mux _out_links/OutMux7_0 => wire_io_cluster/io_0/D_IN_0 span4_vert_b_4
+(0 3) Enable bit of Mux _out_links/OutMux5_0 => wire_io_cluster/io_0/D_IN_0 span4_horz_40
+(0 3) Enable bit of Mux _out_links/OutMux5_0 => wire_io_cluster/io_0/D_IN_0 span4_vert_40
+(0 4) Enable bit of Mux _out_links/OutMux2_1 => wire_io_cluster/io_0/D_IN_1 span4_horz_18
+(0 4) Enable bit of Mux _out_links/OutMux2_1 => wire_io_cluster/io_0/D_IN_1 span4_vert_18
+(0 5) Enable bit of Mux _out_links/OutMux0_1 => wire_io_cluster/io_0/D_IN_1 span4_horz_2
+(0 5) Enable bit of Mux _out_links/OutMux0_1 => wire_io_cluster/io_0/D_IN_1 span4_vert_2
+(0 6) Enable bit of Mux _out_links/OutMux7_1 => wire_io_cluster/io_0/D_IN_1 span4_horz_r_5
+(0 6) Enable bit of Mux _out_links/OutMux7_1 => wire_io_cluster/io_0/D_IN_1 span4_vert_b_5
+(0 7) Enable bit of Mux _out_links/OutMux5_1 => wire_io_cluster/io_0/D_IN_1 span4_horz_42
+(0 7) Enable bit of Mux _out_links/OutMux5_1 => wire_io_cluster/io_0/D_IN_1 span4_vert_42
+(0 8) Enable bit of Mux _out_links/OutMux2_2 => wire_io_cluster/io_1/D_IN_0 span4_horz_20
+(0 8) Enable bit of Mux _out_links/OutMux2_2 => wire_io_cluster/io_1/D_IN_0 span4_vert_20
+(0 9) Enable bit of Mux _out_links/OutMux0_2 => wire_io_cluster/io_1/D_IN_0 span4_horz_4
+(0 9) Enable bit of Mux _out_links/OutMux0_2 => wire_io_cluster/io_1/D_IN_0 span4_vert_4
+(1 0) Enable bit of Mux _out_links/OutMux3_0 => wire_io_cluster/io_0/D_IN_0 span4_horz_24
+(1 0) Enable bit of Mux _out_links/OutMux3_0 => wire_io_cluster/io_0/D_IN_0 span4_vert_24
+(1 1) Enable bit of Mux _out_links/OutMux1_0 => wire_io_cluster/io_0/D_IN_0 span4_horz_8
+(1 1) Enable bit of Mux _out_links/OutMux1_0 => wire_io_cluster/io_0/D_IN_0 span4_vert_8
+(1 10) Enable bit of Mux _out_links/OutMux8_2 => wire_io_cluster/io_1/D_IN_0 span4_horz_r_10
+(1 10) Enable bit of Mux _out_links/OutMux8_2 => wire_io_cluster/io_1/D_IN_0 span4_vert_b_10
+(1 11) Enable bit of Mux _out_links/OutMux6_2 => wire_io_cluster/io_1/D_IN_0 span4_horz_r_2
+(1 11) Enable bit of Mux _out_links/OutMux6_2 => wire_io_cluster/io_1/D_IN_0 span4_vert_b_2
+(1 12) Enable bit of Mux _out_links/OutMux3_3 => wire_io_cluster/io_1/D_IN_1 span4_horz_30
+(1 12) Enable bit of Mux _out_links/OutMux3_3 => wire_io_cluster/io_1/D_IN_1 span4_vert_30
+(1 13) Enable bit of Mux _out_links/OutMux1_3 => wire_io_cluster/io_1/D_IN_1 span4_horz_14
+(1 13) Enable bit of Mux _out_links/OutMux1_3 => wire_io_cluster/io_1/D_IN_1 span4_vert_14
+(1 14) Enable bit of Mux _out_links/OutMux8_3 => wire_io_cluster/io_1/D_IN_1 span4_horz_r_11
+(1 14) Enable bit of Mux _out_links/OutMux8_3 => wire_io_cluster/io_1/D_IN_1 span4_vert_b_11
+(1 15) Enable bit of Mux _out_links/OutMux6_3 => wire_io_cluster/io_1/D_IN_1 span4_horz_r_3
+(1 15) Enable bit of Mux _out_links/OutMux6_3 => wire_io_cluster/io_1/D_IN_1 span4_vert_b_3
+(1 2) Enable bit of Mux _out_links/OutMux8_0 => wire_io_cluster/io_0/D_IN_0 span4_horz_r_8
+(1 2) Enable bit of Mux _out_links/OutMux8_0 => wire_io_cluster/io_0/D_IN_0 span4_vert_b_8
+(1 3) Enable bit of Mux _out_links/OutMux6_0 => wire_io_cluster/io_0/D_IN_0 span4_horz_r_0
+(1 3) Enable bit of Mux _out_links/OutMux6_0 => wire_io_cluster/io_0/D_IN_0 span4_vert_b_0
+(1 4) Enable bit of Mux _out_links/OutMux3_1 => wire_io_cluster/io_0/D_IN_1 span4_horz_26
+(1 4) Enable bit of Mux _out_links/OutMux3_1 => wire_io_cluster/io_0/D_IN_1 span4_vert_26
+(1 5) Enable bit of Mux _out_links/OutMux1_1 => wire_io_cluster/io_0/D_IN_1 span4_horz_10
+(1 6) Enable bit of Mux _out_links/OutMux8_1 => wire_io_cluster/io_0/D_IN_1 span4_horz_r_9
+(1 6) Enable bit of Mux _out_links/OutMux8_1 => wire_io_cluster/io_0/D_IN_1 span4_vert_b_9
+(1 7) Enable bit of Mux _out_links/OutMux6_1 => wire_io_cluster/io_0/D_IN_1 span4_horz_r_1
+(1 7) Enable bit of Mux _out_links/OutMux6_1 => wire_io_cluster/io_0/D_IN_1 span4_vert_b_1
+(1 8) Enable bit of Mux _out_links/OutMux3_2 => wire_io_cluster/io_1/D_IN_0 span4_horz_28
+(1 8) Enable bit of Mux _out_links/OutMux3_2 => wire_io_cluster/io_1/D_IN_0 span4_vert_28
+(1 9) Enable bit of Mux _out_links/OutMux1_2 => wire_io_cluster/io_1/D_IN_0 span4_horz_12
+(1 9) Enable bit of Mux _out_links/OutMux1_2 => wire_io_cluster/io_1/D_IN_0 span4_vert_12
+(10 10) routing lc_trk_g0_4 wire_io_cluster/io_1/OUT_ENB
+(10 10) routing lc_trk_g0_6 wire_io_cluster/io_1/OUT_ENB
+(10 10) routing lc_trk_g1_5 wire_io_cluster/io_1/OUT_ENB
+(10 10) routing lc_trk_g1_7 wire_io_cluster/io_1/OUT_ENB
+(10 11) routing lc_trk_g0_2 wire_io_cluster/io_1/OUT_ENB
+(10 11) routing lc_trk_g0_6 wire_io_cluster/io_1/OUT_ENB
+(10 11) routing lc_trk_g1_3 wire_io_cluster/io_1/OUT_ENB
+(10 11) routing lc_trk_g1_7 wire_io_cluster/io_1/OUT_ENB
+(10 14) routing lc_trk_g0_4 wire_io_cluster/io_1/D_OUT_1
+(10 14) routing lc_trk_g0_6 wire_io_cluster/io_1/D_OUT_1
+(10 14) routing lc_trk_g1_5 wire_io_cluster/io_1/D_OUT_1
+(10 14) routing lc_trk_g1_7 wire_io_cluster/io_1/D_OUT_1
+(10 15) routing lc_trk_g0_2 wire_io_cluster/io_1/D_OUT_1
+(10 15) routing lc_trk_g0_6 wire_io_cluster/io_1/D_OUT_1
+(10 15) routing lc_trk_g1_3 wire_io_cluster/io_1/D_OUT_1
+(10 15) routing lc_trk_g1_7 wire_io_cluster/io_1/D_OUT_1
+(10 4) routing lc_trk_g0_5 wire_io_cluster/io_0/OUT_ENB
+(10 4) routing lc_trk_g0_7 wire_io_cluster/io_0/OUT_ENB
+(10 4) routing lc_trk_g1_4 wire_io_cluster/io_0/OUT_ENB
+(10 4) routing lc_trk_g1_6 wire_io_cluster/io_0/OUT_ENB
+(10 5) routing lc_trk_g0_3 wire_io_cluster/io_0/OUT_ENB
+(10 5) routing lc_trk_g0_7 wire_io_cluster/io_0/OUT_ENB
+(10 5) routing lc_trk_g1_2 wire_io_cluster/io_0/OUT_ENB
+(10 5) routing lc_trk_g1_6 wire_io_cluster/io_0/OUT_ENB
+(10 8) routing lc_trk_g0_5 wire_io_cluster/io_0/D_OUT_1
+(10 8) routing lc_trk_g0_7 wire_io_cluster/io_0/D_OUT_1
+(10 8) routing lc_trk_g1_4 wire_io_cluster/io_0/D_OUT_1
+(10 8) routing lc_trk_g1_6 wire_io_cluster/io_0/D_OUT_1
+(10 9) routing lc_trk_g0_3 wire_io_cluster/io_0/D_OUT_1
+(10 9) routing lc_trk_g0_7 wire_io_cluster/io_0/D_OUT_1
+(10 9) routing lc_trk_g1_2 wire_io_cluster/io_0/D_OUT_1
+(10 9) routing lc_trk_g1_6 wire_io_cluster/io_0/D_OUT_1
+(11 0) routing span4_horz_1 span4_vert_t_12
+(11 0) routing span4_horz_r_0 span4_horz_l_12
+(11 0) routing span4_vert_1 span4_horz_l_12
+(11 0) routing span4_vert_b_0 span4_vert_t_12
+(11 1) routing span4_horz_1 span4_horz_25
+(11 1) routing span4_horz_l_12 span4_vert_25
+(11 1) routing span4_vert_1 span4_vert_25
+(11 1) routing span4_vert_t_12 span4_horz_25
+(11 10) routing lc_trk_g1_1 wire_io_cluster/io_1/OUT_ENB
+(11 10) routing lc_trk_g1_3 wire_io_cluster/io_1/OUT_ENB
+(11 10) routing lc_trk_g1_5 wire_io_cluster/io_1/OUT_ENB
+(11 10) routing lc_trk_g1_7 wire_io_cluster/io_1/OUT_ENB
+(11 11) Enable bit of Mux _io_cluster/in_mux1_0 => lc_trk_g0_0 wire_io_cluster/io_1/OUT_ENB
+(11 11) Enable bit of Mux _io_cluster/in_mux1_0 => lc_trk_g0_2 wire_io_cluster/io_1/OUT_ENB
+(11 11) Enable bit of Mux _io_cluster/in_mux1_0 => lc_trk_g0_4 wire_io_cluster/io_1/OUT_ENB
+(11 11) Enable bit of Mux _io_cluster/in_mux1_0 => lc_trk_g0_6 wire_io_cluster/io_1/OUT_ENB
+(11 11) Enable bit of Mux _io_cluster/in_mux1_0 => lc_trk_g1_1 wire_io_cluster/io_1/OUT_ENB
+(11 11) Enable bit of Mux _io_cluster/in_mux1_0 => lc_trk_g1_3 wire_io_cluster/io_1/OUT_ENB
+(11 11) Enable bit of Mux _io_cluster/in_mux1_0 => lc_trk_g1_5 wire_io_cluster/io_1/OUT_ENB
+(11 11) Enable bit of Mux _io_cluster/in_mux1_0 => lc_trk_g1_7 wire_io_cluster/io_1/OUT_ENB
+(11 12) routing span4_horz_19 span4_vert_t_15
+(11 12) routing span4_horz_r_3 span4_horz_l_15
+(11 12) routing span4_vert_19 span4_horz_l_15
+(11 12) routing span4_vert_b_3 span4_vert_t_15
+(11 13) routing span4_horz_19 span4_horz_43
+(11 13) routing span4_horz_l_15 span4_vert_43
+(11 13) routing span4_vert_19 span4_vert_43
+(11 13) routing span4_vert_t_15 span4_horz_43
+(11 14) routing lc_trk_g1_1 wire_io_cluster/io_1/D_OUT_1
+(11 14) routing lc_trk_g1_3 wire_io_cluster/io_1/D_OUT_1
+(11 14) routing lc_trk_g1_5 wire_io_cluster/io_1/D_OUT_1
+(11 14) routing lc_trk_g1_7 wire_io_cluster/io_1/D_OUT_1
+(11 15) Enable bit of Mux _io_cluster/in_mux1_2 => lc_trk_g0_0 wire_io_cluster/io_1/D_OUT_1
+(11 15) Enable bit of Mux _io_cluster/in_mux1_2 => lc_trk_g0_2 wire_io_cluster/io_1/D_OUT_1
+(11 15) Enable bit of Mux _io_cluster/in_mux1_2 => lc_trk_g0_4 wire_io_cluster/io_1/D_OUT_1
+(11 15) Enable bit of Mux _io_cluster/in_mux1_2 => lc_trk_g0_6 wire_io_cluster/io_1/D_OUT_1
+(11 15) Enable bit of Mux _io_cluster/in_mux1_2 => lc_trk_g1_1 wire_io_cluster/io_1/D_OUT_1
+(11 15) Enable bit of Mux _io_cluster/in_mux1_2 => lc_trk_g1_3 wire_io_cluster/io_1/D_OUT_1
+(11 15) Enable bit of Mux _io_cluster/in_mux1_2 => lc_trk_g1_5 wire_io_cluster/io_1/D_OUT_1
+(11 15) Enable bit of Mux _io_cluster/in_mux1_2 => lc_trk_g1_7 wire_io_cluster/io_1/D_OUT_1
+(11 2) routing span4_horz_7 span4_vert_t_13
+(11 2) routing span4_horz_r_1 span4_horz_l_13
+(11 2) routing span4_vert_7 span4_horz_l_13
+(11 2) routing span4_vert_b_1 span4_vert_t_13
+(11 3) routing span4_horz_7 span4_horz_31
+(11 3) routing span4_horz_l_13 span4_vert_31
+(11 3) routing span4_vert_7 span4_vert_31
+(11 3) routing span4_vert_t_13 span4_horz_31
+(11 4) routing lc_trk_g1_0 wire_io_cluster/io_0/OUT_ENB
+(11 4) routing lc_trk_g1_2 wire_io_cluster/io_0/OUT_ENB
+(11 4) routing lc_trk_g1_4 wire_io_cluster/io_0/OUT_ENB
+(11 4) routing lc_trk_g1_6 wire_io_cluster/io_0/OUT_ENB
+(11 5) Enable bit of Mux _io_cluster/in_mux0_0 => lc_trk_g0_1 wire_io_cluster/io_0/OUT_ENB
+(11 5) Enable bit of Mux _io_cluster/in_mux0_0 => lc_trk_g0_3 wire_io_cluster/io_0/OUT_ENB
+(11 5) Enable bit of Mux _io_cluster/in_mux0_0 => lc_trk_g0_5 wire_io_cluster/io_0/OUT_ENB
+(11 5) Enable bit of Mux _io_cluster/in_mux0_0 => lc_trk_g0_7 wire_io_cluster/io_0/OUT_ENB
+(11 5) Enable bit of Mux _io_cluster/in_mux0_0 => lc_trk_g1_0 wire_io_cluster/io_0/OUT_ENB
+(11 5) Enable bit of Mux _io_cluster/in_mux0_0 => lc_trk_g1_2 wire_io_cluster/io_0/OUT_ENB
+(11 5) Enable bit of Mux _io_cluster/in_mux0_0 => lc_trk_g1_4 wire_io_cluster/io_0/OUT_ENB
+(11 5) Enable bit of Mux _io_cluster/in_mux0_0 => lc_trk_g1_6 wire_io_cluster/io_0/OUT_ENB
+(11 6) routing span4_horz_13 span4_vert_t_14
+(11 6) routing span4_horz_r_2 span4_horz_l_14
+(11 6) routing span4_vert_13 span4_horz_l_14
+(11 6) routing span4_vert_b_2 span4_vert_t_14
+(11 7) routing span4_horz_13 span4_horz_37
+(11 7) routing span4_horz_l_14 span4_vert_37
+(11 7) routing span4_vert_13 span4_vert_37
+(11 7) routing span4_vert_t_14 span4_horz_37
+(11 8) routing lc_trk_g1_0 wire_io_cluster/io_0/D_OUT_1
+(11 8) routing lc_trk_g1_2 wire_io_cluster/io_0/D_OUT_1
+(11 8) routing lc_trk_g1_4 wire_io_cluster/io_0/D_OUT_1
+(11 8) routing lc_trk_g1_6 wire_io_cluster/io_0/D_OUT_1
+(11 9) Enable bit of Mux _io_cluster/in_mux0_2 => lc_trk_g0_1 wire_io_cluster/io_0/D_OUT_1
+(11 9) Enable bit of Mux _io_cluster/in_mux0_2 => lc_trk_g0_3 wire_io_cluster/io_0/D_OUT_1
+(11 9) Enable bit of Mux _io_cluster/in_mux0_2 => lc_trk_g0_5 wire_io_cluster/io_0/D_OUT_1
+(11 9) Enable bit of Mux _io_cluster/in_mux0_2 => lc_trk_g0_7 wire_io_cluster/io_0/D_OUT_1
+(11 9) Enable bit of Mux _io_cluster/in_mux0_2 => lc_trk_g1_0 wire_io_cluster/io_0/D_OUT_1
+(11 9) Enable bit of Mux _io_cluster/in_mux0_2 => lc_trk_g1_2 wire_io_cluster/io_0/D_OUT_1
+(11 9) Enable bit of Mux _io_cluster/in_mux0_2 => lc_trk_g1_4 wire_io_cluster/io_0/D_OUT_1
+(11 9) Enable bit of Mux _io_cluster/in_mux0_2 => lc_trk_g1_6 wire_io_cluster/io_0/D_OUT_1
+(12 0) routing span4_horz_1 span4_vert_t_12
+(12 0) routing span4_horz_25 span4_vert_t_12
+(12 0) routing span4_vert_1 span4_horz_l_12
+(12 0) routing span4_vert_25 span4_horz_l_12
+(12 1) routing span4_horz_1 span4_horz_25
+(12 1) routing span4_horz_r_0 span4_vert_25
+(12 1) routing span4_vert_1 span4_vert_25
+(12 1) routing span4_vert_b_0 span4_horz_25
+(12 10) routing lc_trk_g1_0 wire_io_cluster/io_1/D_OUT_0
+(12 10) routing lc_trk_g1_2 wire_io_cluster/io_1/D_OUT_0
+(12 10) routing lc_trk_g1_4 wire_io_cluster/io_1/D_OUT_0
+(12 10) routing lc_trk_g1_6 wire_io_cluster/io_1/D_OUT_0
+(12 11) routing lc_trk_g0_3 wire_io_cluster/io_1/D_OUT_0
+(12 11) routing lc_trk_g0_7 wire_io_cluster/io_1/D_OUT_0
+(12 11) routing lc_trk_g1_2 wire_io_cluster/io_1/D_OUT_0
+(12 11) routing lc_trk_g1_6 wire_io_cluster/io_1/D_OUT_0
+(12 12) routing span4_horz_19 span4_vert_t_15
+(12 12) routing span4_horz_43 span4_vert_t_15
+(12 12) routing span4_vert_19 span4_horz_l_15
+(12 12) routing span4_vert_43 span4_horz_l_15
+(12 13) routing span4_horz_19 span4_horz_43
+(12 13) routing span4_horz_r_3 span4_vert_43
+(12 13) routing span4_vert_19 span4_vert_43
+(12 13) routing span4_vert_b_3 span4_horz_43
+(12 14) routing glb_netwk_2 wire_io_cluster/io_1/outclk
+(12 14) routing glb_netwk_3 wire_io_cluster/io_1/outclk
+(12 14) routing glb_netwk_6 wire_io_cluster/io_1/outclk
+(12 14) routing glb_netwk_7 wire_io_cluster/io_1/outclk
+(12 14) routing lc_trk_g1_1 wire_io_cluster/io_1/outclk
+(12 14) routing lc_trk_g1_4 wire_io_cluster/io_1/outclk
+(12 15) routing glb_netwk_1 wire_io_cluster/io_1/outclk
+(12 15) routing glb_netwk_3 wire_io_cluster/io_1/outclk
+(12 15) routing glb_netwk_5 wire_io_cluster/io_1/outclk
+(12 15) routing glb_netwk_7 wire_io_cluster/io_1/outclk
+(12 15) routing lc_trk_g0_4 wire_io_cluster/io_1/outclk
+(12 15) routing lc_trk_g1_4 wire_io_cluster/io_1/outclk
+(12 2) routing span4_horz_31 span4_vert_t_13
+(12 2) routing span4_horz_7 span4_vert_t_13
+(12 2) routing span4_vert_31 span4_horz_l_13
+(12 2) routing span4_vert_7 span4_horz_l_13
+(12 3) routing span4_horz_7 span4_horz_31
+(12 3) routing span4_horz_r_1 span4_vert_31
+(12 3) routing span4_vert_7 span4_vert_31
+(12 3) routing span4_vert_b_1 span4_horz_31
+(12 4) routing lc_trk_g1_1 wire_io_cluster/io_0/D_OUT_0
+(12 4) routing lc_trk_g1_3 wire_io_cluster/io_0/D_OUT_0
+(12 4) routing lc_trk_g1_5 wire_io_cluster/io_0/D_OUT_0
+(12 4) routing lc_trk_g1_7 wire_io_cluster/io_0/D_OUT_0
+(12 5) routing lc_trk_g0_2 wire_io_cluster/io_0/D_OUT_0
+(12 5) routing lc_trk_g0_6 wire_io_cluster/io_0/D_OUT_0
+(12 5) routing lc_trk_g1_3 wire_io_cluster/io_0/D_OUT_0
+(12 5) routing lc_trk_g1_7 wire_io_cluster/io_0/D_OUT_0
+(12 6) routing span4_horz_13 span4_vert_t_14
+(12 6) routing span4_horz_37 span4_vert_t_14
+(12 6) routing span4_vert_13 span4_horz_l_14
+(12 6) routing span4_vert_37 span4_horz_l_14
+(12 7) routing span4_horz_13 span4_horz_37
+(12 7) routing span4_horz_r_2 span4_vert_37
+(12 7) routing span4_vert_13 span4_vert_37
+(12 7) routing span4_vert_b_2 span4_horz_37
+(12 8) routing glb_netwk_2 wire_io_cluster/io_1/inclk
+(12 8) routing glb_netwk_3 wire_io_cluster/io_1/inclk
+(12 8) routing glb_netwk_6 wire_io_cluster/io_1/inclk
+(12 8) routing glb_netwk_7 wire_io_cluster/io_1/inclk
+(12 8) routing lc_trk_g1_0 wire_io_cluster/io_1/inclk
+(12 8) routing lc_trk_g1_3 wire_io_cluster/io_1/inclk
+(12 9) routing glb_netwk_1 wire_io_cluster/io_1/inclk
+(12 9) routing glb_netwk_3 wire_io_cluster/io_1/inclk
+(12 9) routing glb_netwk_5 wire_io_cluster/io_1/inclk
+(12 9) routing glb_netwk_7 wire_io_cluster/io_1/inclk
+(12 9) routing lc_trk_g0_3 wire_io_cluster/io_1/inclk
+(12 9) routing lc_trk_g1_3 wire_io_cluster/io_1/inclk
+(13 0) routing span4_horz_25 span4_horz_1
+(13 0) routing span4_horz_r_0 span4_vert_1
+(13 0) routing span4_vert_25 span4_vert_1
+(13 0) routing span4_vert_b_0 span4_horz_1
+(13 1) routing span4_horz_1 span4_vert_b_0
+(13 1) routing span4_horz_25 span4_vert_b_0
+(13 1) routing span4_vert_1 span4_horz_r_0
+(13 1) routing span4_vert_25 span4_horz_r_0
+(13 10) routing lc_trk_g0_5 wire_io_cluster/io_1/D_OUT_0
+(13 10) routing lc_trk_g0_7 wire_io_cluster/io_1/D_OUT_0
+(13 10) routing lc_trk_g1_4 wire_io_cluster/io_1/D_OUT_0
+(13 10) routing lc_trk_g1_6 wire_io_cluster/io_1/D_OUT_0
+(13 11) Enable bit of Mux _io_cluster/in_mux1_1 => lc_trk_g0_1 wire_io_cluster/io_1/D_OUT_0
+(13 11) Enable bit of Mux _io_cluster/in_mux1_1 => lc_trk_g0_3 wire_io_cluster/io_1/D_OUT_0
+(13 11) Enable bit of Mux _io_cluster/in_mux1_1 => lc_trk_g0_5 wire_io_cluster/io_1/D_OUT_0
+(13 11) Enable bit of Mux _io_cluster/in_mux1_1 => lc_trk_g0_7 wire_io_cluster/io_1/D_OUT_0
+(13 11) Enable bit of Mux _io_cluster/in_mux1_1 => lc_trk_g1_0 wire_io_cluster/io_1/D_OUT_0
+(13 11) Enable bit of Mux _io_cluster/in_mux1_1 => lc_trk_g1_2 wire_io_cluster/io_1/D_OUT_0
+(13 11) Enable bit of Mux _io_cluster/in_mux1_1 => lc_trk_g1_4 wire_io_cluster/io_1/D_OUT_0
+(13 11) Enable bit of Mux _io_cluster/in_mux1_1 => lc_trk_g1_6 wire_io_cluster/io_1/D_OUT_0
+(13 12) routing span4_horz_43 span4_horz_19
+(13 12) routing span4_horz_r_3 span4_vert_19
+(13 12) routing span4_vert_43 span4_vert_19
+(13 12) routing span4_vert_b_3 span4_horz_19
+(13 13) routing span4_horz_19 span4_vert_b_3
+(13 13) routing span4_horz_43 span4_vert_b_3
+(13 13) routing span4_vert_19 span4_horz_r_3
+(13 13) routing span4_vert_43 span4_horz_r_3
+(13 14) routing lc_trk_g0_1 wire_io_cluster/io_1/outclk
+(13 14) routing lc_trk_g0_4 wire_io_cluster/io_1/outclk
+(13 14) routing lc_trk_g1_1 wire_io_cluster/io_1/outclk
+(13 14) routing lc_trk_g1_4 wire_io_cluster/io_1/outclk
+(13 15) Negative Clock bit
+(13 2) routing span4_horz_31 span4_horz_7
+(13 2) routing span4_horz_r_1 span4_vert_7
+(13 2) routing span4_vert_31 span4_vert_7
+(13 2) routing span4_vert_b_1 span4_horz_7
+(13 3) routing span4_horz_31 span4_vert_b_1
+(13 3) routing span4_horz_7 span4_vert_b_1
+(13 3) routing span4_vert_31 span4_horz_r_1
+(13 3) routing span4_vert_7 span4_horz_r_1
+(13 4) routing lc_trk_g0_4 wire_io_cluster/io_0/D_OUT_0
+(13 4) routing lc_trk_g0_6 wire_io_cluster/io_0/D_OUT_0
+(13 4) routing lc_trk_g1_5 wire_io_cluster/io_0/D_OUT_0
+(13 4) routing lc_trk_g1_7 wire_io_cluster/io_0/D_OUT_0
+(13 5) Enable bit of Mux _io_cluster/in_mux0_1 => lc_trk_g0_0 wire_io_cluster/io_0/D_OUT_0
+(13 5) Enable bit of Mux _io_cluster/in_mux0_1 => lc_trk_g0_2 wire_io_cluster/io_0/D_OUT_0
+(13 5) Enable bit of Mux _io_cluster/in_mux0_1 => lc_trk_g0_4 wire_io_cluster/io_0/D_OUT_0
+(13 5) Enable bit of Mux _io_cluster/in_mux0_1 => lc_trk_g0_6 wire_io_cluster/io_0/D_OUT_0
+(13 5) Enable bit of Mux _io_cluster/in_mux0_1 => lc_trk_g1_1 wire_io_cluster/io_0/D_OUT_0
+(13 5) Enable bit of Mux _io_cluster/in_mux0_1 => lc_trk_g1_3 wire_io_cluster/io_0/D_OUT_0
+(13 5) Enable bit of Mux _io_cluster/in_mux0_1 => lc_trk_g1_5 wire_io_cluster/io_0/D_OUT_0
+(13 5) Enable bit of Mux _io_cluster/in_mux0_1 => lc_trk_g1_7 wire_io_cluster/io_0/D_OUT_0
+(13 6) routing span4_horz_37 span4_horz_13
+(13 6) routing span4_horz_r_2 span4_vert_13
+(13 6) routing span4_vert_37 span4_vert_13
+(13 6) routing span4_vert_b_2 span4_horz_13
+(13 7) routing span4_horz_13 span4_vert_b_2
+(13 7) routing span4_horz_37 span4_vert_b_2
+(13 7) routing span4_vert_13 span4_horz_r_2
+(13 7) routing span4_vert_37 span4_horz_r_2
+(13 8) routing lc_trk_g0_0 wire_io_cluster/io_1/inclk
+(13 8) routing lc_trk_g0_3 wire_io_cluster/io_1/inclk
+(13 8) routing lc_trk_g1_0 wire_io_cluster/io_1/inclk
+(13 8) routing lc_trk_g1_3 wire_io_cluster/io_1/inclk
+(13 9) Negative Clock bit
+(14 0) routing span4_horz_l_12 span4_vert_1
+(14 0) routing span4_horz_r_0 span4_vert_1
+(14 0) routing span4_vert_b_0 span4_horz_1
+(14 0) routing span4_vert_t_12 span4_horz_1
+(14 1) routing span4_horz_1 span4_vert_b_0
+(14 1) routing span4_horz_l_12 span4_horz_r_0
+(14 1) routing span4_vert_1 span4_horz_r_0
+(14 1) routing span4_vert_t_12 span4_vert_b_0
+(14 10) routing lc_trk_g0_5 wire_io_cluster/io_1/cen
+(14 10) routing lc_trk_g1_5 wire_io_cluster/io_1/cen
+(14 11) routing lc_trk_g0_2 wire_io_cluster/io_1/cen
+(14 11) routing lc_trk_g0_5 wire_io_cluster/io_1/cen
+(14 11) routing lc_trk_g1_2 wire_io_cluster/io_1/cen
+(14 11) routing lc_trk_g1_5 wire_io_cluster/io_1/cen
+(14 12) routing span4_horz_l_15 span4_vert_19
+(14 12) routing span4_horz_r_3 span4_vert_19
+(14 12) routing span4_vert_b_3 span4_horz_19
+(14 12) routing span4_vert_t_15 span4_horz_19
+(14 13) routing span4_horz_19 span4_vert_b_3
+(14 13) routing span4_horz_l_15 span4_horz_r_3
+(14 13) routing span4_vert_19 span4_horz_r_3
+(14 13) routing span4_vert_t_15 span4_vert_b_3
+(14 14) routing glb_netwk_4 wire_io_cluster/io_1/outclk
+(14 14) routing glb_netwk_5 wire_io_cluster/io_1/outclk
+(14 14) routing glb_netwk_6 wire_io_cluster/io_1/outclk
+(14 14) routing glb_netwk_7 wire_io_cluster/io_1/outclk
+(14 2) routing span4_horz_l_13 span4_vert_7
+(14 2) routing span4_horz_r_1 span4_vert_7
+(14 2) routing span4_vert_b_1 span4_horz_7
+(14 2) routing span4_vert_t_13 span4_horz_7
+(14 3) routing span4_horz_7 span4_vert_b_1
+(14 3) routing span4_horz_l_13 span4_horz_r_1
+(14 3) routing span4_vert_7 span4_horz_r_1
+(14 3) routing span4_vert_t_13 span4_vert_b_1
+(14 4) routing lc_trk_g0_3 fabout
+(14 4) routing lc_trk_g0_3 wire_gbuf/in
+(14 4) routing lc_trk_g0_7 fabout
+(14 4) routing lc_trk_g0_7 wire_gbuf/in
+(14 4) routing lc_trk_g1_2 fabout
+(14 4) routing lc_trk_g1_2 wire_gbuf/in
+(14 4) routing lc_trk_g1_6 fabout
+(14 4) routing lc_trk_g1_6 wire_gbuf/in
+(14 5) routing lc_trk_g1_0 fabout
+(14 5) routing lc_trk_g1_0 wire_gbuf/in
+(14 5) routing lc_trk_g1_2 fabout
+(14 5) routing lc_trk_g1_2 wire_gbuf/in
+(14 5) routing lc_trk_g1_4 fabout
+(14 5) routing lc_trk_g1_4 wire_gbuf/in
+(14 5) routing lc_trk_g1_6 fabout
+(14 5) routing lc_trk_g1_6 wire_gbuf/in
+(14 6) routing span4_horz_l_14 span4_vert_13
+(14 6) routing span4_horz_r_2 span4_vert_13
+(14 6) routing span4_vert_b_2