Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP Support Kintex high speed IO banks #1867

Closed
wants to merge 105 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
f989371
Add 030-iob18 fuzzer for review
jrrk2 Feb 7, 2022
e9f20e9
add fuzzers/005-tilegrid/iob18, fix fuzzers/030-iob18 to be able to b…
hansfbaier Feb 17, 2022
e14160c
fuzzers/035-iob-ilogic/generate.tcl: remove duplicate license headers
hansfbaier Feb 17, 2022
f715a5b
actually integrate data from fuzzers/005-tilegrid/iob18 in tilegrid_t…
hansfbaier Feb 18, 2022
3288427
add new fuzzer fuzzers/005-tilegrid/ioi18
hansfbaier Feb 19, 2022
0eb288b
fuzzers/005-tilegrid/Makefile: add missing deps and cleaners for iob1…
hansfbaier Feb 19, 2022
ed2b2a4
add new fuzzer fuzzers/005-tilegrid/iob18_int
hansfbaier Feb 19, 2022
0de0aab
005-tilegrid: also propagate the RIO*_SING into tilegrid.json
hansfbaier Feb 20, 2022
8b7ab39
fix typo in tools/segmatch.cc
hansfbaier Feb 21, 2022
cac7c23
030-iob18: remove unused IN_TERM_ALLOWED
hansfbaier Feb 21, 2022
d3f22ad
030-iob18: generate.py: tidy unreachable code
hansfbaier Feb 21, 2022
b7374ee
001-part-yaml: include high performance banks also in part.yaml/json
hansfbaier Feb 23, 2022
c5cce20
030-iob18: fix dframe
hansfbaier Mar 1, 2022
bb77ef8
030-iob18: fix result filemames
hansfbaier Mar 1, 2022
1f30fc8
030-iob18: remove code for IN_TERM, which does not exist on high spee…
hansfbaier Mar 1, 2022
bddb74b
005-tilegrid: activate ioi18 fuzzer
hansfbaier Mar 7, 2022
8d08dd7
030-iob18: go back to dframe 26
hansfbaier Mar 9, 2022
0a9ad18
005-tilegrid/util.py: better warning
hansfbaier Mar 9, 2022
b80d8ee
utils/mergedb.sh: add modes for high speed banks
hansfbaier Mar 10, 2022
4368981
fix typos in error messages
hansfbaier Mar 11, 2022
df63b31
settings/kintex7.sh: ROI must include high speed IO banks on the righ…
hansfbaier Mar 11, 2022
41391c4
add fuzzers/030-iob18/minitest
hansfbaier Mar 11, 2022
13e3df8
settings/kintex7.sh: add high speed IOBs to XRAY_ROI
hansfbaier Mar 13, 2022
2797af8
IOB18 does not have IN_TERM
hansfbaier Mar 13, 2022
dc2d602
030-iob18: generate DRIVE tags
hansfbaier Mar 17, 2022
73710d5
correct 030-iob18/README.md
hansfbaier Mar 17, 2022
66697b3
030-iob18: add SSTL12 IOSTANDARD
hansfbaier Mar 17, 2022
05f4b30
030-iob18: temporarily disable LVDS, which still has errors
hansfbaier Mar 18, 2022
0155cca
Revert "030-iob18: temporarily disable LVDS, which still has errors"
hansfbaier Mar 18, 2022
df793ab
030-iob18: fix number of runs/candidates
hansfbaier Mar 18, 2022
eac2b5b
030-iob18: get rid of IOB_Y1.LVDS tags, because they are empty and up…
hansfbaier Mar 19, 2022
bd75577
fuzzers/000-init-db/Makefile: add segbits_riob18
hansfbaier Mar 19, 2022
f45f112
port fuzzers to high speed banks: 035-iob18-ilogic 035a-iob18-idelay …
hansfbaier Mar 23, 2022
c34e9be
fuzzers/071-ppips: also generate ppips files for high speed banks
hansfbaier Mar 28, 2022
b12b63e
fuzzers/037-iob18-ppips needs 120 specimens
hansfbaier Mar 30, 2022
5809b3d
030-iob18: IO standards for DDR3
hansfbaier Mar 19, 2022
8f36af3
030-iob18: find IDELAYCTRL only for high speed banks
hansfbaier Apr 1, 2022
df13b85
030-iob: find IDELAYCTRL only for high range banks
hansfbaier Apr 1, 2022
d8a74d9
030-iob18: resolve bit filter TODO
hansfbaier Apr 1, 2022
4c88ae4
030-iob18: fix comment
hansfbaier Apr 1, 2022
0a0a366
030-iob18: high speed banks have no STEPDOWN bit
hansfbaier Apr 1, 2022
7b72f93
030-iob18: DIFF_TERM only works for LVDS
hansfbaier Apr 1, 2022
20146b0
030-iob18: fix check_results.py
hansfbaier Apr 5, 2022
001a469
030-iob18: format for better readability
hansfbaier Apr 5, 2022
52f70b9
settings/kintex7.sh: RIOI_X43Y9 is also an irregular tile. Let's hope…
hansfbaier Apr 10, 2022
1f294ff
030-iob18: iostandards.py: remove io standards which are not supporte…
hansfbaier Apr 11, 2022
c54f3f8
030-iob18: fix iostandards
hansfbaier Apr 11, 2022
9dae008
settings/kintex7.sh: enlarge ROI for BRAMs to get enough block RAMs f…
hansfbaier Apr 21, 2022
931e856
Add 030-iob18 fuzzer for review
jrrk2 Feb 7, 2022
2465e91
add fuzzers/005-tilegrid/iob18, fix fuzzers/030-iob18 to be able to b…
hansfbaier Feb 17, 2022
dce4f68
fuzzers/035-iob-ilogic/generate.tcl: remove duplicate license headers
hansfbaier Feb 17, 2022
0d7798b
actually integrate data from fuzzers/005-tilegrid/iob18 in tilegrid_t…
hansfbaier Feb 18, 2022
5d7fe3f
add new fuzzer fuzzers/005-tilegrid/ioi18
hansfbaier Feb 19, 2022
8e8e53b
fuzzers/005-tilegrid/Makefile: add missing deps and cleaners for iob1…
hansfbaier Feb 19, 2022
a8b57ec
add new fuzzer fuzzers/005-tilegrid/iob18_int
hansfbaier Feb 19, 2022
45dfe4d
005-tilegrid: also propagate the RIO*_SING into tilegrid.json
hansfbaier Feb 20, 2022
812d193
fix typo in tools/segmatch.cc
hansfbaier Feb 21, 2022
491b74d
030-iob18: remove unused IN_TERM_ALLOWED
hansfbaier Feb 21, 2022
c2904a5
030-iob18: generate.py: tidy unreachable code
hansfbaier Feb 21, 2022
272d73e
001-part-yaml: include high performance banks also in part.yaml/json
hansfbaier Feb 23, 2022
6b95d74
030-iob18: fix dframe
hansfbaier Mar 1, 2022
83b33de
030-iob18: fix result filemames
hansfbaier Mar 1, 2022
54f3b68
030-iob18: remove code for IN_TERM, which does not exist on high spee…
hansfbaier Mar 1, 2022
f5b1d9d
005-tilegrid: activate ioi18 fuzzer
hansfbaier Mar 7, 2022
f4bbd09
030-iob18: go back to dframe 26
hansfbaier Mar 9, 2022
13117a2
005-tilegrid/util.py: better warning
hansfbaier Mar 9, 2022
7103937
utils/mergedb.sh: add modes for high speed banks
hansfbaier Mar 10, 2022
2c0b9f1
fix typos in error messages
hansfbaier Mar 11, 2022
1c15f0e
settings/kintex7.sh: ROI must include high speed IO banks on the righ…
hansfbaier Mar 11, 2022
e2c02dd
add fuzzers/030-iob18/minitest
hansfbaier Mar 11, 2022
06be6c4
settings/kintex7.sh: add high speed IOBs to XRAY_ROI
hansfbaier Mar 13, 2022
2cbbb47
IOB18 does not have IN_TERM
hansfbaier Mar 13, 2022
e89a6ce
030-iob18: generate DRIVE tags
hansfbaier Mar 17, 2022
4681366
correct 030-iob18/README.md
hansfbaier Mar 17, 2022
c0ccbe3
030-iob18: add SSTL12 IOSTANDARD
hansfbaier Mar 17, 2022
db8a1f3
030-iob18: temporarily disable LVDS, which still has errors
hansfbaier Mar 18, 2022
cd28505
Revert "030-iob18: temporarily disable LVDS, which still has errors"
hansfbaier Mar 18, 2022
d7b1b8d
030-iob18: fix number of runs/candidates
hansfbaier Mar 18, 2022
3fa74bb
030-iob18: get rid of IOB_Y1.LVDS tags, because they are empty and up…
hansfbaier Mar 19, 2022
38cdffb
fuzzers/000-init-db/Makefile: add segbits_riob18
hansfbaier Mar 19, 2022
1a3c19b
port fuzzers to high speed banks: 035-iob18-ilogic 035a-iob18-idelay …
hansfbaier Mar 23, 2022
258714f
fuzzers/071-ppips: also generate ppips files for high speed banks
hansfbaier Mar 28, 2022
5373642
fuzzers/037-iob18-ppips needs 120 specimens
hansfbaier Mar 30, 2022
950b839
030-iob18: IO standards for DDR3
hansfbaier Mar 19, 2022
2fa5da6
030-iob18: find IDELAYCTRL only for high speed banks
hansfbaier Apr 1, 2022
475a25d
030-iob: find IDELAYCTRL only for high range banks
hansfbaier Apr 1, 2022
1c07a20
030-iob18: resolve bit filter TODO
hansfbaier Apr 1, 2022
d2f1e30
030-iob18: fix comment
hansfbaier Apr 1, 2022
66bc886
030-iob18: high speed banks have no STEPDOWN bit
hansfbaier Apr 1, 2022
b8713c7
030-iob18: DIFF_TERM only works for LVDS
hansfbaier Apr 1, 2022
5deda9a
030-iob18: fix check_results.py
hansfbaier Apr 5, 2022
4a4c461
030-iob18: format for better readability
hansfbaier Apr 5, 2022
c237a91
settings/kintex7.sh: RIOI_X43Y9 is also an irregular tile. Let's hope…
hansfbaier Apr 10, 2022
b839934
030-iob18: iostandards.py: remove io standards which are not supporte…
hansfbaier Apr 11, 2022
0adf4a3
030-iob18: fix iostandards
hansfbaier Apr 11, 2022
84f23c6
settings/kintex7.sh: enlarge ROI for BRAMs to get enough block RAMs f…
hansfbaier Apr 21, 2022
23f5138
iob18: rewrite filtering to match iob18 banks
hansfbaier Jun 13, 2022
041470e
Merge branch 'kintex-iob18' of github.com:hansfbaier/prjxray into kin…
hansfbaier Jun 13, 2022
a6065a1
delete 035b-iob18-iserdes fuzzer because its results are mainly
hansfbaier Jun 14, 2022
20c5929
remove 035-iob18-ilogic fuzzer because its results are mainly identical
hansfbaier Jun 14, 2022
75eb82a
remove iob18-ilogic and iob18-iserdes fuzzer from Makefile also
hansfbaier Jun 14, 2022
1066813
fix 037-iob18-pips
hansfbaier Jul 4, 2022
fa1ed32
039-hclk-config: also generate segbits_hclk_ioi.db
hansfbaier Jul 4, 2022
79d8478
add 047-hclk-ioi18-pips fuzzer
hansfbaier Jul 5, 2022
95a6eae
Merge remote-tracking branch 'upstream/master' into kintex-iob18
hansfbaier Sep 19, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions fuzzers/000-init-db/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ DB_SIMPLE=\
segbits_cmt_top_r_lower_b \
segbits_rioi3 \
segbits_riob33 \
segbits_riob18 \
segbits_hclk_cmt \
segbits_hclk_ioi3 \

Expand Down
14 changes: 7 additions & 7 deletions fuzzers/001-part-yaml/generate.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ proc extract_iobanks {filename} {
set sample_site [lindex [get_sites -of $iobank] 0]
if {[llength $sample_site] == 0} continue
set clock_region [get_property CLOCK_REGION $sample_site]
foreach tile [get_tiles -filter {TYPE=~HCLK_IOI3}] {
foreach tile [concat [get_tiles -filter {TYPE=~HCLK_IOI3}] [get_tiles -filter {TYPE=~HCLK_IOI}]] {
set tile_sites [get_sites -of_object $tile]
if {[llength $tile_sites] == 0} continue
set hclk_tile_clock_region [get_property CLOCK_REGION [lindex [get_sites -of_object $tile] 0]]
Expand All @@ -29,13 +29,13 @@ create_project -force -part $::env(XRAY_PART) design design
read_verilog ../../top.v
synth_design -top top

set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_00) IOSTANDARD LVCMOS33" [get_ports clk]
set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_01) IOSTANDARD LVCMOS33" [get_ports di]
set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_02) IOSTANDARD LVCMOS33" [get_ports do]
set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_03) IOSTANDARD LVCMOS33" [get_ports stb]
set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_00) IOSTANDARD LVCMOS18" [get_ports clk]
set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_01) IOSTANDARD LVCMOS18" [get_ports di]
set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_02) IOSTANDARD LVCMOS18" [get_ports do]
set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_03) IOSTANDARD LVCMOS18" [get_ports stb]

set_property CFGBVS VCCO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]
set_property CFGBVS GND [current_design]
set_property CONFIG_VOLTAGE 1.8 [current_design]
set_param tcl.collectionResultDisplayLimit 0

set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets clk_IBUF]
Expand Down
22 changes: 22 additions & 0 deletions fuzzers/005-tilegrid/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,13 @@ endif

# Kintex7 only fuzzers
ifeq (${XRAY_DATABASE}, kintex7)
# xc7k420t/xc7k480t have no high performance banks
ifneq (${XRAY_FABRIC}, $(filter ${XRAY_FABRIC}, xc7k480t))
TILEGRID_TDB_DEPENDENCIES += iob18/$(BUILD_FOLDER)/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += iob18_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += ioi18/$(BUILD_FOLDER)/segbits_tilegrid.tdb
endif

# These kintex parts give an empty design
ifneq (${XRAY_FABRIC}, $(filter ${XRAY_FABRIC}, xc7k160t xc7k325t xc7k480t))
TILEGRID_TDB_DEPENDENCIES += orphan_int_column/$(BUILD_FOLDER)/segbits_tilegrid.tdb
Expand Down Expand Up @@ -85,12 +92,21 @@ cfg/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID}
iob/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID}
cd iob && $(MAKE)

iob18/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID}
cd iob18 && $(MAKE)

iob_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID}
cd iob_int && $(MAKE)

iob18_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID}
cd iob18_int && $(MAKE)

ioi/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID}
cd ioi && $(MAKE)

ioi18/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID}
cd ioi18 && $(MAKE)

mmcm/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID}
cd mmcm && $(MAKE)

Expand Down Expand Up @@ -177,8 +193,11 @@ clean:
cd clb_int && $(MAKE) clean
cd cfg && $(MAKE) clean
cd iob && $(MAKE) clean
cd iob18 && $(MAKE) clean
cd iob_int && $(MAKE) clean
cd iob18_int && $(MAKE) clean
cd ioi && $(MAKE) clean
cd ioi18 && $(MAKE) clean
cd mmcm && $(MAKE) clean
cd pll && $(MAKE) clean
cd ps7_int && $(MAKE) clean
Expand Down Expand Up @@ -208,8 +227,11 @@ clean_part:
cd clb_int && $(MAKE) clean_part
cd cfg && $(MAKE) clean_part
cd iob && $(MAKE) clean_part
cd iob18 && $(MAKE) clean_part
cd iob_int && $(MAKE) clean_part
cd iob18_int && $(MAKE) clean_part
cd ioi && $(MAKE) clean_part
cd ioi18 && $(MAKE) clean_part
cd mmcm && $(MAKE) clean_part
cd pll && $(MAKE) clean_part
cd ps7_int && $(MAKE) clean_part
Expand Down
3 changes: 3 additions & 0 deletions fuzzers/005-tilegrid/add_tdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,9 @@ def run(fn_in, fn_out, verbose=False):
int_frames, int_words = localutil.get_int_params()
tdb_fns = [
("iob", 42, 4),
("iob18", 42, 4),
("ioi", 42, 4),
("ioi18", 42, 4),
("mmcm", 30, 49),
("pll", 30, 27),
("monitor", 30, 101),
Expand All @@ -112,6 +114,7 @@ def run(fn_in, fn_out, verbose=False):
("gtp_channel", 32, 22),
("clb_int", int_frames, int_words),
("iob_int", int_frames, int_words),
("iob18_int", int_frames, int_words),
("bram_int", int_frames, int_words),
("dsp_int", int_frames, int_words),
("fifo_int", int_frames, int_words),
Expand Down
4 changes: 2 additions & 2 deletions fuzzers/005-tilegrid/generate_full.py
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ def propagate_IOB_SING(database, tiles_by_grid):
if tile in seen_iobs:
continue

if database[tile]["type"] not in ["LIOB33", "RIOB33"]:
if database[tile]["type"] not in ["LIOB33", "RIOB33", "RIOB18"]:
continue

while True:
Expand Down Expand Up @@ -439,7 +439,7 @@ def propagate_IOI_SING(database, tiles_by_grid):
if tile in seen_iois:
continue

if database[tile]["type"] not in ["LIOI3", "RIOI3"]:
if database[tile]["type"] not in ["LIOI3", "RIOI3", "RIOI"]:
continue

while True:
Expand Down
10 changes: 10 additions & 0 deletions fuzzers/005-tilegrid/iob18/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Copyright (C) 2017-2020 The Project X-Ray Authors.
#
# Use of this source code is governed by a ISC-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/ISC
#
# SPDX-License-Identifier: ISC
N ?= 30
GENERATE_ARGS?="--oneval 1 --design params.csv --dframe 26 --dword 0"
include ../fuzzaddr/common.mk
86 changes: 86 additions & 0 deletions fuzzers/005-tilegrid/iob18/generate.tcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Copyright (C) 2017-2020 The Project X-Ray Authors
#
# Use of this source code is governed by a ISC-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/ISC
#
# SPDX-License-Identifier: ISC
source "$::env(XRAY_DIR)/utils/utils.tcl"

proc make_io_pin_sites {} {
# get all possible IOB pins
foreach pad [get_package_pins -filter "IS_GENERAL_PURPOSE == 1"] {
set site [get_sites -of_objects $pad]
if {[llength $site] == 0} {
continue
}
if [string match IOB18* [get_property SITE_TYPE $site]] {
dict append io_pin_sites $site $pad
}
}
return $io_pin_sites
}

proc load_pin_lines {} {
# IOB_X0Y103 clk input
# IOB_X0Y129 do[0] output

set fp [open "params.csv" r]
gets $fp line

set pin_lines {}
for {gets $fp line} {$line != ""} {gets $fp line} {
lappend pin_lines [split $line ","]
}
close $fp
return $pin_lines
}

proc loc_pins {} {
set pin_lines [load_pin_lines]
set io_pin_sites [make_io_pin_sites]

puts "Looping"
for {set idx 0} {$idx < [llength $pin_lines]} {incr idx} {
set line [lindex $pin_lines $idx]
puts "$line"

set site_str [lindex $line 2]
set pin_str [lindex $line 3]

# Have: site
# Want: pin for site

set site [get_sites $site_str]
set pad_bel [get_bels -of_objects $site -filter {TYPE =~ PAD && NAME =~ IOB_*}]
# set port [get_ports -of_objects $site]
set port [get_ports $pin_str]
set tile [get_tiles -of_objects $site]

set pin [dict get $io_pin_sites $site]
set_property -dict "PACKAGE_PIN $pin IOSTANDARD LVCMOS18" $port
}
}

proc run {} {
create_project -force -part $::env(XRAY_PART) design design
read_verilog top.v
synth_design -top top

loc_pins

set_property CFGBVS GND [current_design]
set_property CONFIG_VOLTAGE 1.8 [current_design]
set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design]
set_property IS_ENABLED 0 [get_drc_checks {REQP-79}]
set_property IS_ENABLED 0 [get_drc_checks {NSTD-1}]
set_property IS_ENABLED 0 [get_drc_checks {UCIO-1}]

place_design
route_design

write_checkpoint -force design.dcp
write_bitstream -force design.bit
}

run
84 changes: 84 additions & 0 deletions fuzzers/005-tilegrid/iob18/top.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright (C) 2017-2020 The Project X-Ray Authors.
#
# Use of this source code is governed by a ISC-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/ISC
#
# SPDX-License-Identifier: ISC
import os
import random
random.seed(int(os.getenv("SEED"), 16))
from prjxray import util
from prjxray.db import Database


def gen_sites():
'''
IOB18S: main IOB of a diff pair
IOB18M: secondary IOB of a diff pair
IOB18: not a diff pair. Relatively rare (at least in ROI...2 of them?)
Focus on IOB18S to start
'''
db = Database(util.get_db_root(), util.get_part())
grid = db.grid()
for tile_name in sorted(grid.tiles()):
loc = grid.loc_of_tilename(tile_name)
gridinfo = grid.gridinfo_at_loc(loc)

for site_name, site_type in gridinfo.sites.items():
if site_type == 'IOB18S':
yield tile_name, site_name


def write_params(params):
pinstr = 'tile,val,site,pin\n'
for tile, (site, val, pin) in sorted(params.items()):
pinstr += '%s,%s,%s,%s\n' % (tile, val, site, pin)
open('params.csv', 'w').write(pinstr)


def run():
sites = list(gen_sites())
print(
'''
`define N_DI {}

module top(input wire [`N_DI-1:0] di);
wire [`N_DI-1:0] di_buf;
'''.format(len(sites)))

params = {}
print('''
(* KEEP, DONT_TOUCH *)
LUT6 dummy_lut();''')

for idx, ((tile_name, site_name), isone) in enumerate(zip(
sites, util.gen_fuzz_states(len(sites)))):
params[tile_name] = (site_name, isone, "di[%u]" % idx)
print(
'''
(* KEEP, DONT_TOUCH *)
IBUF #(
) ibuf_{site_name} (
.I(di[{idx}]),
.O(di_buf[{idx}])
);'''.format(site_name=site_name, idx=idx))

if isone:
print(
'''
(* KEEP, DONT_TOUCH *)
PULLUP #(
) pullup_{site_name} (
.O(di[{idx}])
);'''.format(site_name=site_name, idx=idx))

print("endmodule")
write_params(params)


if __name__ == '__main__':
run()
10 changes: 10 additions & 0 deletions fuzzers/005-tilegrid/iob18_int/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Copyright (C) 2017-2020 The Project X-Ray Authors.
#
# Use of this source code is governed by a ISC-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/ISC
#
# SPDX-License-Identifier: ISC
N ?= 16
GENERATE_ARGS?="--oneval 0 --design params.csv --dframe 14 --dword 1"
include ../fuzzaddr/common.mk
Loading