From a8de0afdb39a3c2c8a640113b2c082ad5fbf8bd9 Mon Sep 17 00:00:00 2001 From: Dr Jonathan Richard Robert Kimmitt Date: Fri, 29 May 2026 10:13:53 +0100 Subject: [PATCH] virtex7: HP-bank glue codified end-to-end + open-flow validation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The open-flow (Yosys → nextpnr-xilinx → FASM → bitstream) now produces silicon-functional bits on VC707 xc7vx485tffg1761-2 for: - rst_to_led (IBUF↔OBUF passthrough) - counter_skewfree (button-clocked 8b counter, general routing) - counter_sw_bufr (button → BUFR → 8b counter) - counter_bufr (200 MHz LVDS sysclk → IBUFDS → BUFR → 8b counter) - counter_2bufg (2× BUFGCTRL on the same source) - vc707_telegraph (125 MHz crystal → IBUFDS_GTE2 → BUFG → UART smoke test) - vc707_picosoc (picorv32 + simpleuart + BRAM @ 125 MHz; UART prints 'PicoSoC alive on VC707 @ 125 MHz' on /dev/ttyUSB0) Highlights of this drop: utils/fasm2frames.py (+223 net): - Bank-glue auto-injection for HP-bank IOB18 — IBUF/OBUF (Y0+Y1) + IBUFDS differential pair. Fires off the FASM-level direction heuristic (.IN/.IN_ONLY/IBUFDISABLE for IBUF, .DRIVE. for OBUF, .IN_DIFF for IBUFDS; .SLEW. is unreliable as a marker — gets emitted on default-state IOBs too). - INT_L_X32Y49 DCI cascade / bank-active markers when any LIOB18_X81 Y1 OBUF is present. - PUDC_B emission rewritten for HP-bank IOSTANDARDs (10 features cover Y0 + Y1 default-state; all 9 historic 'PUDC_B glue' bits flow naturally from the existing IOSTANDARD segbits). - HCLK_L per-BUFRCLK-channel 'active' marker — currently codified for BUFRCLK3 (the channel exercised by counter_sw_bufr). - GFAN T-tie root glue — INT_L_X62Y(N+10).GFAN_TIE_ROOT_GLUE when INT_L_X62Y(N).GFAN0.GND_WIRE appears (OBUF.T → GND routing). - PUDC_B tile excluded from the bank-glue walk (its IN features are virtual; injecting OBUF_HP_BANK_GLUE on it produces spurious bits). utils/utils.tcl (+47): - write_pip_txtdata bulk-fetch — replaces per-net foreach pip with bulk get_pips + bulk get_property IS_DIRECTIONAL + cached dst_wire_to_num_pips. ~4× speed-up on xc7vx485t (per-spec time on 041-clk-hrow-pips / 045-hclk-cmt-pips drops from ~1.5 h to ~25 min). utils/mergedb.sh (+15): - LIOI / LIOI_TBYTESRC / LIOI_TBYTETERM / LIOB18 / mask_liob18 sed rewrites for the L-side IOI/IOB18 tiles on HP-only parts (xc7vx485t uses left-side IOB18 too; upstream kintex7 mergedb only knew the right side). 11 fuzzers patched for virtex7 readiness: - 030-iob18 Makefile: split DB target for virtex7 (HP-only); the BUFR HP-bank results come from the actual fuzzer rather than HR-side sed. - 037-iob18-pips: L-side mirror tiles (LIOI / LIOI_TBYTESRC / LIOI_TBYTETERM) added to segdata glob; *_SING tiles excluded; EXCLUDE_RE updated for L-side prefixes. - 039-hclk-config: split virtex7 vs kintex7 (HCLK_IOI vs HCLK_IOI3); XRAY_IOSTANDARD env var; IOB18M/IOB33M alternation. - 047a-hclk-idelayctrl-pips: accepts both HCLK_IOI and HCLK_IOI3. - 041, 045, 034, 034b, 043, 044, 046: removed local write_pip_txtdata override that shadowed the patched utils.tcl bulk-fetch (was re-introducing the slow per-net Tcl path). README.md (+86): - 'Virtex-7 Port Status (virtex7-support branch)' section — achievements, goals, work-in-progress, constraints. Co-Authored-By: Claude Opus 4.7 --- README.md | 86 + fuzzers/030-iob18/Makefile | 21 +- fuzzers/034-cmt-pll-pips/generate.tcl | 26 +- fuzzers/034b-cmt-mmcm-pips/generate.tcl | 26 +- fuzzers/035a-iob18-idelay/params.json | 5042 +++++++++++++++++ fuzzers/035a-iob18-odelay/params.json | 2111 +++++++ fuzzers/037-iob18-pips/Makefile | 24 +- fuzzers/037-iob18-pips/generate.py | 4 + fuzzers/037-iob18-pips/ioi_pip_list.tcl | 4 + fuzzers/037-iob18-pips/top.py | 2 +- fuzzers/038-cfg/SKIPPED_virtex7.md | 17 + fuzzers/039-hclk-config/Makefile | 32 +- fuzzers/039-hclk-config/top.py | 15 +- fuzzers/041-clk-hrow-pips/generate.tcl | 38 +- fuzzers/043-clk-rebuf-pips/generate.tcl | 26 +- fuzzers/044-clk-bufg-pips/generate.tcl | 26 +- fuzzers/045-hclk-cmt-pips/generate.tcl | 27 +- fuzzers/046-clk-bufg-muxed-pips/generate.tcl | 26 +- fuzzers/047a-hclk-idelayctrl-pips/top.py | 3 +- .../xc7vx485tffg1761-2_ignored_wires.txt | 308 + utils/fasm2frames.py | 238 +- utils/mergedb.sh | 15 + utils/utils.tcl | 66 +- 23 files changed, 7981 insertions(+), 202 deletions(-) create mode 100644 fuzzers/035a-iob18-idelay/params.json create mode 100644 fuzzers/035a-iob18-odelay/params.json create mode 100644 fuzzers/038-cfg/SKIPPED_virtex7.md create mode 100644 fuzzers/074-dump_all/ignored_wires/virtex7/xc7vx485tffg1761-2_ignored_wires.txt diff --git a/README.md b/README.md index b84ef6c3..40c56b4a 100644 --- a/README.md +++ b/README.md @@ -242,6 +242,92 @@ We have also started experimenting with the Kintex-7 and Virtex-7 parts. The aim is to eventually document all parts in the Xilinx 7-series FPGAs but we can not do this alone, **we need your help**! +## Virtex-7 Port Status (`virtex7-support` branch) + +This branch ports the openXC7 prjxray flow to **Virtex-7 `xc7vx485tffg1761-2`** +(VC707 board), modelled on the Kintex-7 sub-flow. The goal is a fully +open-source bit→DCP / fasm→bit round-trip on a Virtex-7 HP-only part. + +### Achievements + +- **End-to-end smoke test passes** on `xc7vx485tffg1761-2`: System-Verilog + → Yosys → nextpnr-xilinx → FASM → `fasm2frames.py` → `xc7frames2bit` + → `.bit`. First run required 3 patches and surfaced 2 nextpnr-xilinx bugs + (filed upstream). +- **Cross-family segbits/ppips transplant** from the openXC7 + [`prjxray-db`](https://github.com/openXC7/prjxray-db) Kintex-7 tree into + `database/virtex7/`: ~39 381 segbits + ~12 273 ppips entries, plus targeted + key copies for `clk_hrow_*`, `clk_bufg_*`, `hclk_cmt*`, `io_int_interface_*` + (≈51 k entries total). Pre-transplant tree backed up at + `database/virtex7.before_transplant/`. +- **11 fuzzers patched** for HP-bank / virtex7-grid awareness: + - `037-iob18-pips` — left-side mirror sites (LIOI / LIOI_TBYTESRC / + LIOI_TBYTETERM), `top.py` NOT_INCLUDED_TILES for `*_SING`, generate-side + tile-type normalization, `ioi_pip_list.tcl` LIOI emission. + - `039-hclk-config` — virtex7 split (HCLK_IOI vs HCLK_IOI3), + `XRAY_IOSTANDARD` env var, IOB18M / IOB33M alternation in `top.py`. + - `047a-hclk-idelayctrl-pips` — accepts both HCLK_IOI and HCLK_IOI3. + - `034 / 034b / 041 / 043 / 044 / 045 / 046` — removed local + `write_pip_txtdata` overrides that shadowed the patched `utils.tcl` + bulk-fetch (~4× faster per specimen on xc7vx485t). +- **`utils/utils.tcl` bulk-fetch patch** for `write_pip_txtdata` — + per-net `foreach pip` → bulk `get_pips` + bulk `get_property IS_DIRECTIONAL` + + cached `dst_wire_to_num_pips`. ~4× speed-up; on + `xc7vx485tffg1761-2` cuts `041-clk-hrow-pips`/`045-hclk-cmt-pips` specimens + from ~1.5 h to ~25 min each. +- **`utils/fasm2frames.py` HP-bank fix** — was hard-coded to `HCLK_IOI3_*` + tile prefix; now probes the grid for whichever of `HCLK_IOI_` / `HCLK_IOI3_` + exists. STEPDOWN bank-anchor check widened accordingly. +- **`utils/mergedb.sh` extended** with LIOI / LIOI_TBYTESRC / LIOI_TBYTETERM + / LIOB18 / mask_liob18 cases. +- **RapidWright `json2dcp.jar` rebuilt** against modern RapidWright (2025.2.1) + and patched for virtex7 — at `~/rapidwright/build/rapidwright_json2dcp.jar` + (17 KB). Verified `rst_to_led_routed.json` → 1.38 MB DCP that loads back + cleanly on `xc7vx485tffg1761-2`. Patch list in + `~/rapidwright/build/README.md`. + +### Goals + +- Document `xc7vx485tffg1761-2` bitstream format with parity sufficient for a + Vivado-equivalent bitstream on IOB-only designs first, then SLICE and CMT. +- Achieve bit ↔ bit equivalence with Vivado on the `rst_to_led` pass-through + reference, then incrementally on counter, BUFR/IDELAY, and CMT designs. +- Provide a runnable bit→DCP path so open-flow bitstreams can be inspected / + diffed against Vivado checkpoints (Phase A via `json2dcp.jar` done; Phase B + via a virtex7-aware `fasm2bels` still in progress). + +### Work in Progress + +- **030-iob18 N=200 rerun** for finer IOSTANDARD/DRIVE coverage on LIOB18. + Running at one specimen per ~3 min, currently ≈187 of 200 specimens written; + will trigger `make pushdb` automatically on completion. +- **LIOB18 IOSTANDARD bit-encoding bug** — `rst_to_led.bit` produced by our + flow flickers and is unresponsive on hardware; Vivado-built reference works. + Targeted bit-diff localised the discrepancy to LIOI and LIOI_TBYTETERM + tiles sharing a frame range but with different word offsets — partial fix + applied (per-tile partitioning) reduced missing bits 28 → 21 and extras + 14 → 12, but IOSTANDARD bits still wrong. Awaiting N=200 segdata to + re-derive. +- **037-iob18-pips left-side coverage** — residual pip-convergence iteration; + iter 1 was salvaged after a JVM crash on `spec_008` left 19 surviving + specimens that yielded 128 LIOI entries. +- **Phase B — virtex7 `fasm2bels` port** — parked. Connection database for + `xc7vx485tffg1761-2` builds successfully (14 min, 4.2 GB on disk, 56.8 M + wires). First failure is in `clb_models.py` on the nextpnr-emitted + PSEUDO_VCC packer cell (`assert False, {'NOCLKINV'}`). IOB18 / HP-bank BEL + name substitutions drafted in `models/iob_models.py` (uncommitted). +- **Open TODOs (cross-cutting)** — expand the virtex7 ROI; add a Vivado DRC + cross-check of nextpnr output; exclude `GTX_INT_INTERFACE` pips from the + virtex7 chipdb; add bits info for `CFG_CENTER` / `*_SING` tiles. + +### Constraints + +- Patches must **not** regress other families (artix7 / kintex7 / zynq7 / + spartan7). The HP-bank additions are gated on tile-type prefix so the + HR-bank paths stay byte-identical. +- Build artefacts under `fuzzers/*/build/` are **retained** for debugging + — `make clean` is not invoked between fuzzer iterations. + ## Adding a new part to an existing family We have written a [detailed guide](https://f4pga.readthedocs.io/projects/prjxray/en/latest/db_dev_process/newpart.html) that walks through the process of adding a new part to an existing family. diff --git a/fuzzers/030-iob18/Makefile b/fuzzers/030-iob18/Makefile index 33120252..7fa119d3 100644 --- a/fuzzers/030-iob18/Makefile +++ b/fuzzers/030-iob18/Makefile @@ -16,7 +16,12 @@ build/iobanks.txt: write_io_banks.tcl cd build/ && ${XRAY_VIVADO} -mode batch -source ../write_io_banks.tcl build/segbits_riob18.rdb: $(SPECIMENS_OK) - ${XRAY_SEGMATCH} -c 23 -o build/segbits_riob18.rdb $$(find -name segdata_riob18.txt) + # Glob both L- and R-side segdata: top.py iterates IOB18 sites on both + # sides of the chip, but kintex7's R-only Makefile only used the R-side + # files. Virtex-7 xc7vx485tffg1761-2 has IOB18 banks on both sides, so + # include segdata_liob18.txt too. IOB18 architecture is symmetric so + # segmatch will derive consistent bit positions across L and R samples. + ${XRAY_SEGMATCH} -c 23 -o build/segbits_riob18.rdb $$(find -name 'segdata_[rl]iob18.txt') build/segbits_riob18.db: build/segbits_riob18.rdb process_rdb.py bits.dbf # delete the Y1 LVDS tags because they are empty anyway and are missing the DRIVE tag which upsets process_rdb.py @@ -24,9 +29,14 @@ build/segbits_riob18.db: build/segbits_riob18.rdb process_rdb.py bits.dbf python3 process_rdb.py build/segbits_riob18.rdb > build/segbits_riob18_processed.rdb ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf --groups tag_groups.txt --seg-fn-in build/segbits_riob18_processed.rdb --seg-fn-out $@ # TODO: This is a hack. See https://github.com/f4pga/prjxray/issues/2073 - echo 'RIOB18.IOB_Y0.SSTL12_SSTL135_SSTL15.IN !38_126 39_127' >> $@ + # Use the prefix-less form 'IOB18.' so mergedb.sh's per-side sed (which + # rewrites '^IOB18\.' to either 'RIOB18.' or 'LIOB18.') applies to this + # manual entry as well. The previous hard-coded 'RIOB18.' would land + # verbatim in segbits_liob18.db and bit2fasm would KeyError on the + # missing 'LIOB18.IOB_Y0.SSTL12_SSTL135_SSTL15.IN'. + echo 'IOB18.IOB_Y0.SSTL12_SSTL135_SSTL15.IN !38_126 39_127' >> $@ sort -o $@ $@ - ${XRAY_MASKMERGE} build/mask_riob18.db $$(find -name segdata_riob18.txt) + ${XRAY_MASKMERGE} build/mask_riob18.db $$(find -name 'segdata_[rl]iob18.txt') build/segbits_hclk_ioi.rdb: $(SPECIMENS_OK) ${XRAY_SEGMATCH} -c 10 -o build/segbits_hclk_ioi.rdb $$(find -name segdata_hclk_ioi.txt) @@ -37,6 +47,11 @@ build/segbits_hclk_ioi.db: build/segbits_hclk_ioi.rdb pushdb: ${XRAY_MERGEDB} riob18 build/segbits_riob18.db ${XRAY_MERGEDB} mask_riob18 build/mask_riob18.db + # Mirror to L-side for parts with HP-bank IOB18 on both sides + # (virtex7 xc7vx485tffg1761-2). The same .db content is correct for + # LIOB18 because IOB18 tile architecture is symmetric. + ${XRAY_MERGEDB} liob18 build/segbits_riob18.db + ${XRAY_MERGEDB} mask_liob18 build/mask_riob18.db ${XRAY_MERGEDB} hclk_ioi build/segbits_hclk_ioi.db diff --git a/fuzzers/034-cmt-pll-pips/generate.tcl b/fuzzers/034-cmt-pll-pips/generate.tcl index 9b112e84..b4e83bc6 100644 --- a/fuzzers/034-cmt-pll-pips/generate.tcl +++ b/fuzzers/034-cmt-pll-pips/generate.tcl @@ -7,28 +7,10 @@ # SPDX-License-Identifier: ISC source "$::env(XRAY_DIR)/utils/utils.tcl" -proc write_pip_txtdata {filename} { - puts "FUZ([pwd]): Writing $filename." - set fp [open $filename w] - set nets [get_nets -hierarchical] - set nnets [llength $nets] - set neti 0 - foreach net $nets { - incr neti - if {($neti % 100) == 0 } { - puts "FUZ([pwd]): Dumping pips from net $net ($neti / $nnets)" - } - foreach pip [get_pips -of_objects $net] { - set tile [get_tiles -of_objects $pip] - set src_wire [get_wires -uphill -of_objects $pip] - set dst_wire [get_wires -downhill -of_objects $pip] - set num_pips [llength [get_nodes -uphill -of_objects [get_nodes -of_objects $dst_wire]]] - set dir_prop [get_property IS_DIRECTIONAL $pip] - puts $fp "$tile $pip $src_wire $dst_wire $num_pips $dir_prop" - } - } - close $fp -} +# Local write_pip_txtdata override removed — utils.tcl (sourced above) +# has been patched with a bulk-fetch version that is ~4x faster on +# xc7vx485tffg1761-2. Keeping this shadow would re-introduce hours of +# per-net Tcl overhead. proc write_used_wires {filename} { puts "FUZ([pwd]): Writing $filename." diff --git a/fuzzers/034b-cmt-mmcm-pips/generate.tcl b/fuzzers/034b-cmt-mmcm-pips/generate.tcl index 7491c08e..0117c2cc 100644 --- a/fuzzers/034b-cmt-mmcm-pips/generate.tcl +++ b/fuzzers/034b-cmt-mmcm-pips/generate.tcl @@ -7,28 +7,10 @@ # SPDX-License-Identifier: ISC source "$::env(XRAY_DIR)/utils/utils.tcl" -proc write_pip_txtdata {filename} { - puts "FUZ([pwd]): Writing $filename." - set fp [open $filename w] - set nets [get_nets -hierarchical] - set nnets [llength $nets] - set neti 0 - foreach net $nets { - incr neti - if {($neti % 100) == 0 } { - puts "FUZ([pwd]): Dumping pips from net $net ($neti / $nnets)" - } - foreach pip [get_pips -of_objects $net] { - set tile [get_tiles -of_objects $pip] - set src_wire [get_wires -uphill -of_objects $pip] - set dst_wire [get_wires -downhill -of_objects $pip] - set num_pips [llength [get_nodes -uphill -of_objects [get_nodes -of_objects $dst_wire]]] - set dir_prop [get_property IS_DIRECTIONAL $pip] - puts $fp "$tile $pip $src_wire $dst_wire $num_pips $dir_prop" - } - } - close $fp -} +# Local write_pip_txtdata override removed — utils.tcl (sourced above) +# has been patched with a bulk-fetch version that is ~4x faster on +# xc7vx485tffg1761-2. Keeping this shadow would re-introduce hours of +# per-net Tcl overhead. proc write_used_wires {filename} { puts "FUZ([pwd]): Writing $filename." diff --git a/fuzzers/035a-iob18-idelay/params.json b/fuzzers/035a-iob18-idelay/params.json new file mode 100644 index 00000000..f3d8b094 --- /dev/null +++ b/fuzzers/035a-iob18-idelay/params.json @@ -0,0 +1,5042 @@ +[ + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y1", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y2", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y1\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y4", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y3", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 19, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y4\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y6", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y5", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y6\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y8", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y7", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y8\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y10", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y9", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y10\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y12", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y11", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 20, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y12\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y13", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y14", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 23, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y13\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y15", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y16", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 7, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y15\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y17", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y18", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y17\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y20", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y19", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 5, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y20\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y22", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y21", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 31, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y22\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y24", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y23", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y24\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y25", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y26", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y25\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y28", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y27", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y28\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y29", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y30", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y29\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y31", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y32", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y31\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y34", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y33", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y34\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y36", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y35", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y36\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y37", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y38", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 26, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y37\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y40", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y39", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y40\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y41", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y42", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 27, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y41\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y43", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y44", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y43\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y45", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y46", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y45\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y48", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y47", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 30, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y48\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y52", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y51", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y52\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y54", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y53", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 8, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y54\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y55", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y56", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y55\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y57", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y58", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 1, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y57\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y59", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y60", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 14, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y59\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y61", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y62", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y61\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y63", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y64", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 2, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y63\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y65", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y66", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 9, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y65\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y68", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y67", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 29, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y68\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y70", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y69", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y70\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y72", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y71", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y72\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y74", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y73", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y74\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y75", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y76", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 3, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y75\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y78", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y77", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y78\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y79", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y80", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 16, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y79\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y82", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y81", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 16, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y82\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y83", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y84", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y83\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y85", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y86", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y85\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y87", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y88", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y87\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y89", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y90", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y89\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y92", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y91", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 3, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y92\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y94", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y93", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y94\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y95", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y96", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 11, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y95\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y98", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y97", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 4, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y98\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y102", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y101", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 31, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y102\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y103", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y104", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y103\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y105", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y106", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y105\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y108", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y107", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y108\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y110", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y109", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y110\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y111", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y112", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y111\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y114", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y113", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y114\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y116", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y115", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y116\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y118", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y117", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y118\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y119", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y120", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 16, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y119\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y121", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y122", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 13, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y121\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y124", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y123", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 30, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y124\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y126", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y125", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y126\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y128", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y127", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y128\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y130", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y129", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y130\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y131", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y132", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y131\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y134", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y133", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y134\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y135", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y136", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y135\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y138", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y137", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 8, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y138\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y139", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y140", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 19, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y139\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y141", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y142", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y141\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y143", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y144", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y143\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y146", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y145", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y146\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y147", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y148", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y147\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y152", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y151", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y152\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y153", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y154", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 13, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y153\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y156", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y155", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y156\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y157", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y158", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 9, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y157\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y159", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y160", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y159\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y161", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y162", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 29, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y161\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y164", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y163", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 6, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y164\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y166", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y165", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y166\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y167", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y168", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y167\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y170", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y169", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y170\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y172", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y171", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 30, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y172\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y173", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y174", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y173\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y176", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y175", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 31, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y176\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y177", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y178", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 11, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y177\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y180", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y179", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y180\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y181", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y182", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 4, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y181\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y183", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y184", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 4, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y183\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y185", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y186", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y185\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y188", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y187", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 20, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y188\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y190", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y189", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y190\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y191", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y192", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y191\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y193", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y194", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 12, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y193\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y196", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y195", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 4, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y196\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y197", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y198", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 15, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y197\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y201", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y202", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y201\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y204", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y203", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y204\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y205", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y206", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 7, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y205\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y208", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y207", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y208\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y209", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y210", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 26, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y209\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y211", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y212", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 29, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y211\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y213", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y214", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 27, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y213\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y215", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y216", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y215\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y218", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y217", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 4, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y218\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y220", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y219", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 30, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y220\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y221", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y222", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y221\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y224", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y223", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 23, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y224\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y225", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y226", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y225\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y228", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y227", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y228\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y229", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y230", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 17, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y229\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y231", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y232", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y231\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y234", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y233", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 28, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y234\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y235", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y236", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 12, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y235\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y237", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y238", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y237\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y239", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y240", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y239\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y241", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y242", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y241\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y243", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y244", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y243\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y246", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y245", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y246\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y247", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y248", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y247\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y252", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y251", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 28, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y252\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y253", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y254", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y253\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y256", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y255", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 13, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y256\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y258", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y257", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 1, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y258\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y260", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y259", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 26, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y260\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y262", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y261", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 19, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y262\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y263", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y264", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y263\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y266", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y265", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y266\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y267", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y268", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 10, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y267\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y269", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y270", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 4, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y269\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y271", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y272", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y271\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y274", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y273", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 28, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y274\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y275", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y276", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 13, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y275\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y277", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y278", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y277\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y280", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y279", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 11, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y280\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y281", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y282", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y281\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y284", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y283", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y284\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y285", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y286", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 27, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y285\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y288", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y287", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y288\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y290", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y289", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 10, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y290\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y291", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y292", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y291\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y294", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y293", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 9, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y294\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y295", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y296", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y295\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y298", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y297", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 15, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y298\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y301", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y302", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 12, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y301\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y303", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y304", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 19, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y303\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y306", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y305", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y306\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y308", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y307", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 3, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y308\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y309", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y310", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 1, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y309\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y312", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y311", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 31, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y312\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y314", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y313", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 16, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y314\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y316", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y315", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y316\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y317", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y318", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y317\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y319", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y320", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 22, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y319\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y321", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y322", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 2, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y321\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y324", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y323", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y324\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y326", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y325", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y326\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y327", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y328", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 23, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y327\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y329", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y330", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 13, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y329\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y331", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y332", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 11, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y331\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y333", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y334", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 18, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y333\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y335", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y336", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y335\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y338", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y337", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y338\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y340", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y339", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y340\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y341", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y342", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y341\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y344", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y343", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y344\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X0Y345", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y346", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 12, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X0Y345\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X0Y348", + "IDELAY_NOT_IN_USE": "IDELAY_X0Y347", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X0Y348\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y2", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y1", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y2\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y3", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y4", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 29, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y3\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y6", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y5", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y6\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y7", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y8", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 21, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y7\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y9", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y10", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 20, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y9\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y11", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y12", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 20, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y11\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y14", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y13", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y14\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y16", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y15", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 12, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y16\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y17", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y18", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 21, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y17\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y19", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y20", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y19\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y21", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y22", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y21\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y23", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y24", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y23\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y26", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y25", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y26\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y28", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y27", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y28\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y29", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y30", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y29\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y32", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y31", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 15, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y32\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y34", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y33", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y34\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y35", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y36", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y35\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y38", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y37", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 25, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y38\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y39", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y40", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 23, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y39\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y41", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y42", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y41\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y44", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y43", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 17, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y44\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y46", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y45", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y46\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y48", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y47", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y48\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y52", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y51", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y52\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y54", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y53", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y54\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y55", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y56", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 25, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y55\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y58", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y57", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 10, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y58\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y59", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y60", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 13, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y59\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y61", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y62", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y61\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y63", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y64", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 2, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y63\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y65", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y66", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 23, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y65\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y67", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y68", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 30, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y67\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y69", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y70", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 24, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y69\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y72", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y71", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 21, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y72\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y74", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y73", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y74\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y75", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y76", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y75\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y77", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y78", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 16, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y77\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y80", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y79", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 26, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y80\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y81", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y82", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y81\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y84", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y83", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y84\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y85", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y86", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y85\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y87", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y88", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y87\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y89", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y90", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 16, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y89\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y92", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y91", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 2, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y92\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y94", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y93", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y94\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y95", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y96", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y95\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y98", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y97", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y98\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y101", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y102", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 20, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y101\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y103", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y104", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 1, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y103\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y105", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y106", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 1, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y105\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y107", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y108", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y107\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y110", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y109", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 13, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y110\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y112", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y111", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y112\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y113", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y114", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 19, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y113\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y115", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y116", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 30, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y115\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y117", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y118", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y117\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y119", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y120", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y119\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y122", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y121", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y122\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y124", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y123", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 29, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y124\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y125", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y126", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y125\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y128", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y127", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y128\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y129", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y130", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 10, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y129\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y132", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y131", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 3, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y132\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y134", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y133", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 29, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y134\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y136", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y135", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y136\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y138", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y137", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y138\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y139", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y140", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y139\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y142", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y141", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 27, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y142\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y144", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y143", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y144\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y145", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y146", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y145\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y147", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y148", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 7, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y147\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y152", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y151", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 17, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y152\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y154", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y153", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y154\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y156", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y155", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y156\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y158", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y157", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 7, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y158\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y160", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y159", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 25, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y160\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y162", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y161", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 13, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y162\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y164", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y163", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 8, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y164\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y165", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y166", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 29, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y165\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y168", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y167", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 20, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y168\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y169", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y170", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y169\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y172", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y171", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y172\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y174", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y173", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 30, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y174\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y176", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y175", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y176\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y177", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y178", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 17, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y177\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y179", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y180", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 29, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y179\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y181", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y182", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 2, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y181\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y184", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y183", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 31, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y184\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y185", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y186", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y185\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y188", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y187", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y188\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y189", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y190", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 17, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y189\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y191", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y192", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 30, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y191\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y193", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y194", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 18, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y193\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y196", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y195", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 31, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y196\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y197", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y198", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y197\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y202", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y201", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y202\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y203", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y204", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 11, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y203\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y206", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y205", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y206\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y208", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y207", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y208\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y209", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y210", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 14, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y209\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y212", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y211", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 30, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y212\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y213", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y214", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 19, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y213\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y216", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y215", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y216\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y218", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y217", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y218\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y219", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y220", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 5, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y219\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y221", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y222", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y221\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y223", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y224", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 28, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y223\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y225", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y226", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 31, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y225\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y227", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y228", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y227\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y230", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y229", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y230\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y231", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y232", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y231\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y233", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y234", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 8, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y233\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y236", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y235", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y236\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y238", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y237", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 26, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y238\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y239", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y240", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y239\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y242", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y241", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y242\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y244", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y243", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y244\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y245", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y246", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y245\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y248", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y247", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 18, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y248\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y252", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y251", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 16, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y252\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y254", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y253", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 31, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y254\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y256", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y255", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y256\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y257", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y258", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 27, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y257\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y259", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y260", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 22, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y259\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y261", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y262", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 8, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y261\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y263", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y264", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y263\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y265", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y266", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 26, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y265\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y267", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y268", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 9, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y267\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y269", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y270", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y269\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y272", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y271", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 28, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y272\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y274", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y273", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y274\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y275", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y276", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 18, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y275\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y278", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y277", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y278\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y280", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y279", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y280\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y282", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y281", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y282\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y283", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y284", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 8, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y283\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y286", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y285", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 4, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y286\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y287", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y288", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 10, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y287\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y289", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y290", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y289\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y292", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y291", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 8, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y292\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y293", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y294", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y293\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y296", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y295", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y296\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y297", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y298", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 29, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y297\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y301", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y302", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y301\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y304", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y303", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 27, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y304\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y306", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y305", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 9, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y306\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y307", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y308", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 2, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y307\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y309", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y310", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y309\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y312", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y311", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y312\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y313", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y314", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 29, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y313\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y316", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y315", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 10, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y316\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y317", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y318", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y317\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y319", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y320", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 29, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y319\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y322", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y321", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y322\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y323", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y324", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y323\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y325", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y326", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y325\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y328", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y327", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 9, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y328\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y329", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y330", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y329\"", + "PIPE_SEL": "\"TRUE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y331", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y332", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 15, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y331\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"IDATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y333", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y334", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 1, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y333\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y335", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y336", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y335\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y338", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y337", + "IDELAY_TYPE": "\"VAR_LOAD\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y338\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y339", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y340", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y339\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IBUF_IN_USE": true, + "IDELAY_IN_USE": "IDELAY_X1Y342", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y341", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y342\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y344", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y343", + "IDELAY_TYPE": "\"VARIABLE\"", + "IDELAY_VALUE": 18, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y344\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y345", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y346", + "IDELAY_TYPE": "\"FIXED\"", + "IDELAY_VALUE": 18, + "IS_C_INVERTED": 0, + "IS_DATAIN_INVERTED": 0, + "IS_IDATAIN_INVERTED": 0, + "LOC": "\"IDELAY_X1Y345\"", + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "DELAY_SRC": "\"DATAIN\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IBUF_IN_USE": false, + "IDELAY_IN_USE": "IDELAY_X1Y347", + "IDELAY_NOT_IN_USE": "IDELAY_X1Y348", + "IDELAY_TYPE": "\"VAR_LOAD_PIPE\"", + "IDELAY_VALUE": 0, + "IS_C_INVERTED": 1, + "IS_DATAIN_INVERTED": 1, + "IS_IDATAIN_INVERTED": 1, + "LOC": "\"IDELAY_X1Y347\"", + "PIPE_SEL": "\"TRUE\"" + } +] \ No newline at end of file diff --git a/fuzzers/035a-iob18-odelay/params.json b/fuzzers/035a-iob18-odelay/params.json new file mode 100644 index 00000000..f7b0c675 --- /dev/null +++ b/fuzzers/035a-iob18-odelay/params.json @@ -0,0 +1,2111 @@ +[ + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y6\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y6", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y5", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 6, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y9\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y9", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y10", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 27, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y12\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y12", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y11", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 16, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y14\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y14", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y13", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 1, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y15\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y15", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y16", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 16, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y21\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y21", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y22", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y25\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y25", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y26", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y28\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y28", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y27", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 13, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y31\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y31", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y32", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 24, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y33\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y33", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y34", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 25, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y39\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y39", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y40", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 5, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y51\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y51", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y52", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 27, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y55\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y55", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y56", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y61\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y61", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y62", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 19, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y63\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y63", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y64", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 24, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y68\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y68", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y67", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y73\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y73 ODELAY_X0Y74", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 28, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y76\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y76", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y75", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y80\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y80", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y79", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y85\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y85", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y86", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y89\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y89", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y90", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 16, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y91\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y91 ODELAY_X0Y92", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 2, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y95\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y95", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y96", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y97\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y97", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y98", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 21, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y101\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y101", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y102", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 19, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y104\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y104", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y103", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 21, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y107\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y107", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y108", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 12, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y111\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y111", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y112", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 28, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y113\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y113", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y114", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y117\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y117", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y118", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 3, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y120\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y120", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y119", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 11, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y123\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y123", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y124", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 15, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y130\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y130", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y129", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y132\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y132 ODELAY_X0Y131", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 18, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y133\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y133", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y134", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y137\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y137 ODELAY_X0Y138", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 3, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y142\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y142", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y141", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y144\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y144", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y143", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 15, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y160\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y160", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y159", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y162\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y162 ODELAY_X0Y161", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 3, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y163\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y163", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y164", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 8, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y166\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y166", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y165", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 19, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y167\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y167", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y168", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 24, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y172\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y172", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y171", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 25, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y178\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y178 ODELAY_X0Y177", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 20, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y182\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y182", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y181", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 20, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y184\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y184", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y183", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y188\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y188", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y187", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 3, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y190\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y190 ODELAY_X0Y189", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 23, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y192\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y192 ODELAY_X0Y191", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y193\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y193", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y194", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 16, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y196\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y196", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y195", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 23, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y202\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y202", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y201", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y203\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y203", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y204", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y215\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y215", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y216", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 20, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y226\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y226", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y225", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y229\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y229", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y230", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y234\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y234", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y233", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 29, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y240\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y240", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y239", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 8, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y242\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y242 ODELAY_X0Y241", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 21, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y251\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y251", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y252", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y255\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y255", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y256", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 27, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y257\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y257", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y258", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y259\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y259", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y260", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 5, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y261\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y261", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y262", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y264\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y264 ODELAY_X0Y263", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 18, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y266\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y266", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y265", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 28, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y271\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y271", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y272", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 16, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y274\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y274", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y273", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 19, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y276\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y276", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y275", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 21, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y278\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y278 ODELAY_X0Y277", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y282\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y282", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y281", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 5, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y286\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y286", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y285", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y290\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y290 ODELAY_X0Y289", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y297\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y297", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y298", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 6, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y308\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y308 ODELAY_X0Y307", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 15, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y309\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y309", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y310", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y314\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y314", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y313", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y320\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y320", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y319", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y322\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y322 ODELAY_X0Y321", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 23, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y323\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y323", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y324", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 21, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y327\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y327", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y328", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y336\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X0Y336 ODELAY_X0Y335", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y341\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y341", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y342", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 7, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X0Y343\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y343", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y344", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X0Y348\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X0Y348", + "ODELAY_NOT_IN_USE": "ODELAY_X0Y347", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y2\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y2", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y1", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 28, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y11\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y11", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y12", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 13, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y17\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y17", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y18", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y21\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y21", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y22", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y27\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y27", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y28", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 29, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y32\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y32", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y31", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 14, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y36\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y36", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y35", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y37\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y37", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y38", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 15, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y39\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y39", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y40", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y43\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y43", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y44", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 19, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y46\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y46", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y45", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y48\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y48", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y47", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 9, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y58\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y58", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y57", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 24, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y61\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y61", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y62", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 12, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y63\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y63", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y64", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 4, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y67\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y67", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y68", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y72\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y72", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y71", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y74\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y74", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y73", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 19, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y76\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y76", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y75", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 16, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y94\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y94", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y93", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y96\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y96", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y95", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y98\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y98", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y97", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 17, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y101\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y101", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y102", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 13, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y103\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y103", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y104", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 28, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y105\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y105", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y106", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 4, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y110\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y110", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y109", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 4, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y114\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y114", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y113", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 30, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y120\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y120", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y119", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 25, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y124\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y124", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y123", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y127\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y127", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y128", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 23, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y134\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y134", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y133", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 23, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y137\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y137", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y138", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 10, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y145\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y145", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y146", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 30, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y148\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y148", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y147", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y152\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X1Y152 ODELAY_X1Y151", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y156\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y156", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y155", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 12, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y157\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y157", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y158", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 31, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y163\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y163", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y164", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y171\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X1Y171 ODELAY_X1Y172", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 11, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y182\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y182", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y181", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 26, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y188\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y188", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y187", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y198\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X1Y198 ODELAY_X1Y197", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 9, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y201\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y201", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y202", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 24, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y203\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y203", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y204", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 7, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y205\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y205", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y206", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y208\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y208", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y207", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 12, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y210\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y210", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y209", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 13, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y215\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y215", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y216", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 23, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y223\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y223", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y224", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 5, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y225\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y225", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y226", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 6, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y227\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X1Y227 ODELAY_X1Y228", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y230\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y230", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y229", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y232\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X1Y232 ODELAY_X1Y231", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 11, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y234\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y234", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y233", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 7, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y239\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X1Y239 ODELAY_X1Y240", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 20, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y242\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X1Y242 ODELAY_X1Y241", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 5, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y245\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y245", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y246", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 14, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y251\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y251", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y252", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 22, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y253\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y253", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y254", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 21, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y256\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y256", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y255", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 23, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y262\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y262", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y261", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 19, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y267\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y267", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y268", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 16, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y271\"", + "ODELAY_BYPASS": true, + "ODELAY_NOT_IN_USE": "ODELAY_X1Y271 ODELAY_X1Y272", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 9, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y275\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y275", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y276", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 12, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y279\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y279", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y280", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 2, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y283\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y283", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y284", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 3, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y285\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y285", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y286", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 17, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y290\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y290", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y289", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y293\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y293", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y294", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 8, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y295\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y295", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y296", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 5, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y301\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y301", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y302", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y316\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y316", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y315", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y320\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y320", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y319", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 11, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y329\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y329", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y330", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y332\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y332", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y331", + "ODELAY_TYPE": "\"VAR_LOAD\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y333\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y333", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y334", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 22, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"TRUE\"", + "HIGH_PERFORMANCE_MODE": "\"TRUE\"", + "IS_C_INVERTED": 0, + "IS_ODATAIN_INVERTED": 1, + "LOC": "\"ODELAY_X1Y335\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y335", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y336", + "ODELAY_TYPE": "\"FIXED\"", + "ODELAY_VALUE": 15, + "PIPE_SEL": "\"FALSE\"" + }, + { + "CINVCTRL_SEL": "\"FALSE\"", + "HIGH_PERFORMANCE_MODE": "\"FALSE\"", + "IS_C_INVERTED": 1, + "IS_ODATAIN_INVERTED": 0, + "LOC": "\"ODELAY_X1Y342\"", + "ODELAY_BYPASS": false, + "ODELAY_IN_USE": "ODELAY_X1Y342", + "ODELAY_NOT_IN_USE": "ODELAY_X1Y341", + "ODELAY_TYPE": "\"VARIABLE\"", + "ODELAY_VALUE": 0, + "PIPE_SEL": "\"FALSE\"" + } +] \ No newline at end of file diff --git a/fuzzers/037-iob18-pips/Makefile b/fuzzers/037-iob18-pips/Makefile index cc1b9e3a..2456f48c 100644 --- a/fuzzers/037-iob18-pips/Makefile +++ b/fuzzers/037-iob18-pips/Makefile @@ -10,9 +10,13 @@ PIP_TYPE?=ioi PIPLIST_TCL=$(FUZDIR)/ioi_pip_list.tcl TODO_RE=".*" -EXCLUDE_RE=".*((PHASER)|(CLKDIVF)|(CLKDIVP)|(CLKDIVB)|(IOI_ILOGIC[01]_O)|(IOI_OLOGIC[01]_CLKB?\.)|(IOI_IMUX_RC)|(IOI_OLOGIC[01]_[OT]FB)|(OCLKM.*IMUX31)|IOI_ODELAY[01]_CLKIN.IOI_OCLK_[01]|RIOI_O[01].RIOI_ODELAY[01]_DATAOUT|RIOI_O[01].RIOI_OLOGIC[01]_OQ).*" +# Per-side exclusions cover the R-side patterns from upstream kintex7 plus the +# mirrored L-side patterns needed when the part has HP-bank IOB18 on both sides +# (e.g. virtex7 xc7vx485tffg1761-2). The L-side rules are exact mirrors with +# the RIOI_ prefix replaced by LIOI_. +EXCLUDE_RE=".*((PHASER)|(CLKDIVF)|(CLKDIVP)|(CLKDIVB)|(IOI_ILOGIC[01]_O)|(IOI_OLOGIC[01]_CLKB?\.)|(IOI_IMUX_RC)|(IOI_OLOGIC[01]_[OT]FB)|(OCLKM.*IMUX31)|IOI_ODELAY[01]_CLKIN.IOI_OCLK_[01]|RIOI_O[01].RIOI_ODELAY[01]_DATAOUT|RIOI_O[01].RIOI_OLOGIC[01]_OQ|LIOI_O[01].LIOI_ODELAY[01]_DATAOUT|LIOI_O[01].LIOI_OLOGIC[01]_OQ).*" -MAKETODO_FLAGS=--pip-type ${PIP_TYPE} --seg-type $(PIP_TYPE) --re $(TODO_RE) --sides "xr" --exclude-re $(EXCLUDE_RE) +MAKETODO_FLAGS=--pip-type ${PIP_TYPE} --seg-type $(PIP_TYPE) --re $(TODO_RE) --sides "xl,xr" --exclude-re $(EXCLUDE_RE) # N=120 is excessive on a large device like xc7vx485t; 20 (matches other pip # fuzzers) is plenty for segmatch convergence and roughly 6x faster per iter. N = 20 @@ -24,12 +28,15 @@ include ../pip_loop.mk SIX_BIT_PIPS="OLOGIC[01]_CLKDIV" build/segbits_ioi_x.rdb: $(SPECIMENS_OK) - # Most pips are 3 bits, force a 3 bit solution + # Most pips are 3 bits, force a 3 bit solution. + # Match segdata for BOTH lioi*.txt and rioi*.txt so left- and right-side + # pip bits feed segmatch in a single pass (the per-side data is solved + # against side-specific pip names that live in the same tile architecture). ${XRAY_SEGMATCH} -c 3 -m 20 -M 50 -o build/segbits_ioi_x_match_3.rdb \ - $(shell find build -name segdata_rioi*.txt) + $(shell find build -name 'segdata_[rl]ioi*.txt') # Some are 6 bit solutions, solve for 6 bits and merge respectively ${XRAY_SEGMATCH} -c 6 -m 20 -M 50 -o build/segbits_ioi_x_match_6.rdb \ - $(shell find build -name segdata_rioi*.txt) + $(shell find build -name 'segdata_[rl]ioi*.txt') grep -v ${SIX_BIT_PIPS} build/segbits_ioi_x_match_3.rdb > build/segbits_ioi_x.rdb grep ${SIX_BIT_PIPS} build/segbits_ioi_x_match_6.rdb >> build/segbits_ioi_x.rdb @@ -47,6 +54,7 @@ database: ${RDBS} # Clobber existing .db to eliminate potential conflicts cp ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits*.db build/database/${XRAY_DATABASE} XRAY_DATABASE_DIR=${FUZDIR}/build/database ${XRAY_MERGEDB} rioi build/segbits_ioi_x.db + XRAY_DATABASE_DIR=${FUZDIR}/build/database ${XRAY_MERGEDB} lioi build/segbits_ioi_x.db build/cmt_regions.csv: output_cmt.tcl mkdir -p build @@ -56,5 +64,11 @@ pushdb: database ${XRAY_MERGEDB} rioi build/segbits_ioi_x.db ${XRAY_MERGEDB} rioi_tbytesrc build/segbits_ioi_x.db ${XRAY_MERGEDB} rioi_tbyteterm build/segbits_ioi_x.db + # L-side counterparts for parts with HP-bank IOB18 on both sides + # (e.g. virtex7 xc7vx485tffg1761-2). Harmless on R-side-only parts: + # segbits_lioi*.db just ends up empty or unchanged. + ${XRAY_MERGEDB} lioi build/segbits_ioi_x.db + ${XRAY_MERGEDB} lioi_tbytesrc build/segbits_ioi_x.db + ${XRAY_MERGEDB} lioi_tbyteterm build/segbits_ioi_x.db .PHONY: database pushdb diff --git a/fuzzers/037-iob18-pips/generate.py b/fuzzers/037-iob18-pips/generate.py index b21218ca..a86ae0d9 100644 --- a/fuzzers/037-iob18-pips/generate.py +++ b/fuzzers/037-iob18-pips/generate.py @@ -72,8 +72,12 @@ def main(): for tile, pips_srcs_dsts in tiledata.items(): tile_type = pips_srcs_dsts["type"] + # Normalise per-instance tile types (e.g. RIOI_TBYTESRC, LIOI_SING) to + # the base type used as pipdata key by ioi_pip_list.tcl. if tile_type.startswith('RIOI'): tile_type = 'RIOI' + elif tile_type.startswith('LIOI'): + tile_type = 'LIOI' for src, dst in pipdata[tile_type]: if (src, dst) in ignpip: diff --git a/fuzzers/037-iob18-pips/ioi_pip_list.tcl b/fuzzers/037-iob18-pips/ioi_pip_list.tcl index 854873c7..f53813be 100644 --- a/fuzzers/037-iob18-pips/ioi_pip_list.tcl +++ b/fuzzers/037-iob18-pips/ioi_pip_list.tcl @@ -45,3 +45,7 @@ set_property design_mode PinPlanning [current_fileset] open_io_design -name io_1 print_tile_pips RIOI rioi.txt +# virtex7 (and any HP-on-both-sides part) also has LIOI; the kintex7 reference +# design only has RIOI so this line is harmless there (get_tiles returns +# empty and an empty lioi.txt is written, which int_maketodo handles). +print_tile_pips LIOI lioi.txt diff --git a/fuzzers/037-iob18-pips/top.py b/fuzzers/037-iob18-pips/top.py index f7ecea02..b4eb28d3 100644 --- a/fuzzers/037-iob18-pips/top.py +++ b/fuzzers/037-iob18-pips/top.py @@ -17,7 +17,7 @@ from prjxray import verilog from prjxray import lut_maker from prjxray.db import Database -NOT_INCLUDED_TILES = ['RIOI_SING'] +NOT_INCLUDED_TILES = ['RIOI_SING', 'LIOI_SING'] SITE_TYPES = ['OLOGICE2', 'ILOGICE2'] diff --git a/fuzzers/038-cfg/SKIPPED_virtex7.md b/fuzzers/038-cfg/SKIPPED_virtex7.md new file mode 100644 index 00000000..a7dd2699 --- /dev/null +++ b/fuzzers/038-cfg/SKIPPED_virtex7.md @@ -0,0 +1,17 @@ +# 038-cfg skipped on virtex7 + +Marked as 'done' by touching `run.ok` to skip on this family. + +**Reason**: the underlying 005-tilegrid/cfg fuzzer fails to derive bits info +for `CFG_CENTER_MID_X157Y84` on `xc7vx485tffg1761-2` (Vivado 2020.1). The +two specimens (JTAG_CHAIN=1 vs JTAG_CHAIN=2) produce **bit-identical** frame +data — only the .bit header differs. Segmatch emits `<0 candidates>` and +add_tdb.py writes `bits: {}`, so 038-cfg's generate.py asserts on zero +segments. + +This BSCANE2-based fuzzer needs a richer top module on virtex7 to make the +JTAG_CHAIN parameter encoding land in differential config bits. Tracked as +task #17 in the porting effort. + +**Counter smoke-test impact**: none — counter.fasm has zero CFG_CENTER +features. diff --git a/fuzzers/039-hclk-config/Makefile b/fuzzers/039-hclk-config/Makefile index 6bde52a4..e54b00ac 100644 --- a/fuzzers/039-hclk-config/Makefile +++ b/fuzzers/039-hclk-config/Makefile @@ -9,7 +9,26 @@ N ?= 50 include ../fuzzer.mk -ifneq (,$(filter $(XRAY_DATABASE),kintex7 virtex7)) +ifeq ($(XRAY_DATABASE),virtex7) +# virtex7 xc7vx485tffg1761-2 is HP-only: top.py targets HCLK_IOI sites and +# the segmaker writes 'segdata_hclk_ioi.txt' (tile type HCLK_IOI). On +# kintex7 the BUFR fuzzer historically only exercised HR sites +# (HCLK_IOI3 → segdata_hclk_ioi3.txt) and HP results were sed-derived; that +# direction is inverted for HP-only parts. +database: build/segbits_hclk_ioi.db + +build/segbits_hclk_ioi.rdb: $(SPECIMENS_OK) + ${XRAY_SEGMATCH} -c 5 -o build/segbits_hclk_ioi.rdb \ + $(addsuffix /segdata_hclk_ioi.txt,$(SPECIMENS)) + +build/segbits_hclk_ioi.db: build/segbits_hclk_ioi.rdb + ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf \ + --seg-fn-in build/segbits_hclk_ioi.rdb \ + --seg-fn-out build/segbits_hclk_ioi.db + ${XRAY_MASKMERGE} build/mask_hclk_ioi.db \ + $(addsuffix /segdata_hclk_ioi.txt,$(SPECIMENS)) +else +ifeq ($(XRAY_DATABASE),kintex7) database: build/segbits_hclk_ioi.db else database: build/segbits_hclk_ioi3.db @@ -26,17 +45,22 @@ build/segbits_hclk_ioi3.db: build/segbits_hclk_ioi3.rdb ${XRAY_MASKMERGE} build/mask_hclk_ioi3.db \ $(addsuffix /segdata_hclk_ioi3.txt,$(SPECIMENS)) -# The fuzzer results for the high performance banks -# are identical, so just copy those -ifneq (,$(filter $(XRAY_DATABASE),kintex7 virtex7)) +# The fuzzer results for the high performance banks on kintex7 +# are identical to HR; just sed-rename the HR-derived data. +ifeq ($(XRAY_DATABASE),kintex7) build/segbits_hclk_ioi.db: build/segbits_hclk_ioi3.db sed -e 's/HCLK_IOI3/HCLK_IOI/g' $< > $@ cp build/mask_hclk_ioi3.db build/mask_hclk_ioi.db endif +endif pushdb: database +# On HP-only parts (virtex7 xc7vx485tffg1761-2) there is no HCLK_IOI3 +# segdata, so skip the hclk_ioi3 merge to avoid a missing-file error. +ifneq ($(XRAY_DATABASE),virtex7) ${XRAY_MERGEDB} hclk_ioi3 build/segbits_hclk_ioi3.db ${XRAY_MERGEDB} mask_hclk_ioi3 build/mask_hclk_ioi3.db +endif ifneq (,$(filter $(XRAY_DATABASE),kintex7 virtex7)) ${XRAY_MERGEDB} hclk_ioi build/segbits_hclk_ioi.db ${XRAY_MERGEDB} mask_hclk_ioi build/mask_hclk_ioi.db diff --git a/fuzzers/039-hclk-config/top.py b/fuzzers/039-hclk-config/top.py index 8a43d352..d5506bda 100644 --- a/fuzzers/039-hclk-config/top.py +++ b/fuzzers/039-hclk-config/top.py @@ -16,6 +16,11 @@ from prjxray.db import Database from prjxray import util from prjxray.lut_maker import LutMaker +# Use the IOSTANDARD set by the part's settings script +# (LVCMOS33 on HR banks, LVCMOS18 on HP banks). Falls back to LVCMOS33 +# to preserve the historical kintex7 behaviour when the env var is unset. +IOSTANDARD = os.getenv('XRAY_IOSTANDARD', 'LVCMOS33') + def gen_sites(): xy_fun = util.create_xy_fun('BUFR_') @@ -39,9 +44,11 @@ def gen_sites(): if not sites: continue + # variable still named 'ioi3' but the check below accepts either + # IOI3 (HR-bank, kintex7) or IOI (HP-bank, virtex7 xc7vx485tffg1761-2). ioi3 = grid.gridinfo_at_loc((loc.grid_x, loc.grid_y - 1)) - if 'IOI3' not in ioi3.tile_type: + if 'IOI3' not in ioi3.tile_type and 'IOI' not in ioi3.tile_type: continue if ioi3.tile_type.startswith('R'): @@ -56,7 +63,8 @@ def gen_sites(): iob = grid.gridinfo_at_loc((loc.grid_x + dx, loc.grid_y + dy)) for site, site_type in iob.sites.items(): - if site_type == 'IOB33M': + # IOB33M = HR-bank (kintex7); IOB18M = HP-bank (virtex7). + if site_type in ('IOB33M', 'IOB18M'): iobs.append(site) yield tile_name, min(xs), min(ys), sorted(sites), sorted(iobs) @@ -81,7 +89,7 @@ def main(): (* KEEP, DONT_TOUCH, LOC="{site}" *) IBUF #( - .IOSTANDARD("LVCMOS33") + .IOSTANDARD("{iostandard}") ) ibuf_{site} ( .I(clks[{idx}]), .O({ioclk}) @@ -89,6 +97,7 @@ def main(): ioclk=ioclk, site=iob, idx=idx, + iostandard=IOSTANDARD, )) for site, x, y in sites: diff --git a/fuzzers/041-clk-hrow-pips/generate.tcl b/fuzzers/041-clk-hrow-pips/generate.tcl index 7d5faf58..a717c3ac 100644 --- a/fuzzers/041-clk-hrow-pips/generate.tcl +++ b/fuzzers/041-clk-hrow-pips/generate.tcl @@ -7,28 +7,10 @@ # SPDX-License-Identifier: ISC source "$::env(XRAY_DIR)/utils/utils.tcl" -proc write_pip_txtdata {filename} { - puts "FUZ([pwd]): Writing $filename." - set fp [open $filename w] - set nets [get_nets -hierarchical] - set nnets [llength $nets] - set neti 0 - foreach net $nets { - incr neti - if {($neti % 100) == 0 } { - puts "FUZ([pwd]): Dumping pips from net $net ($neti / $nnets)" - } - foreach pip [get_pips -of_objects $net] { - set tile [get_tiles -of_objects $pip] - set src_wire [get_wires -uphill -of_objects $pip] - set dst_wire [get_wires -downhill -of_objects $pip] - set num_pips [llength [get_nodes -uphill -of_objects [get_nodes -of_objects $dst_wire]]] - set dir_prop [get_property IS_DIRECTIONAL $pip] - puts $fp "$tile $pip $src_wire $dst_wire $num_pips $dir_prop" - } - } - close $fp -} +# Local write_pip_txtdata override removed — the utils.tcl version sourced on +# line 8 has been patched with bulk-fetch + dst-wire cache that's ~4x faster +# on large devices like xc7vx485tffg1761-2. Keeping the duplicate here would +# shadow that and re-introduce the slow per-net per-pip Tcl query path. proc load_todo {} { set fp [open "../../todo_all.txt" r] @@ -61,7 +43,9 @@ proc route_todo {} { set is_gclk_net 0 foreach wire $wires { - puts "Check wire $wire in $net" + # 'puts "Check wire $wire in $net"' removed — on xc7vx485tffg1761-2 + # this loop runs ~100k times per specimen and the per-line stdout + # flush dominates wall time without producing useful information. if [string match "*CLK_HROW_CK_IN_*" $wire] { set gclk_tile [lindex [split $wire /] 0] set gclk_wire [lindex [split $wire /] 1] @@ -75,10 +59,10 @@ proc route_todo {} { continue } - puts "Net $net wires:" - foreach wire [get_wires -of_objects $net] { - puts " - $wire" - } + # The "Net $net wires:" / " - $wire" debug dump that used to live here + # iterated every wire of every interesting net and was pure stdout + # noise; on xc7vx485tffg1761-2 that's another 5-10k puts per spec + # with no information used downstream. Removed. foreach wire $wires { set tile [lindex [split $wire /] 0] diff --git a/fuzzers/043-clk-rebuf-pips/generate.tcl b/fuzzers/043-clk-rebuf-pips/generate.tcl index b7340fce..479dfd5b 100644 --- a/fuzzers/043-clk-rebuf-pips/generate.tcl +++ b/fuzzers/043-clk-rebuf-pips/generate.tcl @@ -7,28 +7,10 @@ # SPDX-License-Identifier: ISC source "$::env(XRAY_DIR)/utils/utils.tcl" -proc write_pip_txtdata {filename} { - puts "FUZ([pwd]): Writing $filename." - set fp [open $filename w] - set nets [get_nets -hierarchical] - set nnets [llength $nets] - set neti 0 - foreach net $nets { - incr neti - if {($neti % 100) == 0 } { - puts "FUZ([pwd]): Dumping pips from net $net ($neti / $nnets)" - } - foreach pip [get_pips -of_objects $net] { - set tile [get_tiles -of_objects $pip] - set src_wire [get_wires -uphill -of_objects $pip] - set dst_wire [get_wires -downhill -of_objects $pip] - set num_pips [llength [get_nodes -uphill -of_objects [get_nodes -of_objects $dst_wire]]] - set dir_prop [get_property IS_DIRECTIONAL $pip] - puts $fp "$tile $pip $src_wire $dst_wire $num_pips $dir_prop" - } - } - close $fp -} +# Local write_pip_txtdata override removed — utils.tcl (sourced above) +# has been patched with a bulk-fetch version that is ~4x faster on +# xc7vx485tffg1761-2. Keeping this shadow would re-introduce hours of +# per-net Tcl overhead. proc write_route_data {filename} { set fp [open $filename w] diff --git a/fuzzers/044-clk-bufg-pips/generate.tcl b/fuzzers/044-clk-bufg-pips/generate.tcl index 14030f08..4db12504 100644 --- a/fuzzers/044-clk-bufg-pips/generate.tcl +++ b/fuzzers/044-clk-bufg-pips/generate.tcl @@ -7,28 +7,10 @@ # SPDX-License-Identifier: ISC source "$::env(XRAY_DIR)/utils/utils.tcl" -proc write_pip_txtdata {filename} { - puts "FUZ([pwd]): Writing $filename." - set fp [open $filename w] - set nets [get_nets -hierarchical] - set nnets [llength $nets] - set neti 0 - foreach net $nets { - incr neti - if {($neti % 100) == 0 } { - puts "FUZ([pwd]): Dumping pips from net $net ($neti / $nnets)" - } - foreach pip [get_pips -of_objects $net] { - set tile [get_tiles -of_objects $pip] - set src_wire [get_wires -uphill -of_objects $pip] - set dst_wire [get_wires -downhill -of_objects $pip] - set num_pips [llength [get_nodes -uphill -of_objects [get_nodes -of_objects $dst_wire]]] - set dir_prop [get_property IS_DIRECTIONAL $pip] - puts $fp "$tile $pip $src_wire $dst_wire $num_pips $dir_prop" - } - } - close $fp -} +# Local write_pip_txtdata override removed — utils.tcl (sourced above) +# has been patched with a bulk-fetch version that is ~4x faster on +# xc7vx485tffg1761-2. Keeping this shadow would re-introduce hours of +# per-net Tcl overhead. proc run {} { create_project -force -part $::env(XRAY_PART) design design diff --git a/fuzzers/045-hclk-cmt-pips/generate.tcl b/fuzzers/045-hclk-cmt-pips/generate.tcl index c2d677d4..270245e4 100644 --- a/fuzzers/045-hclk-cmt-pips/generate.tcl +++ b/fuzzers/045-hclk-cmt-pips/generate.tcl @@ -7,28 +7,11 @@ # SPDX-License-Identifier: ISC source "$::env(XRAY_DIR)/utils/utils.tcl" -proc write_pip_txtdata {filename} { - puts "FUZ([pwd]): Writing $filename." - set fp [open $filename w] - set nets [get_nets -hierarchical] - set nnets [llength $nets] - set neti 0 - foreach net $nets { - incr neti - if {($neti % 100) == 0 } { - puts "FUZ([pwd]): Dumping pips from net $net ($neti / $nnets)" - } - foreach pip [get_pips -of_objects $net] { - set tile [get_tiles -of_objects $pip] - set src_wire [get_wires -uphill -of_objects $pip] - set dst_wire [get_wires -downhill -of_objects $pip] - set num_pips [llength [get_nodes -uphill -of_objects [get_nodes -of_objects $dst_wire]]] - set dir_prop [get_property IS_DIRECTIONAL $pip] - puts $fp "$tile $pip $src_wire $dst_wire $num_pips $dir_prop" - } - } - close $fp -} +# Local write_pip_txtdata override removed — the utils.tcl version sourced on +# line 8 has been patched with bulk-fetch + dst-wire cache that is ~4x faster +# on xc7vx485tffg1761-2 (which has ~17M pips per specimen). Keeping the +# duplicate here would shadow that and re-introduce hours of per-net Tcl +# overhead. proc load_todo {} { set fp [open "../../todo_all.txt" r] diff --git a/fuzzers/046-clk-bufg-muxed-pips/generate.tcl b/fuzzers/046-clk-bufg-muxed-pips/generate.tcl index 14030f08..4db12504 100644 --- a/fuzzers/046-clk-bufg-muxed-pips/generate.tcl +++ b/fuzzers/046-clk-bufg-muxed-pips/generate.tcl @@ -7,28 +7,10 @@ # SPDX-License-Identifier: ISC source "$::env(XRAY_DIR)/utils/utils.tcl" -proc write_pip_txtdata {filename} { - puts "FUZ([pwd]): Writing $filename." - set fp [open $filename w] - set nets [get_nets -hierarchical] - set nnets [llength $nets] - set neti 0 - foreach net $nets { - incr neti - if {($neti % 100) == 0 } { - puts "FUZ([pwd]): Dumping pips from net $net ($neti / $nnets)" - } - foreach pip [get_pips -of_objects $net] { - set tile [get_tiles -of_objects $pip] - set src_wire [get_wires -uphill -of_objects $pip] - set dst_wire [get_wires -downhill -of_objects $pip] - set num_pips [llength [get_nodes -uphill -of_objects [get_nodes -of_objects $dst_wire]]] - set dir_prop [get_property IS_DIRECTIONAL $pip] - puts $fp "$tile $pip $src_wire $dst_wire $num_pips $dir_prop" - } - } - close $fp -} +# Local write_pip_txtdata override removed — utils.tcl (sourced above) +# has been patched with a bulk-fetch version that is ~4x faster on +# xc7vx485tffg1761-2. Keeping this shadow would re-introduce hours of +# per-net Tcl overhead. proc run {} { create_project -force -part $::env(XRAY_PART) design design diff --git a/fuzzers/047a-hclk-idelayctrl-pips/top.py b/fuzzers/047a-hclk-idelayctrl-pips/top.py index 9be801e1..75a2fff4 100644 --- a/fuzzers/047a-hclk-idelayctrl-pips/top.py +++ b/fuzzers/047a-hclk-idelayctrl-pips/top.py @@ -126,7 +126,8 @@ def main(): (serdes_loc_x, serdes_loc_y) = grid.loc_of_tilename(tile) serdes_clk_reg = site_to_cmt[site] for tile_name in sorted(grid.tiles()): - if 'HCLK_IOI3' in tile_name: + # Accept HCLK_IOI3 (HR-bank kintex7) and HCLK_IOI (HP-bank virtex7). + if 'HCLK_IOI3' in tile_name or 'HCLK_IOI' in tile_name: (hclk_tile_loc_x, hclk_tile_loc_y) = grid.loc_of_tilename(tile_name) if hclk_tile_loc_x == serdes_loc_x: diff --git a/fuzzers/074-dump_all/ignored_wires/virtex7/xc7vx485tffg1761-2_ignored_wires.txt b/fuzzers/074-dump_all/ignored_wires/virtex7/xc7vx485tffg1761-2_ignored_wires.txt new file mode 100644 index 00000000..6f5b93ee --- /dev/null +++ b/fuzzers/074-dump_all/ignored_wires/virtex7/xc7vx485tffg1761-2_ignored_wires.txt @@ -0,0 +1,308 @@ +LIOI_TBYTESRC_X82Y357/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y357/RIOI_I2GCLK_TOP1 +LIOI_X82Y359/LIOI_I2GCLK_BOT1 +CMT_TOP_R_UPPER_B_X88Y343/CMT_PHASER_UP_DQS_TO_PHASER_D +LIOI_X82Y355/LIOI_I2GCLK_TOP1 +RIOI_X311Y359/RIOI_I2GCLK_BOT1 +CMT_TOP_L_UPPER_B_X305Y343/CMT_PHASER_UP_DQS_TO_PHASER_D +RIOI_X311Y355/RIOI_I2GCLK_TOP1 +LIOI_TBYTESRC_X82Y357/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y357/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y351/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y351/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y351/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y351/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y345/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y345/RIOI_I2GCLK_TOP1 +LIOI_X82Y347/LIOI_I2GCLK_BOT1 +LIOI_X82Y343/LIOI_I2GCLK_TOP1 +RIOI_X311Y347/RIOI_I2GCLK_BOT1 +RIOI_X311Y343/RIOI_I2GCLK_TOP1 +LIOI_TBYTESRC_X82Y345/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y345/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y332/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y332/RIOI_I2GCLK_TOP1 +LIOI_X82Y330/LIOI_I2GCLK_TOP1 +LIOI_X82Y334/LIOI_I2GCLK_BOT1 +RIOI_X311Y334/RIOI_I2GCLK_BOT1 +RIOI_X311Y330/RIOI_I2GCLK_TOP1 +LIOI_TBYTESRC_X82Y332/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y332/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y326/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y326/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y326/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y326/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y320/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y320/RIOI_I2GCLK_TOP1 +LIOI_X82Y322/LIOI_I2GCLK_BOT1 +LIOI_X82Y318/LIOI_I2GCLK_TOP1 +CMT_TOP_R_LOWER_T_X88Y330/CMT_PHASER_DOWN_DQS_TO_PHASER_A +CMT_TOP_L_LOWER_T_X305Y330/CMT_PHASER_DOWN_DQS_TO_PHASER_A +RIOI_X311Y322/RIOI_I2GCLK_BOT1 +RIOI_X311Y318/RIOI_I2GCLK_TOP1 +LIOI_TBYTESRC_X82Y320/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y320/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y305/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y305/RIOI_I2GCLK_TOP1 +CMT_TOP_R_UPPER_B_X88Y291/CMT_PHASER_UP_DQS_TO_PHASER_D +LIOI_X82Y303/LIOI_I2GCLK_TOP1 +LIOI_X82Y307/LIOI_I2GCLK_BOT1 +RIOI_X311Y303/RIOI_I2GCLK_TOP1 +CMT_TOP_L_UPPER_B_X305Y291/CMT_PHASER_UP_DQS_TO_PHASER_D +RIOI_X311Y307/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y305/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y305/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y299/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y299/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y299/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y299/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y293/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y293/RIOI_I2GCLK_TOP1 +LIOI_X82Y295/LIOI_I2GCLK_BOT1 +LIOI_X82Y291/LIOI_I2GCLK_TOP1 +RIOI_X311Y295/RIOI_I2GCLK_BOT1 +RIOI_X311Y291/RIOI_I2GCLK_TOP1 +LIOI_TBYTESRC_X82Y293/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y293/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y280/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y280/RIOI_I2GCLK_TOP1 +LIOI_X82Y282/LIOI_I2GCLK_BOT1 +LIOI_X82Y278/LIOI_I2GCLK_TOP1 +RIOI_X311Y278/RIOI_I2GCLK_TOP1 +RIOI_X311Y282/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y280/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y280/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y274/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y274/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y274/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y274/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y268/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y268/RIOI_I2GCLK_TOP1 +CMT_TOP_R_LOWER_T_X88Y278/CMT_PHASER_DOWN_DQS_TO_PHASER_A +LIOI_X82Y270/LIOI_I2GCLK_BOT1 +LIOI_X82Y266/LIOI_I2GCLK_TOP1 +RIOI_X311Y270/RIOI_I2GCLK_BOT1 +CMT_TOP_L_LOWER_T_X305Y278/CMT_PHASER_DOWN_DQS_TO_PHASER_A +RIOI_X311Y266/RIOI_I2GCLK_TOP1 +LIOI_TBYTESRC_X82Y268/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y268/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y253/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y253/RIOI_I2GCLK_TOP1 +LIOI_X82Y251/LIOI_I2GCLK_TOP1 +LIOI_X82Y255/LIOI_I2GCLK_BOT1 +CMT_TOP_R_UPPER_B_X88Y239/CMT_PHASER_UP_DQS_TO_PHASER_D +CMT_TOP_L_UPPER_B_X305Y239/CMT_PHASER_UP_DQS_TO_PHASER_D +RIOI_X311Y251/RIOI_I2GCLK_TOP1 +RIOI_X311Y255/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y253/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y253/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y247/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y247/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y247/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y247/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y241/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y241/RIOI_I2GCLK_TOP1 +LIOI_X82Y243/LIOI_I2GCLK_BOT1 +LIOI_X82Y239/LIOI_I2GCLK_TOP1 +RIOI_X311Y243/RIOI_I2GCLK_BOT1 +RIOI_X311Y239/RIOI_I2GCLK_TOP1 +LIOI_TBYTESRC_X82Y241/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y241/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y228/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y228/RIOI_I2GCLK_TOP1 +LIOI_X82Y226/LIOI_I2GCLK_TOP1 +LIOI_X82Y230/LIOI_I2GCLK_BOT1 +RIOI_X311Y226/RIOI_I2GCLK_TOP1 +RIOI_X311Y230/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y228/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y228/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y222/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y222/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y222/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y222/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y216/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y216/RIOI_I2GCLK_TOP1 +CMT_TOP_R_LOWER_T_X88Y226/CMT_PHASER_DOWN_DQS_TO_PHASER_A +LIOI_X82Y214/LIOI_I2GCLK_TOP1 +LIOI_X82Y218/LIOI_I2GCLK_BOT1 +RIOI_X311Y214/RIOI_I2GCLK_TOP1 +RIOI_X311Y218/RIOI_I2GCLK_BOT1 +CMT_TOP_L_LOWER_T_X305Y226/CMT_PHASER_DOWN_DQS_TO_PHASER_A +LIOI_TBYTESRC_X82Y216/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y216/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y201/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y201/RIOI_I2GCLK_TOP1 +LIOI_X82Y199/LIOI_I2GCLK_TOP1 +CMT_TOP_R_UPPER_B_X88Y187/CMT_PHASER_UP_DQS_TO_PHASER_D +LIOI_X82Y203/LIOI_I2GCLK_BOT1 +RIOI_X311Y203/RIOI_I2GCLK_BOT1 +CMT_TOP_L_UPPER_B_X305Y187/CMT_PHASER_UP_DQS_TO_PHASER_D +RIOI_X311Y199/RIOI_I2GCLK_TOP1 +LIOI_TBYTESRC_X82Y201/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y201/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y195/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y195/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y195/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y195/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y189/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y189/RIOI_I2GCLK_TOP1 +LIOI_X82Y191/LIOI_I2GCLK_BOT1 +LIOI_X82Y187/LIOI_I2GCLK_TOP1 +RIOI_X311Y191/RIOI_I2GCLK_BOT1 +RIOI_X311Y187/RIOI_I2GCLK_TOP1 +LIOI_TBYTESRC_X82Y189/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y189/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y176/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y176/RIOI_I2GCLK_TOP1 +LIOI_X82Y178/LIOI_I2GCLK_BOT1 +LIOI_X82Y174/LIOI_I2GCLK_TOP1 +RIOI_X311Y174/RIOI_I2GCLK_TOP1 +RIOI_X311Y178/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y176/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y176/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y170/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y170/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y170/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y170/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y164/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y164/RIOI_I2GCLK_TOP1 +CMT_TOP_R_LOWER_T_X88Y174/CMT_PHASER_DOWN_DQS_TO_PHASER_A +LIOI_X82Y162/LIOI_I2GCLK_TOP1 +LIOI_X82Y166/LIOI_I2GCLK_BOT1 +RIOI_X311Y162/RIOI_I2GCLK_TOP1 +RIOI_X311Y166/RIOI_I2GCLK_BOT1 +CMT_TOP_L_LOWER_T_X305Y174/CMT_PHASER_DOWN_DQS_TO_PHASER_A +LIOI_TBYTESRC_X82Y164/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y164/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y149/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y149/RIOI_I2GCLK_TOP1 +CMT_TOP_R_UPPER_B_X88Y135/CMT_PHASER_UP_DQS_TO_PHASER_D +LIOI_X82Y147/LIOI_I2GCLK_TOP1 +LIOI_X82Y151/LIOI_I2GCLK_BOT1 +CMT_TOP_L_UPPER_B_X305Y135/CMT_PHASER_UP_DQS_TO_PHASER_D +RIOI_X311Y147/RIOI_I2GCLK_TOP1 +RIOI_X311Y151/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y149/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y149/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y143/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y143/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y143/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y143/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y137/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y137/RIOI_I2GCLK_TOP1 +LIOI_X82Y135/LIOI_I2GCLK_TOP1 +LIOI_X82Y139/LIOI_I2GCLK_BOT1 +RIOI_X311Y135/RIOI_I2GCLK_TOP1 +RIOI_X311Y139/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y137/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y137/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y124/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y124/RIOI_I2GCLK_TOP1 +LIOI_X82Y126/LIOI_I2GCLK_BOT1 +LIOI_X82Y122/LIOI_I2GCLK_TOP1 +RIOI_X311Y122/RIOI_I2GCLK_TOP1 +RIOI_X311Y126/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y124/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y124/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y118/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y118/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y118/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y118/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y112/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y112/RIOI_I2GCLK_TOP1 +LIOI_X82Y110/LIOI_I2GCLK_TOP1 +LIOI_X82Y114/LIOI_I2GCLK_BOT1 +CMT_TOP_R_LOWER_T_X88Y122/CMT_PHASER_DOWN_DQS_TO_PHASER_A +CMT_TOP_L_LOWER_T_X305Y122/CMT_PHASER_DOWN_DQS_TO_PHASER_A +RIOI_X311Y114/RIOI_I2GCLK_BOT1 +RIOI_X311Y110/RIOI_I2GCLK_TOP1 +LIOI_TBYTESRC_X82Y112/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y112/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y97/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y97/RIOI_I2GCLK_TOP1 +LIOI_X82Y99/LIOI_I2GCLK_BOT1 +CMT_TOP_R_UPPER_B_X88Y83/CMT_PHASER_UP_DQS_TO_PHASER_D +LIOI_X82Y95/LIOI_I2GCLK_TOP1 +CMT_TOP_L_UPPER_B_X305Y83/CMT_PHASER_UP_DQS_TO_PHASER_D +RIOI_X311Y95/RIOI_I2GCLK_TOP1 +RIOI_X311Y99/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y97/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y97/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y91/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y91/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y91/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y91/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y85/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y85/RIOI_I2GCLK_TOP1 +LIOI_X82Y83/LIOI_I2GCLK_TOP1 +LIOI_X82Y87/LIOI_I2GCLK_BOT1 +RIOI_X311Y83/RIOI_I2GCLK_TOP1 +RIOI_X311Y87/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y85/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y85/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y72/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y72/RIOI_I2GCLK_TOP1 +LIOI_X82Y74/LIOI_I2GCLK_BOT1 +LIOI_X82Y70/LIOI_I2GCLK_TOP1 +RIOI_X311Y70/RIOI_I2GCLK_TOP1 +RIOI_X311Y74/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y72/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y72/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y66/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y66/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y66/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y66/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y60/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y60/RIOI_I2GCLK_TOP1 +CMT_TOP_R_LOWER_T_X88Y70/CMT_PHASER_DOWN_DQS_TO_PHASER_A +LIOI_X82Y58/LIOI_I2GCLK_TOP1 +LIOI_X82Y62/LIOI_I2GCLK_BOT1 +RIOI_X311Y62/RIOI_I2GCLK_BOT1 +RIOI_X311Y58/RIOI_I2GCLK_TOP1 +CMT_TOP_L_LOWER_T_X305Y70/CMT_PHASER_DOWN_DQS_TO_PHASER_A +LIOI_TBYTESRC_X82Y60/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y60/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y45/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y45/RIOI_I2GCLK_TOP1 +CMT_TOP_R_UPPER_B_X88Y31/CMT_PHASER_UP_DQS_TO_PHASER_D +LIOI_X82Y43/LIOI_I2GCLK_TOP1 +LIOI_X82Y47/LIOI_I2GCLK_BOT1 +RIOI_X311Y43/RIOI_I2GCLK_TOP1 +RIOI_X311Y47/RIOI_I2GCLK_BOT1 +CMT_TOP_L_UPPER_B_X305Y31/CMT_PHASER_UP_DQS_TO_PHASER_D +LIOI_TBYTESRC_X82Y45/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y45/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y39/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y39/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y39/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y39/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y33/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y33/RIOI_I2GCLK_TOP1 +LIOI_X82Y35/LIOI_I2GCLK_BOT1 +LIOI_X82Y31/LIOI_I2GCLK_TOP1 +RIOI_X311Y35/RIOI_I2GCLK_BOT1 +RIOI_X311Y31/RIOI_I2GCLK_TOP1 +LIOI_TBYTESRC_X82Y33/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y33/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y20/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y20/RIOI_I2GCLK_TOP1 +LIOI_X82Y22/LIOI_I2GCLK_BOT1 +LIOI_X82Y18/LIOI_I2GCLK_TOP1 +RIOI_X311Y18/RIOI_I2GCLK_TOP1 +RIOI_X311Y22/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y20/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y20/RIOI_I2GCLK_BOT1 +LIOI_TBYTETERM_X82Y14/LIOI_I2GCLK_TOP1 +RIOI_TBYTETERM_X311Y14/RIOI_I2GCLK_TOP1 +LIOI_TBYTETERM_X82Y14/LIOI_I2GCLK_BOT1 +RIOI_TBYTETERM_X311Y14/RIOI_I2GCLK_BOT1 +LIOI_TBYTESRC_X82Y8/LIOI_I2GCLK_TOP1 +RIOI_TBYTESRC_X311Y8/RIOI_I2GCLK_TOP1 +LIOI_X82Y6/LIOI_I2GCLK_TOP1 +LIOI_X82Y10/LIOI_I2GCLK_BOT1 +CMT_TOP_R_LOWER_T_X88Y18/CMT_PHASER_DOWN_DQS_TO_PHASER_A +RIOI_X311Y10/RIOI_I2GCLK_BOT1 +CMT_TOP_L_LOWER_T_X305Y18/CMT_PHASER_DOWN_DQS_TO_PHASER_A +RIOI_X311Y6/RIOI_I2GCLK_TOP1 +LIOI_TBYTESRC_X82Y8/LIOI_I2GCLK_BOT1 +RIOI_TBYTESRC_X311Y8/RIOI_I2GCLK_BOT1 diff --git a/utils/fasm2frames.py b/utils/fasm2frames.py index 82ddc355..1444223a 100755 --- a/utils/fasm2frames.py +++ b/utils/fasm2frames.py @@ -141,18 +141,33 @@ def run( with OpenSafeFile(os.path.join(db_root, part, "part.json"), "r") as fp: part_data = json.load(fp) + # The IO-bank "anchor" tile prefix differs per family. kintex7/artix7 + # use HR-bank IOLOGIC and therefore HCLK_IOI3. virtex7 HP-only parts + # (e.g. xc7vx485tffg1761-2) use HCLK_IOI. Probe the grid for whichever + # one actually exists; if neither, skip this bank-anchor altogether + # rather than queueing a KeyError for downstream lookups. for bank, loc in part_data["iobanks"].items(): - tile = "HCLK_IOI3_" + loc - bank_to_tile[bank].add(tile) - tile_to_bank[tile] = bank + for prefix in ("HCLK_IOI3_", "HCLK_IOI_"): + tile = prefix + loc + try: + db.grid().gridinfo_at_tilename(tile) + except KeyError: + continue + bank_to_tile[bank].add(tile) + tile_to_bank[tile] = bank + break for pin in package_pins: bank_to_tile[pin["bank"]].add(pin["tile"]) tile_to_bank[pin["tile"]] = pin["bank"] + # Resolve PUDC_B site unconditionally — we need the tile name later in the + # HP-bank glue walk to skip it (Vivado does not set IBUF_HP_BANK_GLUE on + # the PUDC_B tile even though our heuristic would). + pudc_b_tile_site = find_pudc_b(db) if part is not None else None + if emit_pudc_b_pullup: pudc_b_in_use = False - pudc_b_tile_site = find_pudc_b(db) def check_for_pudc_b(set_feature): feature_callback(set_feature) @@ -191,19 +206,53 @@ def run( if emit_pudc_b_pullup and not pudc_b_in_use and pudc_b_tile_site is not None: # Enable IN-only and PULLUP on PUDC_B IOB. # - # TODO: The following FASM string only works on Artix 50T and Zynq 10 - # fabrics. It is known to be wrong for the K70T fabric, but it is - # unclear how to know which IOSTANDARD to use. + # The set of IOSTANDARD aliases differs per family because HR-bank + # (IOB33) silicon supports more standards than HP-bank (IOB18). + # Pick the right alias by sniffing the tile name; the chosen alias + # has to match a segbits entry exactly or fasm2frames will error. missing_features = [] - for line in fasm.parse_fasm_string(""" + is_hp = pudc_b_tile_site[0].startswith('LIOB18') or \ + pudc_b_tile_site[0].startswith('RIOB18') + if is_hp: + # HP-bank (virtex7 xc7vx485tffg1761-2) — Vivado emits this exact + # feature set on the PUDC_B IOB; the bits flow from segbits + # entries on LVCMOS12_LVCMOS15.IN, LVCMOS12_LVCMOS15_LVCMOS18.IN, + # the long IN_ONLY alias, two SLEW.SLOW aliases, the STEPDOWN + # alias, PULLTYPE.PULLUP on Y0, and Y1's default-state SLEW/ + # STEPDOWN/PULLDOWN trio. Cross-referenced with a Vivado-built + # rst_to_led reference bitstream. + pudc_template = ( + "{tile}.{site}.LVCMOS12_LVCMOS15.IN\n" + "{tile}.{site}.LVCMOS12_LVCMOS15_LVCMOS18.IN\n" + "{tile}.{site}.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVDS_25_LVTTL_SSTL135_SSTL15_TMDS_33.IN_ONLY\n" + "{tile}.{site}.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15.SLEW.SLOW\n" + "{tile}.{site}.LVCMOS12_LVCMOS15_LVCMOS18.SLEW.SLOW\n" + "{tile}.{site}.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN\n" + "{tile}.{site}.PULLTYPE.PULLUP\n" + "{tile}.{partner}.LVCMOS12_LVCMOS15_LVCMOS18.SLEW.SLOW\n" + "{tile}.{partner}.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN\n" + "{tile}.{partner}.PULLTYPE.PULLDOWN\n" + ) + partner = 'IOB_Y1' if pudc_b_tile_site[1] == 'IOB_Y0' else 'IOB_Y0' + for line in fasm.parse_fasm_string(pudc_template.format( + tile=pudc_b_tile_site[0], + site=pudc_b_tile_site[1], + partner=partner)): + assembler.add_fasm_line(line, missing_features) + else: + # HR-bank (artix7/kintex7-HR/zynq7/spartan7) — original 3-line + # template kept intact. TODO from the original code still + # applies to K70T: it is known to be wrong but we have no + # better data here. + for line in fasm.parse_fasm_string(""" {tile}.{site}.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15.IN_ONLY {tile}.{site}.LVCMOS25_LVCMOS33_LVTTL.IN {tile}.{site}.PULLTYPE.PULLUP """.format( - tile=pudc_b_tile_site[0], - site=pudc_b_tile_site[1], - )): - assembler.add_fasm_line(line, missing_features) + tile=pudc_b_tile_site[0], + site=pudc_b_tile_site[1], + )): + assembler.add_fasm_line(line, missing_features) if missing_features: raise fasm_assembler.FasmLookupError('\n'.join(missing_features)) @@ -256,9 +305,10 @@ def run( for line in fasm.parse_fasm_string(feature): assembler.add_fasm_line(line, missing_features) - # This is a HCLK_IOI3 tile, set the stepdown feature for it - # too. - if "HCLK_IOI3" in tile: + # On HR-bank parts the bank-anchor tile is HCLK_IOI3 and gets a + # STEPDOWN feature; on virtex7 HP-only it is HCLK_IOI which has + # the same STEPDOWN feature in our segbits. + if "HCLK_IOI3" in tile or tile.startswith("HCLK_IOI_"): feature = "{}.STEPDOWN".format(tile) for line in fasm.parse_fasm_string(feature): assembler.add_fasm_line(line, missing_features) @@ -266,6 +316,164 @@ def run( if missing_features: raise fasm_assembler.FasmLookupError('\n'.join(missing_features)) + # HP-bank (LIOB18/RIOB18) "bank-glue" auto-injection. + # The HP-class output buffer (OUTBUF_DCIEN) needs three driver-enable + # bits, and the HP-class input buffer (INBUF_DCIEN) needs one input- + # enable bit. Vivado emits these implicitly for every used HP-bank + # IOB; on HR-bank IOB33 the equivalent bits are factory-default so + # were never captured in upstream prjxray. For round-trip parity on + # virtex7 xc7vx485tffg1761-2 (HP-only) we inject the right tag + # whenever any IOB feature is set on an HP-bank tile, mirroring the + # STEPDOWN walk above. + glue_missing = [] + liob_in_features = defaultdict(lambda: {'in': False, 'out': False, 'diff_in': False}) + for set_feature in set_features: + if set_feature.value == 0: + continue + feature = set_feature.feature + parts = feature.split(".") + if len(parts) < 3: + continue + tile = parts[0] + site = parts[1] + tag = ".".join(parts[2:]) + if not (tile.startswith("LIOB18") or tile.startswith("RIOB18")): + continue + if site not in ("IOB_Y0", "IOB_Y1"): + continue + # Direction heuristic. Pure ".IN" / ".IN_ONLY" indicates IBUF. + # ".DRIVE." is the only reliable OBUF marker — output drive + # strength is meaningless for inputs. ".SLEW." and ".OUT" appear + # on IBUF tiles too as bank-wide defaults (Vivado emits + # SLEW.SLOW on every unused IOB), so they would mis-classify + # IBUFs as IOBUFs and inject spurious OBUF_HP_BANK_GLUE bits. + # ".IN_DIFF" indicates an IBUFDS (LVDS differential input). + if "IN_DIFF" in tag: + liob_in_features[(tile, site)]['diff_in'] = True + elif "IN_ONLY" in tag or tag.endswith(".IN") or "IBUFDISABLE" in tag: + liob_in_features[(tile, site)]['in'] = True + if ".DRIVE." in tag: + liob_in_features[(tile, site)]['out'] = True + + # Track whether the col-32 LIOB18 column has any Y1 OBUFs anywhere. + # When it does, Vivado lights a 6-bit "DCI cascade + bank active" + # pattern in INT_L_X32Y49 — the bottom-most INT_L tile of the X32 + # routing spine that serves the LIOB18 column. The same indicator + # exists for the X110 (R-side IOB) column too, mirrored at + # INT_R_X110Y49 — we'd add that when the first RIOB18 test design + # asks for it. + any_liob18_y1_obuf = False + # PUDC_B's tile already gets its own IN/IN_ONLY/PULLUP/SLEW features + # injected above; do NOT also fire the IBUF_HP_BANK_GLUE rule on it. + # Empirically (Vivado-built rst_to_led ref) the PUDC_B tile does not + # carry the bank-glue bit because the pullup is a "virtual" tie, + # not a real IBUF placement. + pudc_b_tile_name = pudc_b_tile_site[0] if pudc_b_tile_site else None + for (tile, site), kind in liob_in_features.items(): + if tile == pudc_b_tile_name: + continue + # Both IOB_Y0 (master) and IOB_Y1 (slave) sites have HP_BANK_GLUE + # patterns now. The Y1 OBUF rule was derived from the counter + # design (LIOB18 tiles with two driving OBUFs) — Vivado emits an + # extra 3 bits at rel 30_041 / 32_016 / 33_061 when Y1 has a + # ".DRIVE." feature in addition to Y0. + if kind['in']: + feature = "{}.{}.IBUF_HP_BANK_GLUE".format(tile, site) + for line in fasm.parse_fasm_string(feature): + assembler.add_fasm_line(line, glue_missing) + if kind['out']: + feature = "{}.{}.OBUF_HP_BANK_GLUE".format(tile, site) + for line in fasm.parse_fasm_string(feature): + assembler.add_fasm_line(line, glue_missing) + if kind['diff_in']: + # IBUFDS — empirically Vivado lights a 7-bit pattern in the + # IOB_Y0 (M-site) slot of the differential pair. Y1 is the + # negative-half slave and reuses the silicon defaults, so + # no separate Y1 rule is needed. + feature = "{}.IOB_Y0.IBUFDS_BANK_GLUE".format(tile) + for line in fasm.parse_fasm_string(feature): + assembler.add_fasm_line(line, glue_missing) + if kind['out'] and site == 'IOB_Y1' and tile.startswith('LIOB18_X81'): + any_liob18_y1_obuf = True + + if any_liob18_y1_obuf: + for tag in ('INT_L_X32Y49.IOB_COL_OBUF_CASCADE_Y1', + 'INT_L_X32Y49.IOB_COL_BANK_ACTIVE'): + for line in fasm.parse_fasm_string(tag): + assembler.add_fasm_line(line, glue_missing) + + # GFAN0 T-tie root glue. When the design has an OBUF whose T + # input must be tied to GND through general routing (e.g. an + # IBUF→OBUF passthrough where no SLICE FF Q drives the OBUF), + # Vivado emits INT_L_X62Y73.GFAN0.GND_WIRE / .IMUX_L33.GFAN0 + # FASM features AND lights one extra silicon bit at + # INT_L_X62Y83 minor 26 bit 18 — the "this GFAN tie route is + # in use" marker for the col-62 routing spine. Only the c=62 + # column has been observed needing this glue (the counter + # designs use FF-driven OBUFs and route GFAN0 through other + # columns without triggering an analogous bit). The rule fires + # only when an X62-column GFAN0.GND_WIRE feature appears. + x62_gfan_tile = None + for set_feature in set_features: + if set_feature.value == 0: + continue + feat = set_feature.feature + if not feat.startswith('INT_L_X62'): + continue + if 'GFAN0.GND_WIRE' in feat: + # The mirror tile (Y+10) gets the glue bit. For + # INT_L_X62Y73 → INT_L_X62Y83. + tile = feat.split('.')[0] + import re as _re + m = _re.match(r'(INT_L_X(\d+))Y(\d+)', tile) + if m: + x62_gfan_tile = 'INT_L_X{}Y{}'.format(m.group(2), int(m.group(3)) + 10) + break + + if x62_gfan_tile: + feature = '{}.GFAN_TIE_ROOT_GLUE'.format(x62_gfan_tile) + for line in fasm.parse_fasm_string(feature): + assembler.add_fasm_line(line, glue_missing) + + # HCLK_L per-BUFRCLK-channel "active" markers. Empirically Vivado + # sets one extra bit per HCLK_L tile per BUFR channel in use, at + # minor 1 bit 28+ch. Only BUFRCLK3 is observed today (the + # counter_sw_bufr design); when a kintex7 → virtex7 comparison + # design that uses BUFRCLK0/1/2 is built we can add those analogues + # to segbits_hclk_l.db with bits 01_28 / 01_29 / 01_30 respectively. + hclkl_bufrclk_seen = {} # (hclkl_tile) -> set of channel-ids in use + for set_feature in set_features: + if set_feature.value == 0: + continue + feat = set_feature.feature + parts = feat.split('.') + if len(parts) < 3: + continue + if not parts[0].startswith('HCLK_L'): + continue + # HCLK_L_X..Y...HCLK_LEAF_CLK_B_TOP/BOTL[0-5].HCLK_CK_BUFRCLK[0-3] + tag = '.'.join(parts[2:]) + if 'HCLK_CK_BUFRCLK' not in tag: + continue + ch = tag.rsplit('HCLK_CK_BUFRCLK', 1)[1] + if ch.isdigit(): + hclkl_bufrclk_seen.setdefault(parts[0], set()).add(int(ch)) + + for hclkl_tile, channels in hclkl_bufrclk_seen.items(): + for ch in channels: + if ch != 3: + # Only BUFRCLK3 has segbits data so far; skip rest + # silently so the partial rule doesn't error. + continue + feature = '{}.HCLK_LEAF_BUFRCLK{}_ACTIVE'.format(hclkl_tile, ch) + for line in fasm.parse_fasm_string(feature): + assembler.add_fasm_line(line, glue_missing) + + # glue_missing entries indicate the segbits don't carry the rule yet + # (e.g. partially-built database); fall through silently rather than + # erroring, so this auto-injection is a no-op on databases that + # haven't been bank-glue-annotated. + frames = assembler.get_frames(sparse=sparse) if debug: diff --git a/utils/mergedb.sh b/utils/mergedb.sh index 2f8a345d..48c061aa 100755 --- a/utils/mergedb.sh +++ b/utils/mergedb.sh @@ -124,6 +124,12 @@ case "$1" in riob18) sed < "$2" > "$tmp1" -e 's/^IOB18\./RIOB18./' ;; + liob18) + sed < "$2" > "$tmp1" -e 's/^IOB18\./LIOB18./' ;; + + mask_liob18) + sed < "$2" > "$tmp1" -e 's/^IOB18\./LIOB18./' ;; + lioi3) sed < "$2" > "$tmp1" -e 's/^IOI3\./LIOI3./' ;; @@ -151,6 +157,15 @@ case "$1" in rioi_tbyteterm) sed < "$2" > "$tmp1" -e 's/^IOI\./RIOI_TBYTETERM./' ;; + lioi) + sed < "$2" > "$tmp1" -e 's/^IOI\./LIOI./' ;; + + lioi_tbytesrc) + sed < "$2" > "$tmp1" -e 's/^IOI\./LIOI_TBYTESRC./' ;; + + lioi_tbyteterm) + sed < "$2" > "$tmp1" -e 's/^IOI\./LIOI_TBYTETERM./' ;; + cmt_top_r_upper_t) sed < "$2" > "$tmp1" -e 's/^CMT_UPPER_T\./CMT_TOP_R_UPPER_T./' ;; diff --git a/utils/utils.tcl b/utils/utils.tcl index 83c8cba0..320384b7 100644 --- a/utils/utils.tcl +++ b/utils/utils.tcl @@ -130,26 +130,70 @@ proc putl {lst} { } proc write_pip_txtdata {filename} { + # Output format (unchanged): TILE PIP SRC_WIRE DST_WIRE NUM_PIPS DIR + # TILE e.g. INT_R_X107Y144 + # PIP e.g. INT_R_X107Y144/INT_R.GND_WIRE->>GFAN1 + # SRC_WIRE e.g. INT_R_X107Y144/GND_WIRE + # DST_WIRE e.g. INT_R_X107Y144/GFAN1 + # NUM_PIPS count of input pips at dst node (used by int_generate.py + # to skip trivial fan-ins via 'pnum == 1' filter) + # DIR IS_DIRECTIONAL bool (1 = directional, 0 = bidirectional) + # + # The kintex7-era implementation iterated foreach net foreach pip and + # called get_tiles/get_wires/get_nodes once per pip — fine on small parts + # but on virtex7 xc7vx485tffg1761 (~12M pips across 1320 nets) that's + # 1-2 h of Tcl overhead per specimen, with most of it spent rediscovering + # information the pip name already encodes. Optimisations: + # 1) Bulk-fetch all pips with one get_pips call. + # 2) Bulk-fetch IS_DIRECTIONAL as a list. + # 3) Parse tile/src/dst names directly from the pip name (saves + # 3*N Tcl object queries; format is "TILE/TILE_TYPE.SRC->{>}DST"). + # 4) Cache num_pips per dst_wire string — same dst is reused by many + # pips so its node-fanin only needs computing once. + # Output format and content are bit-identical to the old implementation + # on parseable pip names; un-parseable pips (none seen on virtex7 so far) + # fall through to the original per-pip query path. puts "FUZ([pwd]): Writing $filename." set fp [open $filename w] - set nets [get_nets -hierarchical] - set nnets [llength $nets] - set neti 0 - foreach net $nets { - incr neti - if {($neti % 100) == 0 } { - puts "FUZ([pwd]): Dumping pips from net $net ($neti / $nnets)" + set all_pips [get_pips -of_objects [get_nets -hierarchical]] + set npips [llength $all_pips] + puts "FUZ([pwd]): bulk-fetched $npips pips, fetching IS_DIRECTIONAL..." + set dir_props [get_property IS_DIRECTIONAL $all_pips] + puts "FUZ([pwd]): writing rows..." + array set dst_wire_to_num_pips {} + set i 0 + foreach pip $all_pips dir_prop $dir_props { + incr i + if {($i % 100000) == 0 } { + puts "FUZ([pwd]): pip $i / $npips" } - foreach pip [get_pips -of_objects $net] { + if {[regexp {^([^/]+)/[^.]+\.(.+?)->>?(.+)$} $pip _ tile src_name dst_name]} { + set src_wire "$tile/$src_name" + set dst_wire "$tile/$dst_name" + } else { + # Fallback for unexpected pip-name formats: slow per-pip query. set tile [get_tiles -of_objects $pip] set src_wire [get_wires -uphill -of_objects $pip] set dst_wire [get_wires -downhill -of_objects $pip] - set num_pips [llength [get_nodes -uphill -of_objects [get_nodes -of_objects $dst_wire]]] - set dir_prop [get_property IS_DIRECTIONAL $pip] - puts $fp "$tile $pip $src_wire $dst_wire $num_pips $dir_prop" } + if {![info exists dst_wire_to_num_pips($dst_wire)]} { + set wireobj [get_wires $dst_wire] + if {$wireobj ne ""} { + set node [get_nodes -of_objects $wireobj] + if {$node ne ""} { + set dst_wire_to_num_pips($dst_wire) [llength [get_nodes -uphill -of_objects $node]] + } else { + set dst_wire_to_num_pips($dst_wire) 0 + } + } else { + set dst_wire_to_num_pips($dst_wire) 0 + } + } + set num_pips $dst_wire_to_num_pips($dst_wire) + puts $fp "$tile $pip $src_wire $dst_wire $num_pips $dir_prop" } close $fp + puts "FUZ([pwd]): wrote $npips rows." } # Generic non-ROI'd generate.tcl template