Large refactoring (mostly for separate left/right DBs)

Signed-off-by: Clifford Wolf <clifford@clifford.at>
Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
This commit is contained in:
Clifford Wolf 2017-11-13 01:50:26 +01:00 committed by Tim 'mithro' Ansell
parent 79df0e2b2b
commit 9b61d5bd85
11 changed files with 84 additions and 64 deletions

View File

@ -51,7 +51,7 @@ for record in tiles:
if tile_type in ["CLBLL_L", "CLBLL_R", "CLBLM_L", "CLBLM_R"]:
segment_name = "SEG_" + tile_name
segtype = re.sub(r"_[lr]$", "", tile_type.lower())
segtype = tile_type.lower()
database["segments"][segment_name] = dict()
database["segments"][segment_name]["tiles"] = [tile_name]
database["segments"][segment_name]["type"] = segtype

View File

@ -3,17 +3,15 @@ N := 1
SPECIMENS := $(addprefix specimen_,$(shell seq -f '%03.0f' $(N)))
SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS))
database: database/clbll database/clblm
database: $(SPECIMENS_OK)
../../tools/segmatch -o seg_clbll.segbits $(addsuffix /segdata_clbll_[lr]_[012].txt,$(SPECIMENS))
../../tools/segmatch -o seg_clblm.segbits $(addsuffix /segdata_clblm_[lr]_[012].txt,$(SPECIMENS))
pushdb: pushdb/clbll pushdb/clblm
database/%: $(SPECIMENS_OK)
../../tools/segmatch -o seg_$(notdir $@).segbits \
$(addsuffix /segdata_$(notdir $@)_[012].txt,$(SPECIMENS))
pushdb/%:
bash ../../utils/mergedb.sh seg_$(notdir $@).segbits \
../../database/$(XRAY_DATABASE)/seg_$(notdir $@).segbits
pushdb:
bash ../../utils/mergedb.sh clbll_l seg_clbll.segbits
bash ../../utils/mergedb.sh clbll_r seg_clbll.segbits
bash ../../utils/mergedb.sh clblm_l seg_clblm.segbits
bash ../../utils/mergedb.sh clblm_r seg_clblm.segbits
$(SPECIMENS_OK):
bash generate.sh $(subst /OK,,$@)

View File

@ -1,2 +1,2 @@
/specimen_[0-9][0-9][0-9]/
/seg_clbl[lm].segbits
/seg_clblx.segbits

View File

@ -3,25 +3,19 @@ N := 3
SPECIMENS := $(addprefix specimen_,$(shell seq -f '%03.0f' $(N)))
SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS))
database: database/clbll database/clblm
database: $(SPECIMENS_OK)
../../tools/segmatch -o seg_clblx.segbits $(addsuffix /segdata_clbl[lm]_[lr]_[0-9].txt,$(SPECIMENS))
pushdb: pushdb/clbll pushdb/clblm
database/%: $(SPECIMENS_OK)
../../tools/segmatch -o seg_$(notdir $@).segbits \
$(addsuffix /segdata_$(notdir $@)_[0-9].txt,$(SPECIMENS))
pushdb/%:
bash ../../utils/mergedb.sh seg_$(notdir $@).segbits \
../../database/$(XRAY_DATABASE)/seg_$(notdir $@).segbits
pushdb:
bash ../../utils/mergedb.sh clbll_l seg_clblx.segbits
bash ../../utils/mergedb.sh clbll_r seg_clblx.segbits
bash ../../utils/mergedb.sh clblm_l seg_clblx.segbits
bash ../../utils/mergedb.sh clblm_r seg_clblx.segbits
$(SPECIMENS_OK):
bash generate.sh $(subst /OK,,$@)
touch $@
regen:
set -ex; for d in $(SPECIMENS); do cd $$d; for i in 0 1 2 3 4 5 6 7 8 9; do python3 ../generate.py $$i; done; cd ..; done
clean:
rm -rf specimen_[0-9][0-9][0-9]/ seg_clbll.segbits seg_clblm.segbits

View File

@ -1,2 +1,2 @@
/specimen_[0-9][0-9][0-9]/
/tilegrid.json
/seg_clblx.segbits

View File

@ -1,26 +1,22 @@
# SLICEM takes a while to converge
N := 10
N := 3
SPECIMENS := $(addprefix specimen_,$(shell seq -f '%03.0f' $(N)))
SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS))
database: database/clbll database/clblm
database: $(SPECIMENS_OK)
../../tools/segmatch -o seg_clblx.segbits $(addsuffix /segdata_clbl[lm]_[lr].txt,$(SPECIMENS))
pushdb: pushdb/clbll pushdb/clblm
database/%: $(SPECIMENS_OK)
../../tools/segmatch -o seg_$(notdir $@).segbits \
$(addsuffix /segdata_$(notdir $@).txt,$(SPECIMENS))
pushdb/%:
bash ../../utils/mergedb.sh seg_$(notdir $@).segbits \
../../database/$(XRAY_DATABASE)/seg_$(notdir $@).segbits
pushdb:
bash ../../utils/mergedb.sh clbll_l seg_clblx.segbits
bash ../../utils/mergedb.sh clbll_r seg_clblx.segbits
bash ../../utils/mergedb.sh clblm_l seg_clblx.segbits
bash ../../utils/mergedb.sh clblm_r seg_clblx.segbits
$(SPECIMENS_OK):
bash generate.sh $(subst /OK,,$@)
touch $@
clean:
rm -rf specimen_[0-9][0-9][0-9]/ tilegrid.json vivado*.log vivado*.jou
rm -rf specimen_[0-9][0-9][0-9]/ seg_clblx.segbits
.PHONY: database pushdb clean

View File

@ -1,3 +1,2 @@
/specimen_[0-9][0-9][0-9]/
/seg_clbll_int.segbits
/seg_clblm_int.segbits
/seg_clbl[lm]_int_[lr].segbits

View File

@ -4,23 +4,23 @@ SPECIMENS := $(addprefix specimen_,$(shell seq -f '%03.0f' $(N)))
SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS))
database: $(SPECIMENS_OK)
../../tools/segmatch -m 5 -M 15 -o seg_clbll_int.segbits \
$(addsuffix /segdata_clbll.txt,$(SPECIMENS))
../../tools/segmatch -m 5 -M 15 -o seg_clblm_int.segbits \
$(addsuffix /segdata_clblm.txt,$(SPECIMENS))
../../tools/segmatch -m 5 -M 15 -o seg_clbll_int_l.segbits $(addsuffix /segdata_clbll_l.txt,$(SPECIMENS))
../../tools/segmatch -m 5 -M 15 -o seg_clbll_int_r.segbits $(addsuffix /segdata_clbll_r.txt,$(SPECIMENS))
../../tools/segmatch -m 5 -M 15 -o seg_clblm_int_l.segbits $(addsuffix /segdata_clblm_l.txt,$(SPECIMENS))
../../tools/segmatch -m 5 -M 15 -o seg_clblm_int_r.segbits $(addsuffix /segdata_clblm_r.txt,$(SPECIMENS))
pushdb:
bash ../../utils/mergedb.sh seg_clbll_int.segbits \
../../database/$(XRAY_DATABASE)/seg_clbll_int.segbits
bash ../../utils/mergedb.sh seg_clblm_int.segbits \
../../database/$(XRAY_DATABASE)/seg_clblm_int.segbits
bash ../../utils/mergedb.sh clbll_int_l seg_clbll_int_l.segbits
bash ../../utils/mergedb.sh clbll_int_r seg_clbll_int_r.segbits
bash ../../utils/mergedb.sh clblm_int_l seg_clblm_int_l.segbits
bash ../../utils/mergedb.sh clblm_int_r seg_clblm_int_r.segbits
$(SPECIMENS_OK):
bash generate.sh $(subst /OK,,$@)
touch $@
clean:
rm -rf specimen_[0-9][0-9][0-9]/ seg_clbll.segbits seg_clblm.segbits
rm -rf specimen_[0-9][0-9][0-9]/ seg_clbl[lm]_int_[lr].segbits
.PHONY: database pushdb clean

View File

@ -40,7 +40,6 @@ with open("../database/%s/tilegrid.json" % os.getenv("XRAY_DATABASE"), "r") as f
for segname, segdata in grid["segments"].items():
segtype = segdata["type"].lower()
segtype = re.sub(r"_[lr]$", "", segtype)
if segtype not in segbits:
segbits[segtype] = dict()
@ -56,7 +55,7 @@ for segname, segdata in grid["segments"].items():
segbits_r[segtype][bit_pos] = bit_name
print("Loading %s_int segbits." % segtype)
with open("../database/%s/seg_%s_int.segbits" % (os.getenv("XRAY_DATABASE"), segtype)) as f:
with open("../database/%s/seg_%s.segbits" % (os.getenv("XRAY_DATABASE"), segtype.replace("_", "_int_"))) as f:
for line in f:
bit_name, *bit_pos = line.split()
for bit in bit_pos:
@ -124,7 +123,6 @@ with open("%s/index.html" % os.getenv("XRAY_DATABASE"), "w") as f:
print("<td bgcolor=\"%s\" align=\"center\" title=\"%s\"><span style=\"font-size:10px\">" % (bgcolor, "\n".join(title)), file=f)
if "segment" in tiledata:
segtype = segdata["type"].lower()
segtype = re.sub(r"_[lr]$", "", segtype)
print("<a style=\"text-decoration: none; color: black\" href=\"seg_%s.html\">%s</a></span></td>" %
(segtype, tilename.replace("_X", "<br/>X")), file=f)
else:

View File

@ -1,8 +1,45 @@
#!/bin/bash
set -ex
test $# = 2
test -e "$1"
touch "$2"
tmp=`mktemp -p .`
sort -u "$1" "$2" | grep -v '<.*>' > "$tmp"
mv "$tmp" "$2"
test -e "$2"
tmp1=`mktemp -p .`
tmp2=`mktemp -p .`
case "$1" in
clbll_l)
sed < "$2" > "$tmp1" \
-e 's/^CLB\.SLICE_X0\./CLBLL_L.SLICEL_X0./' \
-e 's/^CLB\.SLICE_X1\./CLBLL_L.SLICEL_X1./' ;;
clbll_r)
sed < "$2" > "$tmp1" \
-e 's/^CLB\.SLICE_X0\./CLBLL_R.SLICEL_X0./' \
-e 's/^CLB\.SLICE_X1\./CLBLL_R.SLICEL_X1./' ;;
clblm_l)
sed < "$2" > "$tmp1" \
-e 's/^CLB\.SLICE_X0\./CLBLM_L.SLICEM_X0./' \
-e 's/^CLB\.SLICE_X1\./CLBLM_L.SLICEL_X1./' ;;
clblm_r)
sed < "$2" > "$tmp1" \
-e 's/^CLB\.SLICE_X0\./CLBLM_R.SLICEM_X0./' \
-e 's/^CLB\.SLICE_X1\./CLBLM_R.SLICEL_X1./' ;;
clbll_int_l)
sed < "$2" > "$tmp1" -e 's/^INT\./CLBLL_INT_L./' ;;
clbll_int_r)
sed < "$2" > "$tmp1" -e 's/^INT\./CLBLL_INT_R./' ;;
clblm_int_l)
sed < "$2" > "$tmp1" -e 's/^INT\./CLBLM_INT_L./' ;;
clblm_int_r)
sed < "$2" > "$tmp1" -e 's/^INT\./CLBLM_INT_R./' ;;
*)
echo "Invalid mode: $1"
rm -f "$tmp1" "$tmp2"
exit 1
esac
db=../../database/$XRAY_DATABASE/seg_$1.segbits
touch "$db"
sort -u "$tmp1" "$db" | grep -v '<.*>' > "$tmp2"
mv "$tmp2" "$db"
rm -f "$tmp1"

View File

@ -67,7 +67,7 @@ class segmaker:
add_segbits()
for name, value in self.tags[tilename].items():
tag = "%s.%s" % (re.sub("_[LR]$", "", tile_type), name)
tag = "%s.%s" % (re.sub("(LL|LM)?_[LR]$", "", tile_type), name)
segments[segname]["tags"][tag] = value
for site in tiledata["sites"]:
@ -84,11 +84,9 @@ class segmaker:
assert 0
for name, value in self.tags[site].items():
tag = "%s.%s.%s" % (re.sub("_[LR]$", "", tile_type), sitekey, name)
tag = tag.replace("SLICE_X0.SLICEM", "SLICEM_X0")
tag = tag.replace("SLICE_X1.SLICEM", "SLICEM_X1")
tag = tag.replace("SLICE_X0.SLICEL", "SLICEL_X0")
tag = tag.replace("SLICE_X1.SLICEL", "SLICEL_X1")
tag = "%s.%s.%s" % (re.sub("(LL|LM)?_[LR]$", "", tile_type), sitekey, name)
tag = tag.replace(".SLICEM.", ".")
tag = tag.replace(".SLICEL.", ".")
segments[segname]["tags"][tag] = value
def write(self, suffix=None, roi=False):