Giter Site home page Giter Site logo

chipsalliance / f4pga-xc-fasm2bels Goto Github PK

View Code? Open in Web Editor NEW
9.0 11.0 12.0 1.37 MB

Library to convert a FASM file into BELs importable into Vivado.

License: Apache License 2.0

Python 29.46% Makefile 0.09% Verilog 41.17% Tcl 29.28%
fasm vivado tcl verilog bitstream symbiflow artix-7

f4pga-xc-fasm2bels's Introduction

FASM 2 BELs

fasm2bels is a tool designed to take a FASM file into Vivado.

It does this by generating a file describing the BEL connections (techmapped Verilog) and TCL commands for Vivado which lock the BEL placements.

This makes it possible to perform simulation and analysis of a FASM file inside Vivado.

In the absence of bugs, it is expected that after consuming the BEL connections and TCL constraints Vivado will produce a bitstream identical to the bitstream the FASM file would generate.

Installing

After cloning this repo, run the following commands:

  • make env - this should work with many versions of python3 and above.
  • make build

Running tests

There are a set of tests to prevent regression and verify that all the functionalities of fasm2bels correctly work.

Before running the test, export the following environmental variables to have a properly working interchange files generation step:

export CAPNP_PATH=$(pwd)/third_party/capnproto-java/compiler/src/main/schema/
export INTERCHANGE_SCHEMA_PATH=$(pwd)/third_party/fpga-interchange-schema/interchange

Once the environment is ready, run the python tests:

  • make test-py - It takes a few minutes to run all the tests (22).

An OK should appear at the bottom of the terminal run if successful.

Invoking

python3 -mfasm2bels <options> <verilog> <tcl>

Required arguments are:

  • --connection_database - Path to connection database for part
  • --db_root - Path to prjxray database for part
  • --part - FPGA part
  • --fasm_file - Path to FASM file to process
  • verilog - Path to verilog file to write
  • tcl - Path to TCL file to write

The first time you run it you will not have a connection database for the part. Provide a name for this parameter such as ./basys3.db and the program will generate the database the first time you run. On subsequent runs you can then specify that filename and avoid re-building the database each time.

Here is an example run of the process:

python3 -mfasm2bels --connection_database mydb \
                      --db_root ~/prjxray/database/artix7 \
                      --part xc7a35tcpg236-1 \
                      --fasm_file file_name.fasm \
                      file_name.v file_name.tcl

Once the verilog and TCL is generated, it should be importable to Vivado with a script roughly like:

create_project -force -part {part} design design

read_verilog {bit_v}
synth_design -top {top}
source {bit_tcl}
set_property IS_ENABLED 0 [get_drc_checks {{LUTLP-1}}]
place_design
route_design

Timing constraints should be provided as needed, along with other property modifications as needed for the design. These properties are not embedded in the bitstream, so must be supplied external.

Examples:

  • set_property CFGBVS VCCO [current_design]
  • set_property CONFIG_VOLTAGE 3.3 [current_design]

BELs / Sites supported

  • SLICEL (all)
  • SLICEM (all)
  • RAMB18/RAMB36 (BRAM only, no FIFO support)
  • IOB (limited IOSTANDARDs)
  • IOI
    • IDELAY
    • IDDR/ISERDES
    • ODDR/OSERDES
  • CLK_HROW_*
  • CLK_BUFG_*
  • PLLs
  • PSS

Future work

  • MMCMs
  • BUFR/BUFMR and other clock buffers
  • DSP

f4pga-xc-fasm2bels's People

Contributors

acomodi avatar adamolech avatar arcanenibble avatar dependabot-preview[bot] avatar dependabot-support avatar elms avatar gergoerdi avatar glatosinski avatar hackerfoo avatar jakeedvenson avatar jaromharris avatar jgoeders avatar kgugala avatar litghost avatar mithro avatar mkurc-ant avatar symbiflow-robot avatar thedhcreator avatar tmichalak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

f4pga-xc-fasm2bels's Issues

Add support for MMCM

This issue is about adding support for decoding MMCME2_ADV primitive. Required features are the same as for PLLE2_ADV plus fractional divider decoding.

assert - no upstream connection

I have the following design (dcp and fasm in zip) that was compiled (Verilog to bistream) using Vivado.
design.zip

I'm running into an assertion during make_routes:

https://github.com/SymbiFlow/symbiflow-xc-fasm2bels/blob/8961d6a3b8c0dad0e3800180d4fe788fe93744bb/fasm2bels/make_routes.py#L625

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 192, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/__main__.py", line 4, in <module>
    main()
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/fasm2bels.py", line 455, in main
    top.make_routes(allow_orphan_sinks=args.allow_orphan_sinks)
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/models/verilog_modeling.py", line 2270, in make_routes
    for sink_wire, src_wire in make_routes(
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/make_routes.py", line 701, in make_routes
    expand_sink(
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/make_routes.py", line 472, in expand_sink
    expand_sink(
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/make_routes.py", line 625, in expand_sink
    assert False, (sink_node_pkey, tile_name, wire_name, sink_wire_pkey)
AssertionError: (4909118, 'CLK_BUFG_BOT_R_X139Y152', 'CLK_BUFG_BOT_R_CK_MUXED0', 6787259)

There appears to be one BUFG used in this tile. It is fed by a wire that seems to come from this INTER to the left, but also from a long route from an IOB (maybe this is normal to be drawn like this?)

image

The long wire is driven by an IOB input:

image

about add dsp to fasm2bels

I have apend dsp to arch_def and generate a bits file which contains a DSP48E1 instantiation. But the bits does not work correctly on board. I don't know which step goes wrong. I want to verify the fasm file with fasm2bels. How do I add dsp to fasm2bels and is this process complex? Any docs or suggestions will be expected. Here is my top.fasm.
DSP_R_X9Y125.DSP48.DSP_0.MASK[47:0]=48'b001111111111111111111111111111111111111111111111 DSP_R_X9Y125.DSP48.DSP_0.PATTERN[47:0]=48'b000000000000000000000000000000000000000000000000 LIOB33_X0Y91.IOB_Y0.SSTL135_SSTL15.SLEW.FAST=1'b0 LIOB33_X0Y91.IOB_Y0.SSTL135.DRIVE.I_FIXED=1'b0 LIOB33_X0Y91.IOB_Y0.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y91.IOB_Y0.PULLTYPE.NONE=1'b1 LIOB33_X0Y91.IOB_Y0.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS15.DRIVE.I8=1'b0 LIOB33_X0Y91.IOB_Y0.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS12.DRIVE.I12=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I12_I8=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS12.DRIVE.I4=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS15_SSTL15.DRIVE.I16_I_FIXED=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS15_LVCMOS18_LVCMOS25.DRIVE.I4=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS18.DRIVE.I16=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS33.DRIVE.I16=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS12_LVCMOS25.DRIVE.I8=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS18.DRIVE.I12_I8=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS18.DRIVE.I24=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS15.DRIVE.I12=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS25.DRIVE.I12=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I12_I16=1'b1 LIOB33_X0Y91.IOB_Y0.LVCMOS25.DRIVE.I16=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15.SLEW.SLOW=1'b1 LIOB33_X0Y91.IOB_Y0.LVTTL.DRIVE.I24=1'b0 LIOB33_X0Y91.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I4=1'b0 LIOI3_X0Y91.OLOGIC_Y0.OSERDES.DATA_RATE_TQ.BUF LIOI3_X0Y91.OLOGIC_Y0.OMUX.D1 LIOI3_X0Y91.OLOGIC_Y0.OQUSED LIOB33_X0Y91.IOB_Y1.SSTL135_SSTL15.SLEW.FAST=1'b0 LIOB33_X0Y91.IOB_Y1.SSTL135.DRIVE.I_FIXED=1'b0 LIOB33_X0Y91.IOB_Y1.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y91.IOB_Y1.PULLTYPE.NONE=1'b1 LIOB33_X0Y91.IOB_Y1.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS15.DRIVE.I8=1'b0 LIOB33_X0Y91.IOB_Y1.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS12.DRIVE.I12=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I12_I8=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS12.DRIVE.I4=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS15_SSTL15.DRIVE.I16_I_FIXED=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS15_LVCMOS18_LVCMOS25.DRIVE.I4=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS18.DRIVE.I16=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS33.DRIVE.I16=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS12_LVCMOS25.DRIVE.I8=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS18.DRIVE.I12_I8=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS18.DRIVE.I24=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS15.DRIVE.I12=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS25.DRIVE.I12=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I12_I16=1'b1 LIOB33_X0Y91.IOB_Y1.LVCMOS25.DRIVE.I16=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15.SLEW.SLOW=1'b1 LIOB33_X0Y91.IOB_Y1.LVTTL.DRIVE.I24=1'b0 LIOB33_X0Y91.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I4=1'b0 LIOI3_X0Y91.OLOGIC_Y1.OSERDES.DATA_RATE_TQ.BUF LIOI3_X0Y91.OLOGIC_Y1.OMUX.D1 LIOI3_X0Y91.OLOGIC_Y1.OQUSED LIOB33_X0Y87.IOB_Y0.SSTL135_SSTL15.SLEW.FAST=1'b0 LIOB33_X0Y87.IOB_Y0.SSTL135.DRIVE.I_FIXED=1'b0 LIOB33_X0Y87.IOB_Y0.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y87.IOB_Y0.PULLTYPE.NONE=1'b1 LIOB33_X0Y87.IOB_Y0.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS15.DRIVE.I8=1'b0 LIOB33_X0Y87.IOB_Y0.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS12.DRIVE.I12=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I12_I8=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS12.DRIVE.I4=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS15_SSTL15.DRIVE.I16_I_FIXED=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS15_LVCMOS18_LVCMOS25.DRIVE.I4=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS18.DRIVE.I16=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS33.DRIVE.I16=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS12_LVCMOS25.DRIVE.I8=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS18.DRIVE.I12_I8=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS18.DRIVE.I24=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS15.DRIVE.I12=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS25.DRIVE.I12=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I12_I16=1'b1 LIOB33_X0Y87.IOB_Y0.LVCMOS25.DRIVE.I16=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15.SLEW.SLOW=1'b1 LIOB33_X0Y87.IOB_Y0.LVTTL.DRIVE.I24=1'b0 LIOB33_X0Y87.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I4=1'b0 LIOI3_TBYTETERM_X0Y87.OLOGIC_Y0.OSERDES.DATA_RATE_TQ.BUF LIOI3_TBYTETERM_X0Y87.OLOGIC_Y0.OMUX.D1 LIOI3_TBYTETERM_X0Y87.OLOGIC_Y0.OQUSED LIOB33_X0Y87.IOB_Y1.SSTL135_SSTL15.SLEW.FAST=1'b0 LIOB33_X0Y87.IOB_Y1.SSTL135.DRIVE.I_FIXED=1'b0 LIOB33_X0Y87.IOB_Y1.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y87.IOB_Y1.PULLTYPE.NONE=1'b1 LIOB33_X0Y87.IOB_Y1.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS15.DRIVE.I8=1'b0 LIOB33_X0Y87.IOB_Y1.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS12.DRIVE.I12=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I12_I8=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS12.DRIVE.I4=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS15_SSTL15.DRIVE.I16_I_FIXED=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS15_LVCMOS18_LVCMOS25.DRIVE.I4=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS18.DRIVE.I16=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS33.DRIVE.I16=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS12_LVCMOS25.DRIVE.I8=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS18.DRIVE.I12_I8=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS18.DRIVE.I24=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS15.DRIVE.I12=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS25.DRIVE.I12=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I12_I16=1'b1 LIOB33_X0Y87.IOB_Y1.LVCMOS25.DRIVE.I16=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15.SLEW.SLOW=1'b1 LIOB33_X0Y87.IOB_Y1.LVTTL.DRIVE.I24=1'b0 LIOB33_X0Y87.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I4=1'b0 LIOI3_TBYTETERM_X0Y87.OLOGIC_Y1.OSERDES.DATA_RATE_TQ.BUF LIOI3_TBYTETERM_X0Y87.OLOGIC_Y1.OMUX.D1 LIOI3_TBYTETERM_X0Y87.OLOGIC_Y1.OQUSED LIOB33_X0Y13.IOB_Y1.SSTL135_SSTL15.SLEW.FAST=1'b0 LIOB33_X0Y13.IOB_Y1.SSTL135.DRIVE.I_FIXED=1'b0 LIOB33_X0Y13.IOB_Y1.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y13.IOB_Y1.PULLTYPE.NONE=1'b1 LIOB33_X0Y13.IOB_Y1.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS15.DRIVE.I8=1'b0 LIOB33_X0Y13.IOB_Y1.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS12.DRIVE.I12=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I12_I8=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS12.DRIVE.I4=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS15_SSTL15.DRIVE.I16_I_FIXED=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS15_LVCMOS18_LVCMOS25.DRIVE.I4=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS18.DRIVE.I16=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS33.DRIVE.I16=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS12_LVCMOS25.DRIVE.I8=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS18.DRIVE.I12_I8=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS18.DRIVE.I24=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS15.DRIVE.I12=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS25.DRIVE.I12=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I12_I16=1'b1 LIOB33_X0Y13.IOB_Y1.LVCMOS25.DRIVE.I16=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15.SLEW.SLOW=1'b1 LIOB33_X0Y13.IOB_Y1.LVTTL.DRIVE.I24=1'b0 LIOB33_X0Y13.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I4=1'b0 LIOI3_TBYTETERM_X0Y13.OLOGIC_Y1.OSERDES.DATA_RATE_TQ.BUF LIOI3_TBYTETERM_X0Y13.OLOGIC_Y1.OMUX.D1 LIOI3_TBYTETERM_X0Y13.OLOGIC_Y1.OQUSED LIOB33_X0Y13.IOB_Y0.SSTL135_SSTL15.SLEW.FAST=1'b0 LIOB33_X0Y13.IOB_Y0.SSTL135.DRIVE.I_FIXED=1'b0 LIOB33_X0Y13.IOB_Y0.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y13.IOB_Y0.PULLTYPE.NONE=1'b1 LIOB33_X0Y13.IOB_Y0.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS15.DRIVE.I8=1'b0 LIOB33_X0Y13.IOB_Y0.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS12.DRIVE.I12=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I12_I8=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS12.DRIVE.I4=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS15_SSTL15.DRIVE.I16_I_FIXED=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS15_LVCMOS18_LVCMOS25.DRIVE.I4=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS18.DRIVE.I16=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS33.DRIVE.I16=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS12_LVCMOS25.DRIVE.I8=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS18.DRIVE.I12_I8=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS18.DRIVE.I24=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS15.DRIVE.I12=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS25.DRIVE.I12=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I12_I16=1'b1 LIOB33_X0Y13.IOB_Y0.LVCMOS25.DRIVE.I16=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15.SLEW.SLOW=1'b1 LIOB33_X0Y13.IOB_Y0.LVTTL.DRIVE.I24=1'b0 LIOB33_X0Y13.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I4=1'b0 LIOI3_TBYTETERM_X0Y13.OLOGIC_Y0.OSERDES.DATA_RATE_TQ.BUF LIOI3_TBYTETERM_X0Y13.OLOGIC_Y0.OMUX.D1 LIOI3_TBYTETERM_X0Y13.OLOGIC_Y0.OQUSED LIOB33_X0Y29.IOB_Y1.SSTL135_SSTL15.SLEW.FAST=1'b0 LIOB33_X0Y29.IOB_Y1.SSTL135.DRIVE.I_FIXED=1'b0 LIOB33_X0Y29.IOB_Y1.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y29.IOB_Y1.PULLTYPE.NONE=1'b1 LIOB33_X0Y29.IOB_Y1.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS15.DRIVE.I8=1'b0 LIOB33_X0Y29.IOB_Y1.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS12.DRIVE.I12=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I12_I8=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS12.DRIVE.I4=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS15_SSTL15.DRIVE.I16_I_FIXED=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS15_LVCMOS18_LVCMOS25.DRIVE.I4=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS18.DRIVE.I16=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS33.DRIVE.I16=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS12_LVCMOS25.DRIVE.I8=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS18.DRIVE.I12_I8=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS18.DRIVE.I24=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS15.DRIVE.I12=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS25.DRIVE.I12=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I12_I16=1'b1 LIOB33_X0Y29.IOB_Y1.LVCMOS25.DRIVE.I16=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15.SLEW.SLOW=1'b1 LIOB33_X0Y29.IOB_Y1.LVTTL.DRIVE.I24=1'b0 LIOB33_X0Y29.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I4=1'b0 LIOI3_X0Y29.OLOGIC_Y1.OSERDES.DATA_RATE_TQ.BUF LIOI3_X0Y29.OLOGIC_Y1.OMUX.D1 LIOI3_X0Y29.OLOGIC_Y1.OQUSED LIOB33_X0Y29.IOB_Y0.SSTL135_SSTL15.SLEW.FAST=1'b0 LIOB33_X0Y29.IOB_Y0.SSTL135.DRIVE.I_FIXED=1'b0 LIOB33_X0Y29.IOB_Y0.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y29.IOB_Y0.PULLTYPE.NONE=1'b1 LIOB33_X0Y29.IOB_Y0.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS15.DRIVE.I8=1'b0 LIOB33_X0Y29.IOB_Y0.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS12.DRIVE.I12=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I12_I8=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS12.DRIVE.I4=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS15_SSTL15.DRIVE.I16_I_FIXED=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS15_LVCMOS18_LVCMOS25.DRIVE.I4=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS18.DRIVE.I16=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS33.DRIVE.I16=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS12_LVCMOS25.DRIVE.I8=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS18.DRIVE.I12_I8=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS18.DRIVE.I24=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS15.DRIVE.I12=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS25.DRIVE.I12=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I12_I16=1'b1 LIOB33_X0Y29.IOB_Y0.LVCMOS25.DRIVE.I16=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15.SLEW.SLOW=1'b1 LIOB33_X0Y29.IOB_Y0.LVTTL.DRIVE.I24=1'b0 LIOB33_X0Y29.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I4=1'b0 LIOI3_X0Y29.OLOGIC_Y0.OSERDES.DATA_RATE_TQ.BUF LIOI3_X0Y29.OLOGIC_Y0.OMUX.D1 LIOI3_X0Y29.OLOGIC_Y0.OQUSED LIOB33_X0Y21.IOB_Y1.SSTL135_SSTL15.SLEW.FAST=1'b0 LIOB33_X0Y21.IOB_Y1.SSTL135.DRIVE.I_FIXED=1'b0 LIOB33_X0Y21.IOB_Y1.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y21.IOB_Y1.PULLTYPE.NONE=1'b1 LIOB33_X0Y21.IOB_Y1.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS15.DRIVE.I8=1'b0 LIOB33_X0Y21.IOB_Y1.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS12.DRIVE.I12=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I12_I8=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS12.DRIVE.I4=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS15_SSTL15.DRIVE.I16_I_FIXED=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS15_LVCMOS18_LVCMOS25.DRIVE.I4=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS18.DRIVE.I16=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS33.DRIVE.I16=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS12_LVCMOS25.DRIVE.I8=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS18.DRIVE.I12_I8=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS18.DRIVE.I24=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS15.DRIVE.I12=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS25.DRIVE.I12=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I12_I16=1'b1 LIOB33_X0Y21.IOB_Y1.LVCMOS25.DRIVE.I16=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15.SLEW.SLOW=1'b1 LIOB33_X0Y21.IOB_Y1.LVTTL.DRIVE.I24=1'b0 LIOB33_X0Y21.IOB_Y1.LVCMOS33_LVTTL.DRIVE.I4=1'b0 LIOI3_X0Y21.OLOGIC_Y1.OSERDES.DATA_RATE_TQ.BUF LIOI3_X0Y21.OLOGIC_Y1.OMUX.D1 LIOI3_X0Y21.OLOGIC_Y1.OQUSED LIOB33_X0Y21.IOB_Y0.SSTL135_SSTL15.SLEW.FAST=1'b0 LIOB33_X0Y21.IOB_Y0.SSTL135.DRIVE.I_FIXED=1'b0 LIOB33_X0Y21.IOB_Y0.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y21.IOB_Y0.PULLTYPE.NONE=1'b1 LIOB33_X0Y21.IOB_Y0.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS15.DRIVE.I8=1'b0 LIOB33_X0Y21.IOB_Y0.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS12.DRIVE.I12=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I12_I8=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS12.DRIVE.I4=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS15_SSTL15.DRIVE.I16_I_FIXED=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS15_LVCMOS18_LVCMOS25.DRIVE.I4=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS18.DRIVE.I16=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS33.DRIVE.I16=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS12_LVCMOS25.DRIVE.I8=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS18.DRIVE.I12_I8=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS18.DRIVE.I24=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS15.DRIVE.I12=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS25.DRIVE.I12=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I12_I16=1'b1 LIOB33_X0Y21.IOB_Y0.LVCMOS25.DRIVE.I16=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15.SLEW.SLOW=1'b1 LIOB33_X0Y21.IOB_Y0.LVTTL.DRIVE.I24=1'b0 LIOB33_X0Y21.IOB_Y0.LVCMOS33_LVTTL.DRIVE.I4=1'b0 LIOI3_X0Y21.OLOGIC_Y0.OSERDES.DATA_RATE_TQ.BUF LIOI3_X0Y21.OLOGIC_Y0.OMUX.D1 LIOI3_X0Y21.OLOGIC_Y0.OQUSED LIOI3_X0Y23.ILOGIC_Y0.ZINV_D LIOB33_X0Y23.IOB_Y0.SSTL135_SSTL15.IN=1'b0 LIOB33_X0Y23.IOB_Y0.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y23.IOB_Y0.LVCMOS25_LVCMOS33_LVTTL.IN=1'b1 LIOB33_X0Y23.IOB_Y0.IN_TERM.UNTUNED_SPLIT_50=1'b0 LIOB33_X0Y23.IOB_Y0.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y23.IOB_Y0.IN_TERM.UNTUNED_SPLIT_60=1'b0 LIOB33_X0Y23.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b1 LIOB33_X0Y23.IOB_Y0.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y23.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVDS_25_LVTTL_SSTL135_SSTL15_TMDS_33.IN_ONLY=1'b1 LIOB33_X0Y23.IOB_Y0.IN_TERM.UNTUNED_SPLIT_40=1'b0 LIOB33_X0Y23.IOB_Y0.PULLTYPE.NONE=1'b1 LIOB33_X0Y23.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18.IN=1'b0 LIOB33_X0Y23.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOI3_X0Y73.ILOGIC_Y0.ZINV_D LIOB33_X0Y73.IOB_Y0.SSTL135_SSTL15.IN=1'b0 LIOB33_X0Y73.IOB_Y0.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y73.IOB_Y0.LVCMOS25_LVCMOS33_LVTTL.IN=1'b1 LIOB33_X0Y73.IOB_Y0.IN_TERM.UNTUNED_SPLIT_50=1'b0 LIOB33_X0Y73.IOB_Y0.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y73.IOB_Y0.IN_TERM.UNTUNED_SPLIT_60=1'b0 LIOB33_X0Y73.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b1 LIOB33_X0Y73.IOB_Y0.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y73.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVDS_25_LVTTL_SSTL135_SSTL15_TMDS_33.IN_ONLY=1'b1 LIOB33_X0Y73.IOB_Y0.IN_TERM.UNTUNED_SPLIT_40=1'b0 LIOB33_X0Y73.IOB_Y0.PULLTYPE.NONE=1'b1 LIOB33_X0Y73.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18.IN=1'b0 LIOB33_X0Y73.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOI3_X0Y73.ILOGIC_Y1.ZINV_D LIOB33_X0Y73.IOB_Y1.SSTL135_SSTL15.IN=1'b0 LIOB33_X0Y73.IOB_Y1.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y73.IOB_Y1.LVCMOS25_LVCMOS33_LVTTL.IN=1'b1 LIOB33_X0Y73.IOB_Y1.IN_TERM.UNTUNED_SPLIT_50=1'b0 LIOB33_X0Y73.IOB_Y1.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y73.IOB_Y1.IN_TERM.UNTUNED_SPLIT_60=1'b0 LIOB33_X0Y73.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b1 LIOB33_X0Y73.IOB_Y1.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y73.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVDS_25_LVTTL_SSTL135_SSTL15_TMDS_33.IN_ONLY=1'b1 LIOB33_X0Y73.IOB_Y1.IN_TERM.UNTUNED_SPLIT_40=1'b0 LIOB33_X0Y73.IOB_Y1.PULLTYPE.NONE=1'b1 LIOB33_X0Y73.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18.IN=1'b0 LIOB33_X0Y73.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOI3_X0Y3.ILOGIC_Y0.ZINV_D LIOB33_X0Y3.IOB_Y0.SSTL135_SSTL15.IN=1'b0 LIOB33_X0Y3.IOB_Y0.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y3.IOB_Y0.LVCMOS25_LVCMOS33_LVTTL.IN=1'b1 LIOB33_X0Y3.IOB_Y0.IN_TERM.UNTUNED_SPLIT_50=1'b0 LIOB33_X0Y3.IOB_Y0.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y3.IOB_Y0.IN_TERM.UNTUNED_SPLIT_60=1'b0 LIOB33_X0Y3.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b1 LIOB33_X0Y3.IOB_Y0.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y3.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVDS_25_LVTTL_SSTL135_SSTL15_TMDS_33.IN_ONLY=1'b1 LIOB33_X0Y3.IOB_Y0.IN_TERM.UNTUNED_SPLIT_40=1'b0 LIOB33_X0Y3.IOB_Y0.PULLTYPE.NONE=1'b1 LIOB33_X0Y3.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18.IN=1'b0 LIOB33_X0Y3.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOI3_X0Y5.ILOGIC_Y0.ZINV_D LIOB33_X0Y5.IOB_Y0.SSTL135_SSTL15.IN=1'b0 LIOB33_X0Y5.IOB_Y0.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y5.IOB_Y0.LVCMOS25_LVCMOS33_LVTTL.IN=1'b1 LIOB33_X0Y5.IOB_Y0.IN_TERM.UNTUNED_SPLIT_50=1'b0 LIOB33_X0Y5.IOB_Y0.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y5.IOB_Y0.IN_TERM.UNTUNED_SPLIT_60=1'b0 LIOB33_X0Y5.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b1 LIOB33_X0Y5.IOB_Y0.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y5.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVDS_25_LVTTL_SSTL135_SSTL15_TMDS_33.IN_ONLY=1'b1 LIOB33_X0Y5.IOB_Y0.IN_TERM.UNTUNED_SPLIT_40=1'b0 LIOB33_X0Y5.IOB_Y0.PULLTYPE.NONE=1'b1 LIOB33_X0Y5.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18.IN=1'b0 LIOB33_X0Y5.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOI3_X0Y27.ILOGIC_Y1.ZINV_D LIOB33_X0Y27.IOB_Y1.SSTL135_SSTL15.IN=1'b0 LIOB33_X0Y27.IOB_Y1.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y27.IOB_Y1.LVCMOS25_LVCMOS33_LVTTL.IN=1'b1 LIOB33_X0Y27.IOB_Y1.IN_TERM.UNTUNED_SPLIT_50=1'b0 LIOB33_X0Y27.IOB_Y1.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y27.IOB_Y1.IN_TERM.UNTUNED_SPLIT_60=1'b0 LIOB33_X0Y27.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b1 LIOB33_X0Y27.IOB_Y1.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y27.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVDS_25_LVTTL_SSTL135_SSTL15_TMDS_33.IN_ONLY=1'b1 LIOB33_X0Y27.IOB_Y1.IN_TERM.UNTUNED_SPLIT_40=1'b0 LIOB33_X0Y27.IOB_Y1.PULLTYPE.NONE=1'b1 LIOB33_X0Y27.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18.IN=1'b0 LIOB33_X0Y27.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 LIOI3_X0Y27.ILOGIC_Y0.ZINV_D LIOB33_X0Y27.IOB_Y0.SSTL135_SSTL15.IN=1'b0 LIOB33_X0Y27.IOB_Y0.PULLTYPE.KEEPER=1'b0 LIOB33_X0Y27.IOB_Y0.LVCMOS25_LVCMOS33_LVTTL.IN=1'b1 LIOB33_X0Y27.IOB_Y0.IN_TERM.UNTUNED_SPLIT_50=1'b0 LIOB33_X0Y27.IOB_Y0.PULLTYPE.PULLUP=1'b0 LIOB33_X0Y27.IOB_Y0.IN_TERM.UNTUNED_SPLIT_60=1'b0 LIOB33_X0Y27.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL.SLEW.FAST=1'b1 LIOB33_X0Y27.IOB_Y0.PULLTYPE.PULLDOWN=1'b0 LIOB33_X0Y27.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVDS_25_LVTTL_SSTL135_SSTL15_TMDS_33.IN_ONLY=1'b1 LIOB33_X0Y27.IOB_Y0.IN_TERM.UNTUNED_SPLIT_40=1'b0 LIOB33_X0Y27.IOB_Y0.PULLTYPE.NONE=1'b1 LIOB33_X0Y27.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18.IN=1'b0 LIOB33_X0Y27.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN=1'b0 CLBLL_L_X2Y103.SLICEL_X0.ALUT.INIT[31:0]=32'b00000000000000001111111111111111 CLBLL_L_X2Y103.SLICEL_X0.ALUT.INIT[63:32]=32'b00110011001100110011001100110011 CLBLL_L_X2Y103.SLICEL_X0.BLUT.INIT[31:0]=32'b00000000000000001111111111111111 CLBLL_L_X2Y103.SLICEL_X0.BLUT.INIT[63:32]=32'b00110011001100110011001100110011 CLBLL_L_X2Y103.SLICEL_X0.CLUT.INIT[31:0]=32'b00000000000000001111111111111111 CLBLL_L_X2Y103.SLICEL_X0.CLUT.INIT[63:32]=32'b00000000111111110000000011111111 CLBLL_L_X2Y103.SLICEL_X0.DLUT.INIT[31:0]=32'b00110011001100110011001100110011 CLBLL_L_X2Y103.SLICEL_X0.DLUT.INIT[63:32]=32'b00000000111111110000000011111111 CLBLL_L_X2Y103.SLICEL_X0.AOUTMUX.O5 CLBLL_L_X2Y103.SLICEL_X0.BOUTMUX.O5 CLBLL_L_X2Y103.SLICEL_X0.COUTMUX.O5 CLBLL_L_X2Y103.SLICEL_X0.DOUTMUX.O5 CLBLM_R_X3Y108.SLICEL_X1.ALUT.INIT[31:0]=32'b00000000000000001111111111111111 CLBLM_R_X3Y108.SLICEL_X1.ALUT.INIT[63:32]=32'b00110011001100110011001100110011 CLBLM_R_X3Y108.SLICEL_X1.BLUT.INIT[31:0]=32'b00000000000000001111111111111111 CLBLM_R_X3Y108.SLICEL_X1.BLUT.INIT[63:32]=32'b00110011001100110011001100110011 CLBLM_R_X3Y108.SLICEL_X1.CLUT.INIT[31:0]=32'b00000000000000001111111111111111 CLBLM_R_X3Y108.SLICEL_X1.CLUT.INIT[63:32]=32'b00000000111111110000000011111111 CLBLM_R_X3Y108.SLICEL_X1.DLUT.INIT[31:0]=32'b00110011001100110011001100110011 CLBLM_R_X3Y108.SLICEL_X1.DLUT.INIT[63:32]=32'b00000000111111110000000011111111 CLBLM_R_X3Y108.SLICEL_X1.AOUTMUX.O5 CLBLM_R_X3Y108.SLICEL_X1.BOUTMUX.O5 CLBLM_R_X3Y108.SLICEL_X1.COUTMUX.O5 CLBLM_R_X3Y108.SLICEL_X1.DOUTMUX.O5 INT_R_X9Y128.GFAN1.GND_WIRE INT_R_X9Y128.IMUX29.GFAN1 DSP_R_X9Y125.DSP_1_C14.DSP_IMUX29_3 INT_R_X9Y128.IMUX31.GFAN1 DSP_R_X9Y125.DSP_1_C12.DSP_IMUX31_3 INT_R_X9Y128.IMUX12.GFAN1 DSP_R_X9Y125.DSP_1_C34.DSP_IMUX12_3 INT_R_X9Y128.IMUX22.GFAN1 DSP_R_X9Y125.DSP_1_C32.DSP_IMUX22_3 INT_R_X9Y128.IMUX4.GFAN1 DSP_R_X9Y125.DSP_1_A15.DSP_IMUX4_3 INT_R_X9Y128.IMUX44.GFAN1 DSP_R_X9Y125.DSP_1_A14.DSP_IMUX44_3 INT_R_X9Y128.IMUX5.GFAN1 DSP_R_X9Y125.DSP_1_A13.DSP_IMUX5_3 INT_R_X9Y128.IMUX45.GFAN1 DSP_R_X9Y125.DSP_1_A12.DSP_IMUX45_3 INT_R_X9Y128.IMUX15.GFAN1 DSP_R_X9Y125.DSP_1_CARRYIN.DSP_IMUX15_3 INT_R_X9Y127.GFAN1.GND_WIRE INT_R_X9Y127.IMUX14.GFAN1 DSP_R_X9Y125.DSP_1_B8.DSP_IMUX14_2 INT_R_X9Y127.IMUX29.GFAN1 DSP_R_X9Y125.DSP_1_C10.DSP_IMUX29_2 INT_R_X9Y127.IMUX28.GFAN1 DSP_R_X9Y125.DSP_1_C30.DSP_IMUX28_2 INT_R_X9Y127.IMUX46.GFAN1 DSP_R_X9Y125.DSP_1_C28.DSP_IMUX46_2 INT_R_X9Y127.IMUX13.GFAN1 DSP_R_X9Y125.DSP_1_A10.DSP_IMUX13_2 INT_R_X9Y127.IMUX44.GFAN1 DSP_R_X9Y125.DSP_1_B10.DSP_IMUX44_2 INT_R_X9Y127.IMUX15.GFAN1 DSP_R_X9Y125.DSP_1_A8.DSP_IMUX15_2 INT_R_X9Y127.IMUX5.GFAN1 DSP_R_X9Y125.DSP_1_A29.DSP_IMUX5_2 INT_R_X9Y127.IMUX45.GFAN1 DSP_R_X9Y125.DSP_1_A28.DSP_IMUX45_2 INT_R_X9Y127.CTRL1.GFAN1 DSP_R_X9Y125.DSP_1_RSTA.DSP_CTRL1_2 INT_R_X9Y127.IMUX31.GFAN1 DSP_R_X9Y125.DSP_1_C8.DSP_IMUX31_2 INT_R_X9Y126.GFAN0.GND_WIRE INT_R_X9Y126.IMUX8.GFAN0 DSP_R_X9Y125.DSP_1_B7.DSP_IMUX8_1 INT_R_X9Y126.IMUX24.GFAN0 DSP_R_X9Y125.DSP_1_C27.DSP_IMUX24_1 INT_R_X9Y126.IMUX26.GFAN0 DSP_R_X9Y125.DSP_1_C25.DSP_IMUX26_1 INT_R_X9Y126.IMUX9.GFAN0 DSP_R_X9Y125.DSP_1_A7.DSP_IMUX9_1 INT_R_X9Y126.IMUX11.GFAN0 DSP_R_X9Y125.DSP_1_A5.DSP_IMUX11_1 INT_R_X9Y126.IMUX25.GFAN0 DSP_R_X9Y125.DSP_1_C7.DSP_IMUX25_1 INT_R_X9Y126.IMUX27.GFAN0 DSP_R_X9Y125.DSP_1_C5.DSP_IMUX27_1 INT_R_X9Y126.FAN_ALT4.GFAN0 INT_R_X9Y126.FAN_BOUNCE4.FAN_ALT4 INT_R_X9Y125.IMUX15.FAN_BOUNCE_S3_4 DSP_R_X9Y125.DSP_1_A0.DSP_IMUX15_0 INT_R_X9Y125.IMUX31.FAN_BOUNCE_S3_4 DSP_R_X9Y125.DSP_1_C0.DSP_IMUX31_0 INT_R_X9Y125.IMUX29.FAN_BOUNCE_S3_4 DSP_R_X9Y125.DSP_1_C2.DSP_IMUX29_0 INT_R_X9Y125.IMUX5.FAN_BOUNCE_S3_4 DSP_R_X9Y125.DSP_1_A21.DSP_IMUX5_0 INT_R_X9Y125.IMUX45.FAN_BOUNCE_S3_4 DSP_R_X9Y125.DSP_1_A20.DSP_IMUX45_0 INT_R_X9Y125.IMUX13.FAN_BOUNCE_S3_4 DSP_R_X9Y125.DSP_1_A2.DSP_IMUX13_0 INT_R_X9Y125.GFAN0.GND_WIRE INT_R_X9Y125.IMUX43.GFAN0 DSP_R_X9Y125.DSP_1_C1.DSP_IMUX43_0 INT_R_X9Y125.IMUX41.GFAN0 DSP_R_X9Y125.DSP_1_C3.DSP_IMUX41_0 INT_R_X9Y125.IMUX24.GFAN0 DSP_R_X9Y125.DSP_1_C23.DSP_IMUX24_0 INT_R_X9Y125.IMUX10.GFAN0 DSP_R_X9Y125.DSP_1_C21.DSP_IMUX10_0 INT_R_X9Y125.IMUX11.GFAN0 DSP_R_X9Y125.DSP_1_A1.DSP_IMUX11_0 INT_R_X9Y125.IMUX9.GFAN0 DSP_R_X9Y125.DSP_1_A3.DSP_IMUX9_0 INT_R_X9Y125.IMUX25.GFAN0 DSP_R_X9Y125.DSP_1_C43.DSP_IMUX25_0 INT_R_X9Y125.IMUX2.GFAN0 DSP_R_X9Y125.DSP_1_C42.DSP_IMUX2_0 INT_R_X9Y125.IMUX8.GFAN0 DSP_R_X9Y125.DSP_1_C41.DSP_IMUX8_0 INT_R_X9Y125.IMUX27.GFAN0 DSP_R_X9Y125.DSP_1_C40.DSP_IMUX27_0 INT_R_X9Y125.BYP_ALT4.GFAN0 INT_R_X9Y125.BYP_BOUNCE4.BYP_ALT4 INT_R_X9Y125.IMUX12.BYP_BOUNCE4 DSP_R_X9Y125.DSP_1_C22.DSP_IMUX12_0 INT_R_X9Y125.IMUX30.BYP_BOUNCE4 DSP_R_X9Y125.DSP_1_C20.DSP_IMUX30_0 INT_R_X9Y125.IMUX4.BYP_BOUNCE4 DSP_R_X9Y125.DSP_1_A23.DSP_IMUX4_0 INT_R_X9Y125.IMUX44.BYP_BOUNCE4 DSP_R_X9Y125.DSP_1_A22.DSP_IMUX44_0 INT_R_X9Y126.GFAN1.GND_WIRE INT_R_X9Y126.IMUX28.GFAN1 DSP_R_X9Y125.DSP_1_B6.DSP_IMUX28_1 INT_R_X9Y126.IMUX12.GFAN1 DSP_R_X9Y125.DSP_1_C26.DSP_IMUX12_1 INT_R_X9Y126.IMUX14.GFAN1 DSP_R_X9Y125.DSP_1_C24.DSP_IMUX14_1 INT_R_X9Y126.IMUX5.GFAN1 DSP_R_X9Y125.DSP_1_A25.DSP_IMUX5_1 INT_R_X9Y126.IMUX45.GFAN1 DSP_R_X9Y125.DSP_1_A24.DSP_IMUX45_1 INT_R_X9Y126.IMUX44.GFAN1 DSP_R_X9Y125.DSP_1_A26.DSP_IMUX44_1 INT_R_X9Y126.IMUX13.GFAN1 DSP_R_X9Y125.DSP_1_A6.DSP_IMUX13_1 INT_R_X9Y126.IMUX15.GFAN1 DSP_R_X9Y125.DSP_1_A4.DSP_IMUX15_1 INT_R_X9Y126.IMUX4.GFAN1 DSP_R_X9Y125.DSP_1_A27.DSP_IMUX4_1 INT_R_X9Y126.IMUX29.GFAN1 DSP_R_X9Y125.DSP_1_C6.DSP_IMUX29_1 INT_R_X9Y126.IMUX31.GFAN1 DSP_R_X9Y125.DSP_1_C4.DSP_IMUX31_1 INT_R_X9Y129.GFAN0.GND_WIRE INT_R_X9Y129.IMUX27.GFAN0 DSP_R_X9Y125.DSP_1_C17.DSP_IMUX27_4 INT_R_X9Y129.IMUX2.GFAN0 DSP_R_X9Y125.DSP_1_B17.DSP_IMUX2_4 INT_R_X9Y129.IMUX42.GFAN0 DSP_R_X9Y125.DSP_1_B16.DSP_IMUX42_4 INT_R_X9Y129.IMUX41.GFAN0 DSP_R_X9Y125.DSP_1_C19.DSP_IMUX41_4 INT_R_X9Y129.IMUX40.GFAN0 DSP_R_X9Y125.DSP_1_ALUMODE1.DSP_IMUX40_4 INT_R_X9Y129.IMUX0.GFAN0 DSP_R_X9Y125.DSP_1_ALUMODE0.DSP_IMUX0_4 INT_R_X9Y129.CTRL0.GFAN0 DSP_R_X9Y125.DSP_1_RSTP.DSP_CTRL0_4 INT_R_X9Y129.CTRL1.GFAN0 DSP_R_X9Y125.DSP_1_RSTB.DSP_CTRL1_4 INT_R_X9Y129.IMUX9.GFAN0 DSP_R_X9Y125.DSP_1_OPMODE5.DSP_IMUX9_4 INT_R_X9Y129.IMUX17.GFAN0 DSP_R_X9Y125.DSP_1_OPMODE4.DSP_IMUX17_4 INT_R_X9Y129.IMUX16.GFAN0 DSP_R_X9Y125.DSP_1_OPMODE3.DSP_IMUX16_4 INT_R_X9Y129.IMUX8.GFAN0 DSP_R_X9Y125.DSP_1_OPMODE1.DSP_IMUX8_4 INT_R_X9Y129.IMUX25.GFAN0 DSP_R_X9Y125.DSP_1_C47.DSP_IMUX25_4 INT_R_X9Y129.IMUX11.GFAN0 DSP_R_X9Y125.DSP_1_C46.DSP_IMUX11_4 INT_R_X9Y129.IMUX26.GFAN0 DSP_R_X9Y125.DSP_1_C44.DSP_IMUX26_4 INT_R_X9Y129.IMUX10.GFAN0 DSP_R_X9Y125.DSP_1_C39.DSP_IMUX10_4 INT_R_X9Y129.IMUX24.GFAN0 DSP_R_X9Y125.DSP_1_C37.DSP_IMUX24_4 INT_R_X9Y127.GFAN0.GND_WIRE INT_R_X9Y127.IMUX25.GFAN0 DSP_R_X9Y125.DSP_1_C11.DSP_IMUX25_2 INT_R_X9Y127.IMUX42.GFAN0 DSP_R_X9Y125.DSP_1_B9.DSP_IMUX42_2 INT_R_X9Y127.IMUX24.GFAN0 DSP_R_X9Y125.DSP_1_C31.DSP_IMUX24_2 INT_R_X9Y127.IMUX10.GFAN0 DSP_R_X9Y125.DSP_1_C29.DSP_IMUX10_2 INT_R_X9Y127.IMUX9.GFAN0 DSP_R_X9Y125.DSP_1_A11.DSP_IMUX9_2 INT_R_X9Y127.IMUX8.GFAN0 DSP_R_X9Y125.DSP_1_B11.DSP_IMUX8_2 INT_R_X9Y127.IMUX11.GFAN0 DSP_R_X9Y125.DSP_1_A9.DSP_IMUX11_2 INT_R_X9Y127.IMUX43.GFAN0 DSP_R_X9Y125.DSP_1_C9.DSP_IMUX43_2 INT_R_X9Y127.IMUX26.GFAN0 DSP_R_X9Y125.DSP_1_CEP.DSP_IMUX26_2 INT_R_X9Y128.GFAN0.GND_WIRE INT_R_X9Y128.IMUX25.GFAN0 DSP_R_X9Y125.DSP_1_C15.DSP_IMUX25_3 INT_R_X9Y128.IMUX27.GFAN0 DSP_R_X9Y125.DSP_1_C13.DSP_IMUX27_3 INT_R_X9Y128.IMUX0.GFAN0 DSP_R_X9Y125.DSP_1_B15.DSP_IMUX0_3 INT_R_X9Y128.IMUX24.GFAN0 DSP_R_X9Y125.DSP_1_C35.DSP_IMUX24_3 INT_R_X9Y128.IMUX10.GFAN0 DSP_R_X9Y125.DSP_1_C33.DSP_IMUX10_3 INT_R_X9Y128.IMUX40.GFAN0 DSP_R_X9Y125.DSP_1_B14.DSP_IMUX40_3 INT_R_X9Y128.IMUX1.GFAN0 DSP_R_X9Y125.DSP_1_B13.DSP_IMUX1_3 INT_R_X9Y128.IMUX41.GFAN0 DSP_R_X9Y125.DSP_1_B12.DSP_IMUX41_3 INT_R_X9Y128.CTRL1.GFAN0 DSP_R_X9Y125.DSP_1_RSTM.DSP_CTRL1_3 INT_R_X9Y128.CTRL0.GFAN0 DSP_R_X9Y125.DSP_1_RSTC.DSP_CTRL0_3 INT_R_X9Y128.IMUX19.GFAN0 DSP_R_X9Y125.DSP_1_CEM.DSP_IMUX19_3 INT_R_X9Y128.IMUX11.GFAN0 DSP_R_X9Y125.DSP_1_CECTRL.DSP_IMUX11_3 INT_R_X9Y128.IMUX26.GFAN0 DSP_R_X9Y125.DSP_1_CECARRYIN.DSP_IMUX26_3 INT_R_X9Y128.IMUX34.GFAN0 DSP_R_X9Y125.DSP_1_CEC.DSP_IMUX34_3 INT_R_X9Y128.IMUX16.GFAN0 DSP_R_X9Y125.DSP_1_CEB2.DSP_IMUX16_3 INT_R_X9Y128.IMUX8.GFAN0 DSP_R_X9Y125.DSP_1_CEB1.DSP_IMUX8_3 INT_R_X9Y128.IMUX9.GFAN0 DSP_R_X9Y125.DSP_1_CEA1.DSP_IMUX9_3 INT_R_X9Y129.GFAN1.GND_WIRE INT_R_X9Y129.IMUX13.GFAN1 DSP_R_X9Y125.DSP_1_C18.DSP_IMUX13_4 INT_R_X9Y129.IMUX31.GFAN1 DSP_R_X9Y125.DSP_1_C16.DSP_IMUX31_4 INT_R_X9Y129.IMUX4.GFAN1 DSP_R_X9Y125.DSP_1_A19.DSP_IMUX4_4 INT_R_X9Y129.IMUX5.GFAN1 DSP_R_X9Y125.DSP_1_A17.DSP_IMUX5_4 INT_R_X9Y129.IMUX45.GFAN1 DSP_R_X9Y125.DSP_1_A16.DSP_IMUX45_4 INT_R_X9Y129.IMUX44.GFAN1 DSP_R_X9Y125.DSP_1_A18.DSP_IMUX44_4 INT_R_X9Y129.IMUX30.GFAN1 DSP_R_X9Y125.DSP_1_C36.DSP_IMUX30_4 INT_R_X9Y129.IMUX23.GFAN1 DSP_R_X9Y125.DSP_1_RSTINMODE.DSP_IMUX23_4 INT_R_X9Y129.IMUX14.GFAN1 DSP_R_X9Y125.DSP_1_RSTCTRL.DSP_IMUX14_4 INT_R_X9Y129.IMUX22.GFAN1 DSP_R_X9Y125.DSP_1_RSTALUMODE.DSP_IMUX22_4 INT_R_X9Y129.IMUX15.GFAN1 DSP_R_X9Y125.DSP_1_RSTALLCARRYIN.DSP_IMUX15_4 INT_R_X9Y129.IMUX12.GFAN1 DSP_R_X9Y125.DSP_1_C38.DSP_IMUX12_4 INT_R_X9Y129.IMUX29.GFAN1 DSP_R_X9Y125.DSP_1_C45.DSP_IMUX29_4 INT_R_X9Y129.IMUX36.GFAN1 DSP_R_X9Y125.DSP_1_CARRYINSEL0.DSP_IMUX36_4 INT_R_X9Y129.IMUX28.GFAN1 DSP_R_X9Y125.DSP_1_CARRYINSEL1.DSP_IMUX28_4 DSP_R_X9Y125.DSP_1_ALUMODE3.DSP_GND_R DSP_R_X9Y125.DSP_1_ALUMODE2.DSP_GND_R DSP_R_X9Y125.DSP_1_D9.DSP_GND_R DSP_R_X9Y125.DSP_1_D8.DSP_GND_R DSP_R_X9Y125.DSP_1_D7.DSP_GND_R DSP_R_X9Y125.DSP_1_D6.DSP_GND_R DSP_R_X9Y125.DSP_1_D5.DSP_GND_R DSP_R_X9Y125.DSP_1_D4.DSP_GND_R DSP_R_X9Y125.DSP_1_D3.DSP_GND_R DSP_R_X9Y125.DSP_1_D24.DSP_GND_R DSP_R_X9Y125.DSP_1_D22.DSP_GND_R DSP_R_X9Y125.DSP_1_D21.DSP_GND_R DSP_R_X9Y125.DSP_1_D20.DSP_GND_R DSP_R_X9Y125.DSP_1_D2.DSP_GND_R DSP_R_X9Y125.DSP_1_D19.DSP_GND_R DSP_R_X9Y125.DSP_1_D18.DSP_GND_R DSP_R_X9Y125.DSP_1_D17.DSP_GND_R DSP_R_X9Y125.DSP_1_D16.DSP_GND_R DSP_R_X9Y125.DSP_1_D15.DSP_GND_R DSP_R_X9Y125.DSP_1_D23.DSP_GND_R DSP_R_X9Y125.DSP_1_RSTD.DSP_GND_R DSP_R_X9Y125.DSP_1_INMODE0.DSP_GND_R DSP_R_X9Y125.DSP_1_OPMODE6.DSP_GND_R DSP_R_X9Y125.DSP_1_INMODE4.DSP_GND_R DSP_R_X9Y125.DSP_1_INMODE3.DSP_GND_R DSP_R_X9Y125.DSP_1_INMODE1.DSP_GND_R DSP_R_X9Y125.DSP_1_D14.DSP_GND_R DSP_R_X9Y125.DSP_1_D13.DSP_GND_R DSP_R_X9Y125.DSP_1_D12.DSP_GND_R DSP_R_X9Y125.DSP_1_D11.DSP_GND_R DSP_R_X9Y125.DSP_1_D10.DSP_GND_R DSP_R_X9Y125.DSP_1_D1.DSP_GND_R DSP_R_X9Y125.DSP_1_CEINMODE.DSP_GND_R DSP_R_X9Y125.DSP_1_CEALUMODE.DSP_GND_R DSP_R_X9Y125.DSP_1_CARRYINSEL2.DSP_GND_R DSP_R_X9Y125.DSP_1_CED.DSP_GND_R CLBLL_L_X2Y103.CLBLL_LOGIC_OUTS12.CLBLL_LL_A INT_L_X2Y103.NE6BEG0.LOGIC_OUTS_L12 INT_L_X4Y107.EE2BEG0.NE6END0 INT_L_X6Y107.NE6BEG0.EE2END0 INT_L_X8Y111.NN2BEG0.NE6END0 INT_L_X8Y113.NN2BEG0.NN2END0 INT_L_X8Y115.NN2BEG0.NN2END0 INT_L_X8Y117.NN2BEG0.NN2END0 INT_L_X8Y119.NN6BEG0.NN2END0 INT_L_X8Y125.NR1BEG0.NN6END0 INT_L_X8Y126.EL1BEG_N3.NR1END0 INT_R_X9Y125.IMUX14.EL1END3 DSP_R_X9Y125.DSP_1_B0.DSP_IMUX14_0 CLBLM_R_X3Y108.CLBLM_LOGIC_OUTS8.CLBLM_L_A INT_R_X3Y108.EE4BEG0.LOGIC_OUTS8 INT_R_X7Y108.NN6BEG0.EE4END0 INT_R_X7Y114.NN6BEG0.NN6END0 INT_R_X7Y120.NE6BEG0.NN6END0 INT_R_X9Y124.NN2BEG0.NE6END0 INT_R_X9Y125.SR1BEG_S0.NN2END_S2_0 INT_R_X9Y125.IMUX26.SR1BEG_S0 DSP_R_X9Y125.DSP_1_B1.DSP_IMUX26_0 CLBLM_R_X3Y108.CLBLM_LOGIC_OUTS19.CLBLM_L_DMUX INT_R_X3Y108.EE4BEG1.LOGIC_OUTS19 INT_R_X7Y108.NN6BEG1.EE4END1 INT_R_X7Y114.NN6BEG1.NN6END1 INT_R_X7Y120.NE6BEG1.NN6END1 INT_R_X9Y124.NR1BEG1.NE6END1 INT_R_X9Y125.GFAN1.NR1END1 INT_R_X9Y125.IMUX28.GFAN1 DSP_R_X9Y125.DSP_1_B2.DSP_IMUX28_0 CLBLM_R_X3Y108.CLBLM_LOGIC_OUTS11.CLBLM_L_D INT_R_X3Y108.EE4BEG3.LOGIC_OUTS11 INT_R_X7Y108.NN6BEG3.EE4END3 INT_R_X7Y114.NN6BEG3.NN6END3 INT_R_X7Y120.NE6BEG3.NN6END3 INT_R_X9Y124.NL1BEG2.NE6END3 INT_R_X9Y125.FAN_ALT7.NL1END2 INT_R_X9Y125.FAN_BOUNCE7.FAN_ALT7 INT_R_X9Y125.IMUX0.FAN_BOUNCE7 DSP_R_X9Y125.DSP_1_B3.DSP_IMUX0_0 CLBLM_R_X3Y108.CLBLM_LOGIC_OUTS18.CLBLM_L_CMUX INT_R_X3Y108.NE6BEG0.LOGIC_OUTS18 INT_R_X5Y112.EE4BEG0.NE6END0 INT_R_X9Y112.NN6BEG0.EE4END0 INT_R_X9Y118.NN6BEG0.NN6END0 INT_R_X9Y124.NL1BEG_N3.NN6END0 INT_R_X9Y124.NN2BEG3.NL1BEG_N3 INT_R_X9Y126.IMUX30.NN2END3 DSP_R_X9Y125.DSP_1_B4.DSP_IMUX30_1 CLBLM_R_X3Y108.CLBLM_LOGIC_OUTS10.CLBLM_L_C INT_R_X3Y108.EE4BEG2.LOGIC_OUTS10 INT_R_X7Y108.NN6BEG2.EE4END2 INT_R_X7Y114.NN6BEG2.NN6END2 INT_R_X7Y120.NE6BEG2.NN6END2 INT_R_X9Y124.NR1BEG2.NE6END2 INT_R_X9Y125.NL1BEG1.NR1END2 INT_R_X9Y126.IMUX10.NL1END1 DSP_R_X9Y125.DSP_1_B5.DSP_IMUX10_1 INT_R_X9Y128.IMUX17.VCC_WIRE DSP_R_X9Y125.DSP_1_CEA2.DSP_IMUX17_3 INT_R_X9Y128.IMUX28.VCC_WIRE DSP_R_X9Y125.DSP_1_OPMODE0.DSP_IMUX28_3 INT_R_X9Y128.IMUX36.VCC_WIRE DSP_R_X9Y125.DSP_1_OPMODE2.DSP_IMUX36_3 INT_L_X0Y92.IMUX_L15.VCC_WIRE LIOI3_X0Y91.IOI_OLOGIC0_T1.IOI_IMUX15_1 INT_L_X0Y91.IMUX_L15.VCC_WIRE LIOI3_X0Y91.IOI_OLOGIC1_T1.IOI_IMUX15_0 INT_L_X0Y88.IMUX_L15.VCC_WIRE LIOI3_TBYTETERM_X0Y87.IOI_OLOGIC0_T1.IOI_IMUX15_1 INT_L_X0Y87.IMUX_L15.VCC_WIRE LIOI3_TBYTETERM_X0Y87.IOI_OLOGIC1_T1.IOI_IMUX15_0 INT_L_X0Y13.IMUX_L15.VCC_WIRE LIOI3_TBYTETERM_X0Y13.IOI_OLOGIC1_T1.IOI_IMUX15_0 INT_L_X0Y14.IMUX_L15.VCC_WIRE LIOI3_TBYTETERM_X0Y13.IOI_OLOGIC0_T1.IOI_IMUX15_1 INT_L_X0Y29.IMUX_L15.VCC_WIRE LIOI3_X0Y29.IOI_OLOGIC1_T1.IOI_IMUX15_0 INT_L_X0Y30.IMUX_L15.VCC_WIRE LIOI3_X0Y29.IOI_OLOGIC0_T1.IOI_IMUX15_1 INT_L_X0Y21.IMUX_L15.VCC_WIRE LIOI3_X0Y21.IOI_OLOGIC1_T1.IOI_IMUX15_0 INT_L_X0Y22.IMUX_L15.VCC_WIRE LIOI3_X0Y21.IOI_OLOGIC0_T1.IOI_IMUX15_1 DSP_R_X9Y125.DSP_1_CEAD.DSP_VCC_R DSP_R_X9Y125.DSP_1_D0.DSP_VCC_R DSP_R_X9Y125.DSP_1_INMODE2.DSP_VCC_R DSP_R_X9Y125.DSP_LOGIC_OUTS_B3_0.DSP_1_P0 INT_INTERFACE_R_X9Y125.INT_INTERFACE_LOGIC_OUTS3.INT_INTERFACE_LOGIC_OUTS_B3 INT_R_X9Y125.SS6BEG3.LOGIC_OUTS3 INT_R_X9Y119.SS6BEG3.SS6END3 INT_R_X9Y113.WL1BEG2.SS6END3 INT_L_X8Y113.WW2BEG2.WL1END2 INT_L_X6Y113.WW2BEG2.WW2END2 INT_L_X4Y113.SS6BEG2.WW2END2 INT_L_X4Y107.WL1BEG1.SS6END2 INT_R_X3Y107.NL1BEG1.WL1END1 INT_R_X3Y108.IMUX25.NL1END1 CLBLM_R_X3Y108.CLBLM_L_B5.CLBLM_IMUX25 DSP_R_X9Y125.DSP_LOGIC_OUTS_B1_0.DSP_1_P1 INT_INTERFACE_R_X9Y125.INT_INTERFACE_LOGIC_OUTS1.INT_INTERFACE_LOGIC_OUTS_B1 INT_R_X9Y125.SS6BEG1.LOGIC_OUTS1 INT_R_X9Y119.SS6BEG1.SS6END1 INT_R_X9Y113.WW4BEG2.SS6END1 INT_R_X5Y113.SS2BEG1.WW4END2 INT_R_X5Y111.SL1BEG1.SS2END1 INT_R_X5Y110.SS2BEG1.SL1END1 INT_R_X5Y108.WW2BEG1.SS2END1 INT_R_X3Y108.IMUX19.WW2END1 CLBLM_R_X3Y108.CLBLM_L_B2.CLBLM_IMUX19 DSP_R_X9Y125.DSP_LOGIC_OUTS_B6_0.DSP_1_P2 INT_INTERFACE_R_X9Y125.INT_INTERFACE_LOGIC_OUTS6.INT_INTERFACE_LOGIC_OUTS_B6 INT_R_X9Y125.SS6BEG2.LOGIC_OUTS6 INT_R_X9Y119.SS6BEG2.SS6END2 INT_R_X9Y113.WW4BEG3.SS6END2 INT_R_X5Y113.SW6BEG2.WW4END3 INT_R_X3Y109.SR1BEG3.SW6END2 INT_R_X3Y108.SR1BEG_S0.SR1END3 INT_R_X3Y108.IMUX9.SR1BEG_S0 CLBLM_R_X3Y108.CLBLM_L_A5.CLBLM_IMUX9 DSP_R_X9Y125.DSP_LOGIC_OUTS_B4_0.DSP_1_P3 INT_INTERFACE_R_X9Y125.INT_INTERFACE_LOGIC_OUTS4.INT_INTERFACE_LOGIC_OUTS_B4 INT_R_X9Y125.SS6BEG0.LOGIC_OUTS4 INT_R_X9Y119.SS6BEG0.SS6END0 INT_R_X9Y113.SS6BEG0.SS6END0 INT_R_X9Y107.SS2BEG0.SS6END0 INT_R_X9Y105.WW2BEG0.SS2END0 INT_R_X7Y105.WW4BEG1.WW2END0 INT_R_X3Y105.SS2BEG0.WW4END1 INT_R_X3Y103.WL1BEG_N3.SS2END0 INT_L_X2Y103.NL1BEG_N3.WL1END_N1_3 INT_L_X2Y103.IMUX_L45.NL1BEG_N3 CLBLL_L_X2Y103.CLBLL_LL_D2.CLBLL_IMUX45 DSP_R_X9Y125.DSP_LOGIC_OUTS_B3_1.DSP_1_P4 INT_INTERFACE_R_X9Y126.INT_INTERFACE_LOGIC_OUTS3.INT_INTERFACE_LOGIC_OUTS_B3 INT_R_X9Y126.SS6BEG3.LOGIC_OUTS3 INT_R_X9Y120.SS6BEG3.SS6END3 INT_R_X9Y114.SS6BEG3.SS6END3 INT_R_X9Y108.SS6BEG3.SS6END3 INT_R_X9Y103.WW4BEG0.SS6END_N0_3 INT_R_X5Y102.WW2BEG3.WW4END_S0_0 INT_R_X3Y102.WL1BEG2.WW2END3 INT_L_X2Y102.NL1BEG2.WL1END2 INT_L_X2Y103.IMUX_L44.NL1END2 CLBLL_L_X2Y103.CLBLL_LL_D4.CLBLL_IMUX44 DSP_R_X9Y125.DSP_LOGIC_OUTS_B1_1.DSP_1_P5 INT_INTERFACE_R_X9Y126.INT_INTERFACE_LOGIC_OUTS1.INT_INTERFACE_LOGIC_OUTS_B1 INT_R_X9Y126.SS6BEG1.LOGIC_OUTS1 INT_R_X9Y120.SS6BEG1.SS6END1 INT_R_X9Y114.SS6BEG1.SS6END1 INT_R_X9Y108.SS2BEG1.SS6END1 INT_R_X9Y106.SS2BEG1.SS2END1 INT_R_X9Y104.WW4BEG2.SS2END1 INT_R_X5Y104.WW2BEG1.WW4END2 INT_R_X3Y104.WR1BEG3.WW2END1 INT_L_X2Y104.SR1BEG3.WR1END3 INT_L_X2Y103.IMUX_L31.SR1END3 CLBLL_L_X2Y103.CLBLL_LL_C5.CLBLL_IMUX31 DSP_R_X9Y125.DSP_LOGIC_OUTS_B6_1.DSP_1_P6 INT_INTERFACE_R_X9Y126.INT_INTERFACE_LOGIC_OUTS6.INT_INTERFACE_LOGIC_OUTS_B6 INT_R_X9Y126.SS6BEG2.LOGIC_OUTS6 INT_R_X9Y120.SS6BEG2.SS6END2 INT_R_X9Y114.SS6BEG2.SS6END2 INT_R_X9Y108.SS2BEG2.SS6END2 INT_R_X9Y106.SS2BEG2.SS2END2 INT_R_X9Y104.WW4BEG3.SS2END2 INT_R_X5Y104.WW2BEG2.WW4END3 INT_R_X3Y104.SR1BEG3.WW2END2 INT_R_X3Y103.WL1BEG2.SR1END3 INT_L_X2Y103.IMUX_L28.WL1END2 CLBLL_L_X2Y103.CLBLL_LL_C4.CLBLL_IMUX28 DSP_R_X9Y125.DSP_LOGIC_OUTS_B4_1.DSP_1_P7 INT_INTERFACE_R_X9Y126.INT_INTERFACE_LOGIC_OUTS4.INT_INTERFACE_LOGIC_OUTS_B4 INT_R_X9Y126.SS6BEG0.LOGIC_OUTS4 INT_R_X9Y120.SS6BEG0.SS6END0 INT_R_X9Y114.SS6BEG0.SS6END0 INT_R_X9Y108.SS2BEG0.SS6END0 INT_R_X9Y106.SS2BEG0.SS2END0 INT_R_X9Y104.WW4BEG1.SS2END0 INT_R_X5Y104.WW2BEG0.WW4END1 INT_R_X3Y104.SR1BEG1.WW2END0 INT_R_X3Y103.WL1BEG0.SR1END1 INT_L_X2Y103.IMUX_L24.WL1END0 CLBLL_L_X2Y103.CLBLL_LL_B5.CLBLL_IMUX24 DSP_R_X9Y125.DSP_LOGIC_OUTS_B3_2.DSP_1_P8 INT_INTERFACE_R_X9Y127.INT_INTERFACE_LOGIC_OUTS3.INT_INTERFACE_LOGIC_OUTS_B3 INT_R_X9Y127.SS6BEG3.LOGIC_OUTS3 INT_R_X9Y122.WW4BEG0.SS6END_N0_3 INT_R_X5Y121.SS6BEG3.WW4END_S0_0 INT_R_X5Y115.SS6BEG3.SS6END3 INT_R_X5Y109.SS6BEG3.SS6END3 INT_R_X5Y103.WL1BEG2.SS6END3 INT_L_X4Y103.WW2BEG2.WL1END2 INT_L_X2Y103.FAN_ALT1.WW2END2 INT_L_X2Y103.FAN_BOUNCE1.FAN_ALT1 INT_L_X2Y103.IMUX_L18.FAN_BOUNCE1 CLBLL_L_X2Y103.CLBLL_LL_B2.CLBLL_IMUX18 DSP_R_X9Y125.DSP_LOGIC_OUTS_B1_2.DSP_1_P9 INT_INTERFACE_R_X9Y127.INT_INTERFACE_LOGIC_OUTS1.INT_INTERFACE_LOGIC_OUTS_B1 INT_R_X9Y127.SS6BEG1.LOGIC_OUTS1 INT_R_X9Y121.SS6BEG1.SS6END1 INT_R_X9Y115.SS6BEG1.SS6END1 INT_R_X9Y109.SS6BEG1.SS6END1 INT_R_X9Y103.WW4BEG2.SS6END1 INT_R_X5Y103.WW2BEG1.WW4END2 INT_R_X3Y103.WR1BEG3.WW2END1 INT_L_X2Y103.SR1BEG3.WR1END3 INT_L_X2Y103.IMUX_L8.SR1END_N3_3 CLBLL_L_X2Y103.CLBLL_LL_A5.CLBLL_IMUX8 LIOI3_X0Y23.IOI_LOGIC_OUTS18_1.IOI_ILOGIC0_O IO_INT_INTERFACE_L_X0Y24.INT_INTERFACE_LOGIC_OUTS_L18.INT_INTERFACE_LOGIC_OUTS_L_B18 INT_L_X0Y24.NE6BEG0.LOGIC_OUTS_L18 INT_L_X2Y28.NE6BEG0.NE6END0 INT_L_X4Y32.NN6BEG0.NE6END0 INT_L_X4Y38.LV_L0.NN6END0 INT_L_X4Y56.LV_L0.LV_L18 INT_L_X4Y74.LV_L0.LV_L18 INT_L_X4Y92.LV_L0.LV_L18 INT_L_X4Y110.LV_L0.LV_L18 INT_L_X4Y128.EE4BEG3.LV_L18 INT_L_X8Y128.EL1BEG2.EE4END3 INT_R_X9Y128.FAN_ALT5.EL1END2 INT_R_X9Y128.FAN_BOUNCE5.FAN_ALT5 INT_R_X9Y128.CLK0.FAN_BOUNCE5 DSP_R_X9Y125.DSP_1_CLK.DSP_CLK0_3 CLBLM_R_X3Y108.CLBLM_LOGIC_OUTS17.CLBLM_L_BMUX INT_R_X3Y108.SS6BEG3.LOGIC_OUTS17 INT_R_X3Y102.SS6BEG3.SS6END3 INT_R_X3Y96.WW2BEG3.SS6END3 INT_R_X1Y96.SS2BEG3.WW2END3 INT_R_X1Y94.SS2BEG3.SS2END3 INT_R_X1Y92.WL1BEG2.SS2END3 INT_L_X0Y92.WL1BEG1.WL1END2 INT_L_X0Y92.IMUX_L34.EL1END1 LIOI3_X0Y91.IOI_OLOGIC0_D1.IOI_IMUX34_1 CLBLM_R_X3Y108.CLBLM_LOGIC_OUTS9.CLBLM_L_B INT_R_X3Y108.SS6BEG1.LOGIC_OUTS9 INT_R_X3Y102.SS6BEG1.SS6END1 INT_R_X3Y96.WW2BEG1.SS6END1 INT_R_X1Y96.WL1BEG0.WW2END1 INT_L_X0Y96.SR1BEG1.WL1END0 INT_L_X0Y95.SS2BEG1.SR1END1 INT_L_X0Y93.SS2BEG1.SS2END1 INT_L_X0Y91.IMUX_L34.SS2END1 LIOI3_X0Y91.IOI_OLOGIC1_D1.IOI_IMUX34_0 CLBLM_R_X3Y108.CLBLM_LOGIC_OUTS16.CLBLM_L_AMUX INT_R_X3Y108.SS6BEG2.LOGIC_OUTS16 INT_R_X3Y102.SS6BEG2.SS6END2 INT_R_X3Y96.SS6BEG2.SS6END2 INT_R_X3Y90.WW2BEG2.SS6END2 INT_R_X1Y90.SS2BEG2.WW2END2 INT_R_X1Y88.WL1BEG1.SS2END2 INT_L_X0Y88.IMUX_L34.WL1END1 LIOI3_TBYTETERM_X0Y87.IOI_OLOGIC0_D1.IOI_IMUX34_1 CLBLL_L_X2Y103.CLBLL_LOGIC_OUTS23.CLBLL_LL_DMUX INT_L_X2Y103.SS6BEG1.LOGIC_OUTS_L23 INT_L_X2Y97.SS6BEG1.SS6END1 INT_L_X2Y91.WW2BEG1.SS6END1 INT_L_X0Y91.SS2BEG1.WW2END1 INT_L_X0Y89.SS2BEG1.SS2END1 INT_L_X0Y87.IMUX_L34.SS2END1 LIOI3_TBYTETERM_X0Y87.IOI_OLOGIC1_D1.IOI_IMUX34_0 CLBLL_L_X2Y103.CLBLL_LOGIC_OUTS15.CLBLL_LL_D INT_L_X2Y103.SS6BEG3.LOGIC_OUTS_L15 INT_L_X2Y97.WL1BEG2.SS6END3 INT_R_X1Y97.WL1BEG1.WL1END2 INT_L_X0Y97.SR1BEG2.WL1END1 INT_L_X0Y96.SS2BEG2.SR1END2 INT_L_X0Y94.SS6BEG2.SS2END2 INT_L_X0Y88.SS6BEG2.SS6END2 INT_L_X0Y82.NR1BEG2.SS6END2 INT_L_X0Y83.NL1BEG1.NR1END2 INT_L_X0Y84.NL1BEG0.NL1END1 INT_L_X0Y85.NR1BEG0.NL1END0 INT_L_X0Y86.LV_L18.NR1END0 INT_L_X0Y68.SS6BEG0.LV_L0 INT_L_X0Y62.SS6BEG0.SS6END0 INT_L_X0Y56.SL1BEG0.SS6END0 INT_L_X0Y55.SS2BEG0.SL1END0 INT_L_X0Y53.SS6BEG0.SS2END0 INT_L_X0Y47.SS6BEG0.SS6END0 INT_L_X0Y41.SS6BEG0.SS6END0 INT_L_X0Y35.SS2BEG0.SS6END0 INT_L_X0Y33.SS2BEG0.SS2END0 INT_L_X0Y31.SS6BEG0.SS2END0 INT_L_X0Y25.SS6BEG0.SS6END0 INT_L_X0Y19.SS6BEG0.SS6END0 INT_L_X0Y13.WW2BEG0.SS6END0 INT_R_X1Y13.WR1BEG1.EE2END0 INT_L_X0Y13.IMUX_L34.WR1END1 LIOI3_TBYTETERM_X0Y13.IOI_OLOGIC1_D1.IOI_IMUX34_0 CLBLL_L_X2Y103.CLBLL_LOGIC_OUTS22.CLBLL_LL_CMUX INT_L_X2Y103.SS6BEG0.LOGIC_OUTS_L22 INT_L_X2Y97.SS6BEG0.SS6END0 INT_L_X2Y91.SS6BEG0.SS6END0 INT_L_X2Y85.WL1BEG_N3.SS6END0 INT_R_X1Y84.WL1BEG2.WL1END3 INT_L_X0Y84.NN2BEG3.WL1END2 INT_L_X0Y86.SR1BEG3.NN2END3 INT_L_X0Y85.SL1BEG3.SR1END3 INT_L_X0Y84.SS2BEG3.SL1END3 INT_L_X0Y82.NR1BEG3.SS2END3 INT_L_X0Y83.LVB_L12.NR1END3 INT_L_X0Y71.SS6BEG2.LVB_L0 INT_L_X0Y65.SS6BEG2.SS6END2 INT_L_X0Y59.SS2BEG2.SS6END2 INT_L_X0Y57.SL1BEG2.SS2END2 INT_L_X0Y56.SS2BEG2.SL1END2 INT_L_X0Y54.SS6BEG2.SS2END2 INT_L_X0Y48.SS6BEG2.SS6END2 INT_L_X0Y42.SS6BEG2.SS6END2 INT_L_X0Y36.SS2BEG2.SS6END2 INT_L_X0Y34.SS2BEG2.SS2END2 INT_L_X0Y32.SS6BEG2.SS2END2 INT_L_X0Y26.SS6BEG2.SS6END2 INT_L_X0Y20.SS6BEG2.SS6END2 INT_L_X0Y14.WL1BEG1.SS6END2 INT_L_X0Y14.IMUX_L34.EL1END1 LIOI3_TBYTETERM_X0Y13.IOI_OLOGIC0_D1.IOI_IMUX34_1 CLBLL_L_X2Y103.CLBLL_LOGIC_OUTS14.CLBLL_LL_C INT_L_X2Y103.SS6BEG2.LOGIC_OUTS_L14 INT_L_X2Y97.WL1BEG1.SS6END2 INT_R_X1Y97.WL1BEG0.WL1END1 INT_L_X0Y97.NL1BEG0.WL1END0 INT_L_X0Y98.NR1BEG0.NL1END0 INT_L_X0Y99.LV_L18.NR1END0 INT_L_X0Y81.SS6BEG0.LV_L0 INT_L_X0Y75.SS2BEG0.SS6END0 INT_L_X0Y73.SS6BEG0.SS2END0 INT_L_X0Y67.SR1BEG1.SS6END0 INT_L_X0Y66.SS2BEG1.SR1END1 INT_L_X0Y64.SS6BEG1.SS2END1 INT_L_X0Y58.SS6BEG1.SS6END1 INT_L_X0Y52.SS6BEG1.SS6END1 INT_L_X0Y46.SS6BEG1.SS6END1 INT_L_X0Y40.SS2BEG1.SS6END1 INT_L_X0Y38.SS2BEG1.SS2END1 INT_L_X0Y36.SS6BEG1.SS2END1 INT_L_X0Y30.SL1BEG1.SS6END1 INT_L_X0Y29.IMUX_L34.SL1END1 LIOI3_X0Y29.IOI_OLOGIC1_D1.IOI_IMUX34_0 CLBLL_L_X2Y103.CLBLL_LOGIC_OUTS21.CLBLL_LL_BMUX INT_L_X2Y103.WL1BEG2.LOGIC_OUTS_L21 INT_R_X1Y103.WL1BEG1.WL1END2 INT_L_X0Y103.NN2BEG2.WL1END1 INT_L_X0Y105.NN2BEG2.NN2END2 INT_L_X0Y107.SR1BEG2.NN2END2 INT_L_X0Y106.SR1BEG3.SR1END2 INT_L_X0Y105.SS2BEG3.SR1END3 INT_L_X0Y103.SS6BEG3.SS2END3 INT_L_X0Y97.NR1BEG3.SS6END3 INT_L_X0Y98.LVB_L12.NR1END3 INT_L_X0Y86.LVB_L12.LVB_L0 INT_L_X0Y74.SS6BEG2.LVB_L0 INT_L_X0Y68.SR1BEG3.SS6END2 INT_L_X0Y67.SS2BEG3.SR1END3 INT_L_X0Y65.SS6BEG3.SS2END3 INT_L_X0Y59.SS6BEG3.SS6END3 INT_L_X0Y53.SS6BEG3.SS6END3 INT_L_X0Y47.SS6BEG3.SS6END3 INT_L_X0Y41.SS6BEG3.SS6END3 INT_L_X0Y35.SS6BEG3.SS6END3 INT_L_X0Y29.NR1BEG3.SS6END3 INT_L_X0Y30.FAN_ALT1.NR1END3 INT_L_X0Y30.FAN_BOUNCE1.FAN_ALT1 INT_L_X0Y30.IMUX_L34.FAN_BOUNCE1 LIOI3_X0Y29.IOI_OLOGIC0_D1.IOI_IMUX34_1 CLBLL_L_X2Y103.CLBLL_LOGIC_OUTS13.CLBLL_LL_B INT_L_X2Y103.WL1BEG0.LOGIC_OUTS_L13 INT_R_X1Y103.SR1BEG1.WL1END0 INT_R_X1Y102.SL1BEG1.SR1END1 INT_R_X1Y101.SS2BEG1.SL1END1 INT_R_X1Y99.SS6BEG1.SS2END1 INT_R_X1Y93.SS2BEG1.SS6END1 INT_R_X1Y91.WL1BEG0.SS2END1 INT_L_X0Y91.NL1BEG0.WL1END0 INT_L_X0Y92.NR1BEG0.NL1END0 INT_L_X0Y93.LV_L18.NR1END0 INT_L_X0Y75.SS6BEG0.LV_L0 INT_L_X0Y69.SS6BEG0.SS6END0 INT_L_X0Y63.SS6BEG0.SS6END0 INT_L_X0Y57.SS2BEG0.SS6END0 INT_L_X0Y55.SS6BEG0.SS2END0 INT_L_X0Y49.SS6BEG0.SS6END0 INT_L_X0Y43.SS2BEG0.SS6END0 INT_L_X0Y41.SS2BEG0.SS2END0 INT_L_X0Y39.SS6BEG0.SS2END0 INT_L_X0Y33.SS6BEG0.SS6END0 INT_L_X0Y27.SS6BEG0.SS6END0 INT_L_X0Y21.WW2BEG0.SS6END0 INT_R_X1Y21.WR1BEG1.EE2END0 INT_L_X0Y21.IMUX_L34.WR1END1 LIOI3_X0Y21.IOI_OLOGIC1_D1.IOI_IMUX34_0 CLBLL_L_X2Y103.CLBLL_LOGIC_OUTS20.CLBLL_LL_AMUX INT_L_X2Y103.WL1BEG1.LOGIC_OUTS_L20 INT_R_X1Y103.WL1BEG0.WL1END1 INT_L_X0Y103.SR1BEG1.WL1END0 INT_L_X0Y102.SL1BEG1.SR1END1 INT_L_X0Y101.SS2BEG1.SL1END1 INT_L_X0Y99.SS2BEG1.SS2END1 INT_L_X0Y97.SS6BEG1.SS2END1 INT_L_X0Y91.NR1BEG1.SS6END1 INT_L_X0Y92.NL1BEG0.NR1END1 INT_L_X0Y93.NR1BEG0.NL1END0 INT_L_X0Y94.LV_L18.NR1END0 INT_L_X0Y76.SS6BEG0.LV_L0 INT_L_X0Y70.SS6BEG0.SS6END0 INT_L_X0Y64.SS6BEG0.SS6END0 INT_L_X0Y58.SS2BEG0.SS6END0 INT_L_X0Y56.SS6BEG0.SS2END0 INT_L_X0Y50.SS6BEG0.SS6END0 INT_L_X0Y44.SS2BEG0.SS6END0 INT_L_X0Y42.SS2BEG0.SS2END0 INT_L_X0Y40.SS6BEG0.SS2END0 INT_L_X0Y34.SS6BEG0.SS6END0 INT_L_X0Y28.SS6BEG0.SS6END0 INT_L_X0Y22.WW2BEG0.SS6END0 INT_R_X1Y22.WR1BEG1.EE2END0 INT_L_X0Y22.IMUX_L34.WR1END1 LIOI3_X0Y21.IOI_OLOGIC0_D1.IOI_IMUX34_1 LIOI3_X0Y73.IOI_LOGIC_OUTS18_1.IOI_ILOGIC0_O IO_INT_INTERFACE_L_X0Y74.INT_INTERFACE_LOGIC_OUTS_L18.INT_INTERFACE_LOGIC_OUTS_L_B18 INT_L_X0Y74.NE6BEG0.LOGIC_OUTS_L18 INT_L_X2Y78.NN6BEG0.NE6END0 INT_L_X2Y84.LV_L0.NN6END0 INT_L_X2Y93.NN6BEG1.LV_L9 INT_L_X2Y99.NN2BEG1.NN6END1 INT_L_X2Y101.NN2BEG1.NN2END1 INT_L_X2Y103.IMUX_L2.NN2END1 CLBLL_L_X2Y103.CLBLL_LL_A2.CLBLL_IMUX2 LIOI3_X0Y73.IOI_LOGIC_OUTS18_0.IOI_ILOGIC1_O IO_INT_INTERFACE_L_X0Y73.INT_INTERFACE_LOGIC_OUTS_L18.INT_INTERFACE_LOGIC_OUTS_L_B18 INT_L_X0Y73.NE6BEG0.LOGIC_OUTS_L18 INT_L_X2Y77.NN6BEG0.NE6END0 INT_L_X2Y83.LV_L0.NN6END0 INT_L_X2Y101.NN6BEG3.LV_L18 INT_L_X2Y107.NL1BEG2.NN6END3 INT_L_X2Y108.EL1BEG1.NL1END2 INT_R_X3Y108.IMUX3.EL1END1 CLBLM_R_X3Y108.CLBLM_L_A2.CLBLM_IMUX3 LIOI3_X0Y3.IOI_LOGIC_OUTS18_1.IOI_ILOGIC0_O IO_INT_INTERFACE_L_X0Y4.INT_INTERFACE_LOGIC_OUTS_L18.INT_INTERFACE_LOGIC_OUTS_L_B18 INT_L_X0Y4.NE6BEG0.LOGIC_OUTS_L18 INT_L_X2Y8.NN6BEG0.NE6END0 INT_L_X2Y14.LV_L0.NN6END0 INT_L_X2Y32.LV_L0.LV_L18 INT_L_X2Y50.LV_L0.LV_L18 INT_L_X2Y68.LV_L0.LV_L18 INT_L_X2Y86.LV_L0.LV_L18 INT_L_X2Y104.NN6BEG3.LV_L18 INT_L_X2Y110.EL1BEG2.NN6END3 INT_R_X3Y110.SS2BEG2.EL1END2 INT_R_X3Y108.IMUX36.SS2END2 CLBLM_R_X3Y108.CLBLM_L_D2.CLBLM_IMUX36 LIOI3_X0Y5.IOI_LOGIC_OUTS18_1.IOI_ILOGIC0_O IO_INT_INTERFACE_L_X0Y6.INT_INTERFACE_LOGIC_OUTS_L18.INT_INTERFACE_LOGIC_OUTS_L_B18 INT_L_X0Y6.NW6BEG0.LOGIC_OUTS_L18 INT_R_X1Y10.NE6BEG0.NE6END0 INT_R_X3Y14.NN6BEG0.NE6END0 INT_R_X3Y20.LV0.NN6END0 INT_R_X3Y38.LV0.LV18 INT_R_X3Y56.LV0.LV18 INT_R_X3Y74.LV0.LV18 INT_R_X3Y92.LV0.LV18 INT_R_X3Y101.NN6BEG1.LV9 INT_R_X3Y107.NR1BEG1.NN6END1 INT_R_X3Y108.GFAN1.NR1END1 INT_R_X3Y108.IMUX37.GFAN1 CLBLM_R_X3Y108.CLBLM_L_D4.CLBLM_IMUX37 LIOI3_X0Y27.IOI_LOGIC_OUTS18_0.IOI_ILOGIC1_O IO_INT_INTERFACE_L_X0Y27.INT_INTERFACE_LOGIC_OUTS_L18.INT_INTERFACE_LOGIC_OUTS_L_B18 INT_L_X0Y27.NW6BEG0.LOGIC_OUTS_L18 INT_R_X1Y31.NE6BEG0.NE6END0 INT_R_X3Y35.NN6BEG0.NE6END0 INT_R_X3Y41.LV0.NN6END0 INT_R_X3Y59.LV0.LV18 INT_R_X3Y77.LV0.LV18 INT_R_X3Y95.NN6BEG3.LV18 INT_R_X3Y101.NN6BEG3.NN6END3 INT_R_X3Y107.NR1BEG3.NN6END3 INT_R_X3Y108.IMUX30.NR1END3 CLBLM_R_X3Y108.CLBLM_L_C5.CLBLM_IMUX30 LIOI3_X0Y27.IOI_LOGIC_OUTS18_1.IOI_ILOGIC0_O IO_INT_INTERFACE_L_X0Y28.INT_INTERFACE_LOGIC_OUTS_L18.INT_INTERFACE_LOGIC_OUTS_L_B18 INT_L_X0Y28.NE6BEG0.LOGIC_OUTS_L18 INT_L_X2Y32.NN6BEG0.NE6END0 INT_L_X2Y38.LV_L0.NN6END0 INT_L_X2Y56.LV_L0.LV_L18 INT_L_X2Y74.LV_L0.LV_L18 INT_L_X2Y92.LV_L0.LV_L18 INT_L_X2Y101.NN6BEG1.LV_L9 INT_L_X2Y107.NL1BEG0.NN6END1 INT_L_X2Y108.NL1BEG_N3.NL1END0 INT_L_X2Y108.EL1BEG2.NL1BEG_N3 INT_R_X3Y108.IMUX21.EL1END2 CLBLM_R_X3Y108.CLBLM_L_C4.CLBLM_IMUX21

prevent using LUT6_2?

Is it possible to not have LUT6_2 in the reversed netlist after using fasm2bels, insted generate the netlist using LUT5 and LUT6?
Thanks!

Assertion error with F4PGA-produced .fasm

I get the following error when trying to run fasm2bels with the design I wanted to debug (that was successfully built with F4PGA):

(symbiflow_xc_fasm2bels) wkuna@Terassen:~/bigboy/F4PGA/f4pga-xc-fasm2bels$ python -mfasm2bels --connection_database ../f4pga-arch-defs/build/xc/xc7/archs/zynq7_z020/channels/xc7z020clg484-1/channels.db  --db_root ../prjxray-db/zynq7/ --part xc7z020clg484-1 --rr_graph ../../../opt/f4pga/xc7/install/share/symbiflow/arch/xc7z020_test/rr_graph_xc7z020_test.rr_graph.real.bin  --vpr_grid_map ../../../opt/f4pga/xc7/install/share/symbiflow/arch/xc7z020_test/vpr_grid_map.csv --fasm_file ../../../fpga-isp/litex/build/zynq_video_board/gateware/zynq_video_board.fasm 
Traceback (most recent call last):
  File "/home/wkuna/bigboy/F4PGA/f4pga-xc-fasm2bels/env/conda/envs/symbiflow_xc_fasm2bels/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/wkuna/bigboy/F4PGA/f4pga-xc-fasm2bels/env/conda/envs/symbiflow_xc_fasm2bels/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/wkuna/bigboy/F4PGA/f4pga-xc-fasm2bels/fasm2bels/__main__.py", line 15, in <module>
    main()
  File "/home/wkuna/bigboy/F4PGA/f4pga-xc-fasm2bels/fasm2bels/fasm2bels.py", line 475, in main
    process_tile(top, tile, tile_features)
  File "/home/wkuna/bigboy/F4PGA/f4pga-xc-fasm2bels/fasm2bels/fasm2bels.py", line 139, in process_tile
    PROCESS_TILE[tile_type](top.conn, top, tile, tile_features)
  File "/home/wkuna/bigboy/F4PGA/f4pga-xc-fasm2bels/fasm2bels/models/clb_models.py", line 2079, in process_clb
    process_slice(top, slices[s])
  File "/home/wkuna/bigboy/F4PGA/f4pga-xc-fasm2bels/fasm2bels/models/clb_models.py", line 1840, in process_slice
    assert False, site.features
AssertionError: {'ALUT.INIT', 'AOUTMUX.O5', 'COUTMUX.O5', 'CLUT.INIT'}

The rr_graph, connection_database, vpr_grid_map were from the f4pga-arch-defs build at commit 7d521273b82a0 the prjxray-bd at commit 0a0addedd73e7.

I include fasm file that was generated via F4PGA with LiteX zynq_video_board.fasm.log

Assertion error on Symbiflow-produced `.fasm` file

The attached Top.fasm file was created from https://github.com/gergoerdi/symbiflow-sevensegment-bug/tree/e73584b7b35e8cfa7d0f2a21f1fd7f60285d7bd9 as input. fasm2bels version 6630e43 fails to process it with an assertion error:

$ python3 -m fasm2bels --fasm_file _build/Top.fasm --db_root ~/.conda/envs/xc7/share/symbiflow/prjxray-db/artix7/  --part xc7a50tcsg324-1 --connection_database ~/prog/fpga/symbiflow/symbiflow-xc-fasm2bels/channels.s3db 

Traceback (most recent call last):
  File "runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "fasm2bels-0.0.1-py3.7.egg/fasm2bels/__main__.py", line 15, in <module>
    main()
  File "fasm2bels-0.0.1-py3.7.egg/fasm2bels/fasm2bels.py", line 475, in main
    process_tile(top, tile, tile_features)
  File "fasm2bels-0.0.1-py3.7.egg/fasm2bels/fasm2bels.py", line 139, in process_tile
    PROCESS_TILE[tile_type](top.conn, top, tile, tile_features)
  File "fasm2bels-0.0.1-py3.7.egg/fasm2bels/models/clb_models.py", line 2079, in process_clb
    process_slice(top, slices[s])
  File "fasm2bels-0.0.1-py3.7.egg/fasm2bels/models/clb_models.py", line 1840, in process_slice
    assert False
AssertionError

Running bug?

For analysis of a7_100t's fasm,I use the command as this:
**/root/Desktop/symbiflow/symbiflow-arch-defs/env/conda/envs/symbiflow_arch_def_base/bin/python3 -mfasm2bels --db_root /root/Desktop/symbiflow/symbiflow-arch-defs/env/conda/envs/symbiflow_arch_def_base/share/symbiflow/prjxray-db/artix7 --connection_database /root/Desktop/fasm2bels/devices/xc7a100t-virt/channels.db --fasm_file /root/Desktop/fasm2bels/artix7_100t-xc7a100t-virt-xc7a100t-test/top.fasm --verilog_file /root/Desktop/fasm2bels/test.v --part xc7a100tcsg324-1 --vpr_grid_map /root/Desktop/fasm2bels/devices/xc7a100t-virt/vpr_grid_map.csv --eblif /root/Desktop/fasm2bels/artix7_100t-xc7a100t-virt-xc7a100t-test/top.eblif**
But it always prompt error such as:
Traceback (most recent call last): File "/root/Desktop/symbiflow/symbiflow-arch-defs/env/conda/envs/symbiflow_arch_def_base/lib/python3.7/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/root/Desktop/symbiflow/symbiflow-arch-defs/env/conda/envs/symbiflow_arch_def_base/lib/python3.7/runpy.py", line 85, in _run_code exec(code, run_globals) File "/root/Desktop/symbiflow/symbiflow-arch-defs/third_party/symbiflow-xc-fasm2bels/fasm2bels/__main__.py", line 4, in <module> main() File "/root/Desktop/symbiflow/symbiflow-arch-defs/third_party/symbiflow-xc-fasm2bels/fasm2bels/fasm2bels.py", line 443, in main process_tile(top, tile, tile_features) File "/root/Desktop/symbiflow/symbiflow-arch-defs/third_party/symbiflow-xc-fasm2bels/fasm2bels/fasm2bels.py", line 107, in process_tile PROCESS_TILE[tile_type](top.conn, top, tile, tile_features) File "/root/Desktop/symbiflow/symbiflow-arch-defs/third_party/symbiflow-xc-fasm2bels/fasm2bels/models/clb_models.py", line 2066, in process_clb process_slice(top, slices[s]) File "/root/Desktop/symbiflow/symbiflow-arch-defs/third_party/symbiflow-xc-fasm2bels/fasm2bels/models/clb_models.py", line 1827, in process_slice assert False AssertionError

Allow input pad locations to be specified using XDC format

It would be nice if you could provide a set of pin constraints from the original bitstream compile, such that when translating fasm to bels, the top-level input names could be mapped back to the original input names.

This would be similar to the "icebox_vlog.py -P" functionality if you are familiar with the icestorm tools.

I'm assuming this option doesn't already exist?

If you're not already working on this, I would be happy to work on it and upstream it. If you have any advice on where to look in the code first, it would be much suggested. Thanks!

Extra/unused LUTs in output design

Currently, if any LUT is used in a tile, Fasm2bels creates primitives/cells for every LUT in that tile, even for LUTs that were not used in the original design. When this is the case, a LUT that was originally unused is listed in Fasm2bels' output Verilog file as having its inputs as all "1'b1" and its its O5 and O6 outputs effectively do not drive anything, as seen in the examples below:

// Unused LUT
  (* KEEP, DONT_TOUCH, BEL = "B6LUT" *)
  LUT6_2 #(
    .INIT(64'h0000000000000000)
  ) CLBLL_L_X2Y121_SLICE_X0Y121_BLUT (
.I0(1'b1),
.I1(1'b1),
.I2(1'b1),
.I3(1'b1),
.I4(1'b1),
.I5(1'b1),
.O5(CLBLL_L_X2Y121_SLICE_X0Y121_BO5),
.O6(CLBLL_L_X2Y121_SLICE_X0Y121_BO6)
  );

// Used LUT
  (* KEEP, DONT_TOUCH, BEL = "A6LUT" *)
  LUT6_2 #(
    .INIT(64'hff55ff55f5f5f5f5)
  ) CLBLL_L_X2Y121_SLICE_X0Y121_ALUT (
.I0(LIOB33_X0Y1_IOB_X0Y1_I),
.I1(1'b1),
.I2(CLBLM_R_X3Y130_SLICE_X2Y130_AQ),
.I3(CLBLM_R_X5Y126_SLICE_X7Y126_BQ),
.I4(1'b1),
.I5(1'b1),
.O5(CLBLL_L_X2Y121_SLICE_X0Y121_AO5),
.O6(CLBLL_L_X2Y121_SLICE_X0Y121_AO6)
  );

image
Original design

image
Fasm2bels output design

Is there a reason why these unused LUTs are included in Fasm2bels' output? It seems like Fasm2bels could create a cleaner Verilog file if it only included used LUTs.

fasm2bels_output.v.zip

assert site_pin ('I') not in ['HARD1', 'HARD0']

I'm trying to run fasm2bels for the attached design. fasm.zip. The bitstream was generated by Vivado 2019.2, and then the fasm created by bit2fasm.py.

PART_FAMILY = "artix7"
PART = "xc7a200tsbg484-1"

It looks like the code is following a route, and then gets to a section of code with this label:

    # There are no active pips upstream from this node, check if this is a
    # site pin connected to a HARD0 or HARD1 pin.  These are connected to the
    # global ZERO_NET or ONE_NET.

and then hits this assertion

assert site_pin in ['HARD1', 'HARD0'], (sink_node_pkey, tile,
AssertionError: (7997249, 'LIOB33_X0Y143', 'IOB_IBUF0', 'I')

https://github.com/SymbiFlow/symbiflow-xc-fasm2bels/blob/master/fasm2bels/make_routes.py#L562

It seems like it unexpectedly hitting an input pad? Any insight on what would in the design would cause this?

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 192, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/__main__.py", line 4, in <module>
    main()
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/fasm2bels.py", line 452, in main
    top.make_routes(allow_orphan_sinks=args.allow_orphan_sinks)
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/models/verilog_modeling.py", line 2267, in make_routes
    for sink_wire, src_wire in make_routes(
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/make_routes.py", line 701, in make_routes
    expand_sink(
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/make_routes.py", line 589, in expand_sink
    expand_sink(
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/make_routes.py", line 589, in expand_sink
    expand_sink(
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/make_routes.py", line 562, in expand_sink
    assert site_pin in ['HARD1', 'HARD0'], (sink_node_pkey, tile,
AssertionError: (7997249, 'LIOB33_X0Y143', 'IOB_IBUF0', 'I')

Remove capnp files

Remove dependency on capnp schemas and let the external tool using fasm2bels to point to the capnp schema dir.

This relies on SymbiFlow/conda-packages#123 to have the possibility to retrieve the capnp dir stored in the vtr conda package.

Unconnected CARRY4s

I've noticed that Fasm2bels does not seem to be connecting carry chains correctly. As an example, I have a design where the CARRY4 A's carry-in pin (CI) should be driven by the MSB of CARRY4 B's CO wire.

CARRY4 A:

  (* KEEP, DONT_TOUCH, BEL = "CARRY4" *)
  CARRY4 #(
  ) CLBLL_L_X2Y110_SLICE_X1Y110_CARRY4 (
.CI(CLBLL_L_X2Y109_SLICE_X1Y109_COUT),
.CO({CLBLL_L_X2Y110_SLICE_X1Y110_D_CY, CLBLL_L_X2Y110_SLICE_X1Y110_C_CY, CLBLL_L_X2Y110_SLICE_X1Y110_B_CY, CLBLL_L_X2Y110_SLICE_X1Y110_A_CY}),
.CYINIT(1'b0),
...

CARRY4B:

  (* KEEP, DONT_TOUCH, BEL = "CARRY4" *)
  CARRY4 #(
  ) CLBLL_L_X2Y109_SLICE_X1Y109_CARRY4 (
.CI(1'b0),
.CO({CLBLL_L_X2Y109_SLICE_X1Y109_D_CY, CLBLL_L_X2Y109_SLICE_X1Y109_C_CY, CLBLL_L_X2Y109_SLICE_X1Y109_B_CY, CLBLL_L_X2Y109_SLICE_X1Y109_A_CY}),
.CYINIT(1'b0),
...

However, CLBLL_L_X2Y109_SLICE_X1Y109_COUT (which is connected to CARRY4 A's CI pin) is not driven by anything, so the CARRY4s remain unconnected. I've been able to provide a simple fix to my files by adding in an assign statement that would look something like this: assign CLBLL_L_X2Y109_SLICE_X1Y109_COUT = CLBLL_L_X2Y109_SLICE_X1Y109_D_CY;

This is an easy fix, but it would be nice to contribute a fix to the code, however, I am not very familiar with the Fasm2bels code. Could someone point me to where I might start looking in the code to provide a fix? Also, does it seem better to have fasm2bels just insert an assign statement like I did or to just remove the "*_COUT" middle man entirely and drive CI of CARRY4 A with the original *_D_CY output of CARRY4 B?

Inconsistent CLI flags

The toplevel main uses --db_root and --connection_database (with underscores), whereas the create_database submodule uses --db-root and --connection-database-output (with dashes).

f4pga or fpga?

Is the fasm2bels branch being called "f4pga-xc-fasm2bels" correct? Or is the "4" a spelling error?

Was just curious about it.

RAM32X1S element on A6 LUT not processed correctly

Hello,

I disassembled a bitstream that contains the RAM32X1S element on the A6 LUT as shown in the screenshot.
Screenshot from 2023-11-13 13-53-48

However, FASM2BELS detects this LUTRAM as a regular LUT. The reason for this is, that the Data input of the LUT is DI2, but Fasm2bels only detects 32 bit Elements on an A LUT when DI1 is used.

The element decoding is done in fasm2bels/models/clb_models.py.

This code fragment is used for detecting RAM32X1S on the A/C LUT:

https://github.com/chipsalliance/f4pga-xc-fasm2bels/blob/bafbcd8727e0807d6a620d1cf5dd151111c4a322/fasm2bels/models/clb_models.py#L363C9-L370C48

In l.365 it checks that the input AI was used for the DI1MUX. If DI2 was used as input, it does not mark the element as a RAM32X1S. Could you add support for DI2 input?

issue on fasm to Verilog urgent

Hi, everything compiled successfully.

This is the command I ran:
python3 -mfasm2bels --connection_database ./mydb.db --db_root /home/pc-5/Desktop/fpga_bit_to_verilog/f4pga-xc-fasm2bels/third_party/prjxray/database/artix7 --part xc7a35tcpg236-1 --fasm_file ./add16.fasm --verilog_file ./out.v

The error I got:

Loading database from './mydb.db'
Traceback (most recent call last):
  File "/home/pc-5/Desktop/fpga_bit_to_verilog/f4pga-xc-fasm2bels/env/conda/envs/f4pga_xc_fasm2bels/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/pc-5/Desktop/fpga_bit_to_verilog/f4pga-xc-fasm2bels/env/conda/envs/f4pga_xc_fasm2bels/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/pc-5/Desktop/fpga_bit_to_verilog/f4pga-xc-fasm2bels/fasm2bels/__main__.py", line 23, in <module>
    main()
  File "/home/pc-5/Desktop/fpga_bit_to_verilog/f4pga-xc-fasm2bels/fasm2bels/fasm2bels.py", line 405, in main
    create_channels(args.db_root, args.part, args.connection_database)
  File "/home/pc-5/Desktop/fpga_bit_to_verilog/f4pga-xc-fasm2bels/fasm2bels/database/create_channels.py", line 458, in create_channels
    with DatabaseCache(connection_database) as conn:
  File "/home/pc-5/Desktop/fpga_bit_to_verilog/f4pga-xc-fasm2bels/fasm2bels/database/connection_database_cache.py", line 57, in __enter__
    self.file_connection.backup(
  File "/home/pc-5/Desktop/fpga_bit_to_verilog/f4pga-xc-fasm2bels/fasm2bels/database/connection_database_cache.py", line 93, in _progress
    self.bar = ProgressBar(max_value=total)
  File "/home/pc-5/Desktop/fpga_bit_to_verilog/f4pga-xc-fasm2bels/fasm2bels/lib/progressbar_utils.py", line 41, in __init__
    super().__init__(*args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'max_value'

Thanks!

Xc-fasm2bels is getting error out while running running picoSoC design

Hi, i am using picoSoC design for fasm 2 dcp conversion, which using fasm2bels utility i am getting below error,
PROCESS_TILE[tile_type](top.conn, top, tile, tile_features)
KeyError: 'BRKH_INT'

It seems that the process is not defined for BRKH_INT and BRAM_INT_INTERFACE_L tiles in fasm2bels.py, should it be assumed null_process/ process_bram?

Auto regeneration of FASM test files

Problem statement

Currently, there are test data files which are fixed and, with the developement going on with symbiflow-arch-defs, prjxray, etc., these data files are becoming obsolete (and will become obsolete) and unsuited for testing purposes.

The problem is that there is a circular dependency between fasm2bels and symbiflow-arch-defs, for which a set of features might change both in prjxray-db, and the FASM files in the tests do not reflect the changes in the DB, hence being unsuited for testing anymore.

Possible solutions

[TODO]

env target broken with make-env

make env runs git submodule update --init --recursive, which brings in the make-env submodule, but make-env is needed before the env target can be run (since the make-env also uses the env target).

Need a new Makefile target that is run before env?

This isn't picked up by CI because it uses the recursive option of actions/checkout@v1.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.