diff --git a/fuzzers/050-pip-seed/generate.py b/fuzzers/050-pip-seed/generate.py index 0c4d3fbf..06bcdc92 100644 --- a/fuzzers/050-pip-seed/generate.py +++ b/fuzzers/050-pip-seed/generate.py @@ -16,6 +16,10 @@ print("Loading tags from design.txt.") with open("design.txt", "r") as f: for line in f: tile, pip, src, dst, pnum, pdir = line.split() + + if not tile.startswith('INT_'): + continue + _, pip = pip.split(".") _, src = src.split("/") _, dst = dst.split("/") diff --git a/fuzzers/050-pip-seed/generate.tcl b/fuzzers/050-pip-seed/generate.tcl index 391fafed..d63927ee 100644 --- a/fuzzers/050-pip-seed/generate.tcl +++ b/fuzzers/050-pip-seed/generate.tcl @@ -34,29 +34,5 @@ route_design write_checkpoint -force design.dcp -proc write_txtdata {filename} { - puts "FUZ([pwd]): Writing $filename." - set fp [open $filename w] - set all_pips [lsort -unique [get_pips -of_objects [get_nets -hierarchical]]] - # FIXME: getting IOB. Don't think this works correctly - set tiles [get_tiles [regsub -all {CLBL[LM]} [get_tiles -of_objects [get_sites -of_objects [get_pblocks roi]]] INT]] - set ntiles [llength $tiles] - set tilei 0 - foreach tile $tiles { - incr tilei - if {($tilei % 10) == 0 } { - puts "FUZ([pwd]): Dumping pips from tile $tile ($tilei / $ntiles)" - } - foreach pip [filter $all_pips "TILE == $tile"] { - 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 -} - write_bitstream -force design.bit -write_txtdata design.txt +write_pip_txtdata design.txt diff --git a/fuzzers/051-pip-imuxlout-bypalts/generate.sh b/fuzzers/051-pip-imuxlout-bypalts/generate.sh deleted file mode 100644 index d6bf8b49..00000000 --- a/fuzzers/051-pip-imuxlout-bypalts/generate.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -source ${XRAY_GENHEADER} - -${XRAY_VIVADO} -mode batch -source ../generate.tcl - -${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit -python3 ../generate.py - diff --git a/fuzzers/051-pip-imuxlout-bypalts/generate.tcl b/fuzzers/051-pip-imuxlout-bypalts/generate.tcl index d35bb827..64f2865d 100644 --- a/fuzzers/051-pip-imuxlout-bypalts/generate.tcl +++ b/fuzzers/051-pip-imuxlout-bypalts/generate.tcl @@ -141,25 +141,6 @@ for {set idx 0} {$idx < [llength $todo_lines]} {incr idx} { } } -proc write_txtdata {filename tiles} { - puts "Writing $filename." - set fp [open $filename w] - set all_pips [lsort -unique [get_pips -of_objects [get_nets -hierarchical]]] - if {$all_pips != {}} { - puts "Dumping pips." - foreach tile $tiles { - foreach pip [filter $all_pips "TILE == $tile"] { - 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 -} - route_design write_checkpoint -force design.dcp write_bitstream -force design.bit @@ -172,4 +153,4 @@ if {[info exists ::env(QUICK) ] && "$::env(QUICK)" == "Y"} { set tiles [get_tiles [regsub -all {CLBL[LM]} [get_tiles -of_objects [get_sites -of_objects [get_pblocks roi]]] INT]] } -write_txtdata design.txt $tiles +write_pip_txtdata design.txt diff --git a/fuzzers/052-pip-clkin/generate.py b/fuzzers/052-pip-clkin/generate.py index b42f1f80..3fe41e6f 100644 --- a/fuzzers/052-pip-clkin/generate.py +++ b/fuzzers/052-pip-clkin/generate.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -import os, re +import re from prjxray.segmaker import Segmaker @@ -14,6 +14,10 @@ print("Loading tags from design.txt.") with open("design.txt", "r") as f: for line in f: tile, pip, src, dst, pnum, pdir = line.split() + + if not tile.startswith('INT_'): + continue + _, pip = pip.split(".") _, src = src.split("/") _, dst = dst.split("/") diff --git a/fuzzers/052-pip-clkin/generate.sh b/fuzzers/052-pip-clkin/generate.sh deleted file mode 100644 index d6bf8b49..00000000 --- a/fuzzers/052-pip-clkin/generate.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -source ${XRAY_GENHEADER} - -${XRAY_VIVADO} -mode batch -source ../generate.tcl - -${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit -python3 ../generate.py - diff --git a/fuzzers/052-pip-clkin/generate.tcl b/fuzzers/052-pip-clkin/generate.tcl index 8ffbaf76..fbca2ec0 100644 --- a/fuzzers/052-pip-clkin/generate.tcl +++ b/fuzzers/052-pip-clkin/generate.tcl @@ -96,26 +96,7 @@ for {set idx 0} {$idx < [llength $todo_lines]} {incr idx} { } } -proc write_txtdata {filename} { - puts "Writing $filename." - set fp [open $filename w] - set all_pips [lsort -unique [get_pips -of_objects [get_nets -hierarchical]]] - if {$all_pips != {}} { - puts "Dumping pips." - foreach tile [get_tiles [regsub -all {CLBL[LM]} [get_tiles -of_objects [get_sites -of_objects [get_pblocks roi]]] INT]] { - foreach pip [filter $all_pips "TILE == $tile"] { - 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 -} - route_design write_checkpoint -force design.dcp write_bitstream -force design.bit -write_txtdata design.txt +write_pip_txtdata design.txt diff --git a/fuzzers/053-pip-ctrlin/generate.py b/fuzzers/053-pip-ctrlin/generate.py index c101ef32..7dae573b 100644 --- a/fuzzers/053-pip-ctrlin/generate.py +++ b/fuzzers/053-pip-ctrlin/generate.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -import os, re +import re from prjxray.segmaker import Segmaker @@ -14,6 +14,10 @@ print("Loading tags from design.txt.") with open("design.txt", "r") as f: for line in f: tile, pip, src, dst, pnum, pdir = line.split() + + if not tile.startswith('INT_'): + continue + _, pip = pip.split(".") _, src = src.split("/") _, dst = dst.split("/") diff --git a/fuzzers/053-pip-ctrlin/generate.sh b/fuzzers/053-pip-ctrlin/generate.sh deleted file mode 100644 index d6bf8b49..00000000 --- a/fuzzers/053-pip-ctrlin/generate.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -source ${XRAY_GENHEADER} - -${XRAY_VIVADO} -mode batch -source ../generate.tcl - -${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit -python3 ../generate.py - diff --git a/fuzzers/053-pip-ctrlin/generate.tcl b/fuzzers/053-pip-ctrlin/generate.tcl index cd521eed..66f3f5f2 100644 --- a/fuzzers/053-pip-ctrlin/generate.tcl +++ b/fuzzers/053-pip-ctrlin/generate.tcl @@ -61,26 +61,7 @@ for {set idx 0} {$idx < [llength $todo_lines]} {incr idx} { route_via $mynet "$tile/$src_wire $tile/$dst_wire" } -proc write_txtdata {filename} { - puts "Writing $filename." - set fp [open $filename w] - set all_pips [lsort -unique [get_pips -of_objects [get_nets -hierarchical]]] - if {$all_pips != {}} { - puts "Dumping pips." - foreach tile [get_tiles [regsub -all {CLBL[LM]} [get_tiles -of_objects [get_sites -of_objects [get_pblocks roi]]] INT]] { - foreach pip [filter $all_pips "TILE == $tile"] { - 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 -} - route_design write_checkpoint -force design.dcp write_bitstream -force design.bit -write_txtdata design.txt +write_pip_txtdata design.txt diff --git a/fuzzers/055-pip-gnd/generate.py b/fuzzers/055-pip-gnd/generate.py index fd499ecd..adc9946a 100644 --- a/fuzzers/055-pip-gnd/generate.py +++ b/fuzzers/055-pip-gnd/generate.py @@ -16,6 +16,10 @@ print("Loading tags from design.txt.") with open("design.txt", "r") as f: for line in f: tile, pip, src, dst, pnum, pdir = line.split() + + if not tile.startswith('INT_'): + continue + _, pip = pip.split(".") _, src = src.split("/") _, dst = dst.split("/") diff --git a/fuzzers/055-pip-gnd/generate.tcl b/fuzzers/055-pip-gnd/generate.tcl index a0b1ee42..136ca2c8 100644 --- a/fuzzers/055-pip-gnd/generate.tcl +++ b/fuzzers/055-pip-gnd/generate.tcl @@ -62,26 +62,7 @@ for {set idx 0} {$idx < [llength $todo_lines]} {incr idx} { route_via $mynet "$tile/$src_wire $tile/$dst_wire" } -proc write_txtdata {filename} { - puts "Writing $filename." - set fp [open $filename w] - set all_pips [lsort -unique [get_pips -of_objects [get_nets -hierarchical]]] - if {$all_pips != {}} { - puts "Dumping pips." - foreach tile [get_tiles [regsub -all {CLBL[LM]} [get_tiles -of_objects [get_sites -of_objects [get_pblocks roi]]] INT]] { - foreach pip [filter $all_pips "TILE == $tile"] { - 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 -} - route_design write_checkpoint -force design.dcp write_bitstream -force design.bit -write_txtdata design.txt +write_pip_txtdata design.txt diff --git a/fuzzers/056-pip-rem/generate.sh b/fuzzers/056-pip-rem/generate.sh deleted file mode 100644 index 83dbeca4..00000000 --- a/fuzzers/056-pip-rem/generate.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -FUZDIR=$PWD -source ${XRAY_GENHEADER} - -${XRAY_VIVADO} -mode batch -source $FUZDIR/generate.tcl - -${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit -python3 $FUZDIR/generate.py - diff --git a/fuzzers/056-pip-rem/generate.tcl b/fuzzers/056-pip-rem/generate.tcl index 05aba756..0539ef48 100644 --- a/fuzzers/056-pip-rem/generate.tcl +++ b/fuzzers/056-pip-rem/generate.tcl @@ -105,25 +105,6 @@ proc route_todo {} { } } -proc write_txtdata {filename} { - puts "Writing $filename." - set fp [open $filename w] - set all_pips [lsort -unique [get_pips -of_objects [get_nets -hierarchical]]] - if {$all_pips != {}} { - puts "Dumping pips." - foreach tile [get_tiles [regsub -all {CLBL[LM]} [get_tiles -of_objects [get_sites -of_objects [get_pblocks roi]]] INT]] { - foreach pip [filter $all_pips "TILE == $tile"] { - 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 -} - proc run {} { build_basic route_todo @@ -131,7 +112,7 @@ proc run {} { write_checkpoint -force design.dcp write_bitstream -force design.bit - write_txtdata design.txt + write_pip_txtdata design.txt } run diff --git a/fuzzers/057-pip-bi/Makefile b/fuzzers/057-pip-bi/Makefile index 1664b3ad..0052906d 100644 --- a/fuzzers/057-pip-bi/Makefile +++ b/fuzzers/057-pip-bi/Makefile @@ -1,5 +1,4 @@ MAKETODO_FLAGS=--re ".*" -TODO_N=5 export FUZDIR=$(shell pwd) PIPLIST_TCL=$(FUZDIR)/bipiplist.tcl PIP_TYPE?=bipips_int diff --git a/fuzzers/057-pip-bi/generate.sh b/fuzzers/057-pip-bi/generate.sh deleted file mode 100644 index 08385103..00000000 --- a/fuzzers/057-pip-bi/generate.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -source ${XRAY_GENHEADER} - -while ! ${XRAY_VIVADO} -mode batch -source ../generate.tcl; do - rm -rf design* -done - -${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit -python3 ../generate.py - diff --git a/fuzzers/060-bram-cascades/generate.sh b/fuzzers/060-bram-cascades/generate.sh deleted file mode 100644 index c83a1b3c..00000000 --- a/fuzzers/060-bram-cascades/generate.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -set -ex - -FUZDIR=$PWD -source ${XRAY_GENHEADER} - -echo '`define SEED 32'"'h$(echo $1 | md5sum | cut -c1-8)" > setseed.vh - -${XRAY_VIVADO} -mode batch -source $FUZDIR/generate.tcl | tee vivado_stdout.log | grep "FUZ[^:]\+:" - -${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit -python3 $FUZDIR/generate.py - diff --git a/fuzzers/int_generate.py b/fuzzers/int_generate.py index d073b949..b19c3ec4 100644 --- a/fuzzers/int_generate.py +++ b/fuzzers/int_generate.py @@ -41,6 +41,10 @@ print("Loading tags from %s." % args.design) with open(args.design, "r") as f: for line in f: tile, pip, src, dst, pnum, pdir = line.split() + + if not tile.startswith('INT_'): + continue + _, pip = pip.split(".") _, src = src.split("/") _, dst = dst.split("/") diff --git a/utils/utils.tcl b/utils/utils.tcl index fd98035c..cead2bab 100644 --- a/utils/utils.tcl +++ b/utils/utils.tcl @@ -108,3 +108,26 @@ proc lintersect {lst1 lst2} { proc putl {lst} { foreach line $lst {puts $line} } + +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 +}