From 2ce7ea13810c0541a013706caa2c4054e1939fcc Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Wed, 14 Dec 2022 05:15:48 +0700 Subject: [PATCH 1/5] riob18: fix IBUF_LOW_PWR_SUPPORTED Signed-off-by: Hans Baier --- fuzzers/030-iob18/generate.py | 2 +- utils/bit2fasm.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fuzzers/030-iob18/generate.py b/fuzzers/030-iob18/generate.py index fc0af32c4..a4ac6356e 100644 --- a/fuzzers/030-iob18/generate.py +++ b/fuzzers/030-iob18/generate.py @@ -39,7 +39,7 @@ def drives_for_iostandard(iostandard): return drives STEPDOWN_IOSTANDARDS = LVCMOS + SSTL -IBUF_LOW_PWR_SUPPORTED = LVDS + DIFF_SSTL +IBUF_LOW_PWR_SUPPORTED = LVDS + SSTL ONLY_DIFF_IOSTANDARDS = LVDS diff --git a/utils/bit2fasm.py b/utils/bit2fasm.py index 103b377ef..859ec1096 100755 --- a/utils/bit2fasm.py +++ b/utils/bit2fasm.py @@ -91,7 +91,7 @@ def main(): '--part', help="Name of part being targetted.", **part_kwargs) parser.add_argument( '--bitread', - help="Name of part being targetted.", + help="bitread tool to to use", default=default_bitread) parser.add_argument( '--frame_range', help="Frame range to use with bitread.") From 7800bcb4947b61161bddf564c6a2e81806d74417 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Wed, 14 Dec 2022 10:04:39 +0700 Subject: [PATCH 2/5] 030-iob18: fix Vref conflict warnigns by assigning the correct Vref Signed-off-by: Hans Baier --- fuzzers/030-iob18/top.py | 17 ++++++++++------- fuzzers/030-iob18/write_io_banks.tcl | 6 +++++- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/fuzzers/030-iob18/top.py b/fuzzers/030-iob18/top.py index e8f39805d..6944e1ca3 100644 --- a/fuzzers/030-iob18/top.py +++ b/fuzzers/030-iob18/top.py @@ -65,6 +65,15 @@ def run(): "SSTL12": DIFF_SSTL12, } + vref_map = { + "SSTL12": .600, + "SSTL135": .675, + "SSTL15": .75, + "DIFF_SSTL12": .600, + "DIFF_SSTL135": .675, + "DIFF_SSTL15": .75, + } + only_diff_map = { "LVDS": ["LVDS"], } @@ -99,13 +108,7 @@ def run(): for iobank in iobanks: iostandard = random.choice(iostandards) if iostandard in SSTL: - params['INTERNAL_VREF'][iobank] = random.choice( - ( - .600, - .675, - .75, - .90, - )) + params['INTERNAL_VREF'][iobank] = vref_map[iostandard] iostandard_map[iobank] = iostandard diff --git a/fuzzers/030-iob18/write_io_banks.tcl b/fuzzers/030-iob18/write_io_banks.tcl index eac330dab..c433e5e8e 100644 --- a/fuzzers/030-iob18/write_io_banks.tcl +++ b/fuzzers/030-iob18/write_io_banks.tcl @@ -11,7 +11,11 @@ open_io_design -name io_1 set fp [open "iobanks.txt" "w"] foreach iobank [get_iobanks] { foreach site [get_sites -of $iobank] { - puts $fp "$site,$iobank" + # we only care about the high performance banks here + # and those are numbered 32, 33, 34... + if {[string match "3*" $iobank]} { + puts $fp "$site,$iobank" + } } } close $fp From 8ce3922f8d788119c2f64157b00e7102ebbb38fd Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Fri, 16 Dec 2022 09:22:32 +0700 Subject: [PATCH 3/5] 030-iob18: add manually discovered RIOB18.IOB_Y0.SSTL*.IN feature, reduces specimens to 40 Signed-off-by: Hans Baier --- fuzzers/030-iob18/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fuzzers/030-iob18/Makefile b/fuzzers/030-iob18/Makefile index f90dbfd95..952cefd67 100644 --- a/fuzzers/030-iob18/Makefile +++ b/fuzzers/030-iob18/Makefile @@ -5,7 +5,7 @@ # https://opensource.org/licenses/ISC # # SPDX-License-Identifier: ISC -N := 80 +N := 40 SPECIMENS_DEPS := build/iobanks.txt include ../fuzzer.mk @@ -23,6 +23,8 @@ build/segbits_riob18.db: build/segbits_riob18.rdb process_rdb.py bits.dbf sed '/IOB18.IOB_Y1.LVDS/d' -i build/segbits_riob18.rdb 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 $@ + echo 'RIOB18.IOB_Y0.SSTL12_SSTL135_SSTL15.IN !38_126 39_127' >> $@ + sort -o $@ $@ ${XRAY_MASKMERGE} build/mask_riob18.db $$(find -name segdata_riob18.txt) build/segbits_hclk_ioi.rdb: $(SPECIMENS_OK) From 9512609ff620e63cc13de54299f1e5f7d99bf41b Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Fri, 16 Dec 2022 17:00:59 +0700 Subject: [PATCH 4/5] write_io_banks.tcl: use a reliable way to distinguish high performance banks Signed-off-by: Hans Baier --- fuzzers/030-iob18/write_io_banks.tcl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fuzzers/030-iob18/write_io_banks.tcl b/fuzzers/030-iob18/write_io_banks.tcl index c433e5e8e..aca8c1d01 100644 --- a/fuzzers/030-iob18/write_io_banks.tcl +++ b/fuzzers/030-iob18/write_io_banks.tcl @@ -12,8 +12,7 @@ set fp [open "iobanks.txt" "w"] foreach iobank [get_iobanks] { foreach site [get_sites -of $iobank] { # we only care about the high performance banks here - # and those are numbered 32, 33, 34... - if {[string match "3*" $iobank]} { + if {[string match "BT_HIGH_PERFORMANCE" [get_property BANK_TYPE $iobank]]} { puts $fp "$site,$iobank" } } From 3562cb8efd6971df93ce520c435d71b6f0c5532a Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Fri, 16 Dec 2022 17:22:56 +0700 Subject: [PATCH 5/5] 030-iob18: add issue link to hack used in Makefile Signed-off-by: Hans Baier --- fuzzers/030-iob18/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/fuzzers/030-iob18/Makefile b/fuzzers/030-iob18/Makefile index 952cefd67..33120252e 100644 --- a/fuzzers/030-iob18/Makefile +++ b/fuzzers/030-iob18/Makefile @@ -23,6 +23,7 @@ build/segbits_riob18.db: build/segbits_riob18.rdb process_rdb.py bits.dbf sed '/IOB18.IOB_Y1.LVDS/d' -i build/segbits_riob18.rdb 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' >> $@ sort -o $@ $@ ${XRAY_MASKMERGE} build/mask_riob18.db $$(find -name segdata_riob18.txt)