mirror of https://github.com/openXC7/prjxray.git
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:
parent
79df0e2b2b
commit
9b61d5bd85
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,,$@)
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
/specimen_[0-9][0-9][0-9]/
|
||||
/seg_clbl[lm].segbits
|
||||
/seg_clblx.segbits
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
/specimen_[0-9][0-9][0-9]/
|
||||
/tilegrid.json
|
||||
/seg_clblx.segbits
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Reference in New Issue