Some refactoring

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-10-18 12:04:02 +02:00 committed by Tim 'mithro' Ansell
parent 28fa81b645
commit 85f366bac9
10 changed files with 62 additions and 51 deletions

View File

@ -51,9 +51,12 @@ 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())
database["segments"][segment_name] = dict()
database["segments"][segment_name]["tiles"] = [tile_name]
database["segments"][segment_name]["type"] = "SEG_" + tile_type
database["segments"][segment_name]["type"] = segtype
database["segments"][segment_name]["frames"] = 36
database["segments"][segment_name]["words"] = 2
if framebaseaddr is not None:
database["segments"][segment_name]["baseaddr"] = [framebaseaddr, 0]
database["tiles"][tile_name]["segment"] = segment_name

View File

@ -1,10 +1,6 @@
#!/bin/bash
set -ex
test $# = 1
test ! -e $1
mkdir $1
cd $1
. ../../utils/genheader.sh
vivado -mode batch -source ../generate.tcl

View File

@ -1,4 +1,2 @@
/specimen_[0-9][0-9][0-9]/
/lutbits.txt
/seg_clbl[lm]_[rl].segbits
/seg_clbl[lm].segbits

View File

@ -3,26 +3,18 @@ N := 1
SPECIMENS := $(addprefix specimen_,$(shell seq -f '%03.0f' $(N)))
SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS))
database: $(SPECIMENS_OK)
../../tools/segmatch -o lutbits.txt \
$(addsuffix /segdata_0.txt,$(SPECIMENS)) \
$(addsuffix /segdata_1.txt,$(SPECIMENS)) \
$(addsuffix /segdata_2.txt,$(SPECIMENS))
grep '^CLBLL_L\.' lutbits.txt | cut -f2- -d. | sort > seg_clbll_l.segbits
grep '^CLBLL_R\.' lutbits.txt | cut -f2- -d. | sort > seg_clbll_r.segbits
grep '^CLBLM_L\.' lutbits.txt | cut -f2- -d. | sort > seg_clblm_l.segbits
grep '^CLBLM_R\.' lutbits.txt | cut -f2- -d. | sort > seg_clblm_r.segbits
cmp seg_clbll_l.segbits seg_clbll_r.segbits
cmp seg_clblm_l.segbits seg_clblm_r.segbits
pushdb/%:
touch ../../database/$(XRAY_DATABASE)/seg_$(notdir $@).segbits
sort -u ../../database/$(XRAY_DATABASE)/seg_$(notdir $@).segbits \
seg_$(notdir $@)_?.segbits > seg_$(notdir $@).segbits
cp seg_$(notdir $@).segbits ../../database/$(XRAY_DATABASE)/seg_$(notdir $@).segbits
database: database/clbll database/clblm
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
$(SPECIMENS_OK):
bash generate.sh $(subst /OK,,$@)
touch $@

View File

@ -52,14 +52,17 @@ with open("lutdata_%s.txt" % sys.argv[1], "r") as f:
print("Compile segment data.")
segments = dict()
segments_by_type = dict()
for tilename, tiledata in grid["tiles"].items():
if "segment" not in tiledata:
continue
segtype = tiledata["segment"]
segdata = grid["segments"][segtype]
segdata = grid["segments"][tiledata["segment"]]
if segdata["type"] not in segments_by_type:
segments_by_type[segdata["type"]] = dict()
segments = segments_by_type[segdata["type"]]
tile_type = tiledata["type"]
segname = "%s_%02x" % (segdata["baseaddr"][0][2:], segdata["baseaddr"][1])
@ -79,7 +82,7 @@ for tilename, tiledata in grid["tiles"].items():
assert 0
for name, value in luts[site].items():
segments[segname]["tags"]["%s.%s.%s" % (tile_type, sitekey, name)] = value
segments[segname]["tags"]["%s.%s.%s" % (re.sub("_[LR]$", "", tile_type), sitekey, name)] = value
base_frame = int(segdata["baseaddr"][0][2:], 16)
for wordidx in range(segdata["baseaddr"][1], segdata["baseaddr"][1]+2):
@ -98,7 +101,9 @@ for tilename, tiledata in grid["tiles"].items():
print("Write segment data.")
with open("segdata_%s.txt" % sys.argv[1], "w") as f:
for segtype in segments_by_type.keys():
with open("segdata_%s_%s.txt" % (segtype, sys.argv[1]), "w") as f:
segments = segments_by_type[segtype]
for segname, segdata in sorted(segments.items()):
print("seg %s" % segname, file=f)
for bitname in sorted(segdata["bits"]):

View File

@ -1,10 +1,6 @@
#!/bin/bash
set -ex
test $# = 1
test ! -e $1
mkdir $1
cd $1
. ../../utils/genheader.sh
echo '`define SEED 32'"'h$(echo $1 | md5sum | cut -c1-8)" > setseed.vh

4
htmlgen/.gitignore vendored
View File

@ -1,3 +1 @@
/index.html
/seg_clbll.html
/seg_clblm.html
/*/

View File

@ -25,7 +25,7 @@ for segname, segdata in grid["segments"].items():
segframes[segtype] = 36
print("Loading %s segbits." % segtype)
with open("../database/%s/%s.segbits" % (os.getenv("XRAY_DATABASE"), segtype)) as f:
with open("../database/%s/seg_%s.segbits" % (os.getenv("XRAY_DATABASE"), segtype)) as f:
for line in f:
bit_name, bit_pos = line.split()
segbits[segtype][bit_name] = bit_pos
@ -38,8 +38,9 @@ for segname, segdata in grid["segments"].items():
grid_range = None
grid_map = dict()
print("Writing index.html.")
with open("index.html", "w") as f:
print("Writing %s/index.html." % os.getenv("XRAY_DATABASE"))
os.makedirs(os.getenv("XRAY_DATABASE"), exist_ok=True)
with open("%s/index.html" % os.getenv("XRAY_DATABASE"), "w") as f:
print("<html><title>X-Ray %s Database</title><body>" % os.getenv("XRAY_DATABASE").upper(), file=f)
for tilename, tiledata in grid["tiles"].items():
@ -88,7 +89,7 @@ with open("index.html", "w") as f:
if "segment" in tiledata:
segtype = segdata["type"].lower()
segtype = re.sub(r"_[lr]$", "", segtype)
print("<center><small><a href=\"%s.html\">%s</a></small></center></td>" %
print("<center><small><a href=\"seg_%s.html\">%s</a></small></center></td>" %
(segtype, tilename.replace("_X", "<br/>X")), file=f)
else:
print("<center><small>%s</small></center></td>" % tilename.replace("_X", "<br/>X"), file=f)
@ -103,8 +104,8 @@ with open("index.html", "w") as f:
# Create Segment Pages
for segtype in segbits.keys():
print("Writing %s.html." % segtype)
with open("%s.html" % segtype, "w") as f:
print("Writing %s/seg_%s.html." % (os.getenv("XRAY_DATABASE"), segtype))
with open("%s/seg_%s.html" % (os.getenv("XRAY_DATABASE"), segtype), "w") as f:
print("<html><title>X-Ray %s Database: %s</title><body>" % (os.getenv("XRAY_DATABASE").upper(), segtype.upper()), file=f)
print("<table border>", file =f)
@ -114,7 +115,7 @@ for segtype in segbits.keys():
print("<th width=\"50\">%d</th>" % frameidx, file =f)
print("</tr>", file =f)
for bitidx in range(64):
for bitidx in range(63, -1, -1):
print("<tr>", file =f)
print("<th align=\"right\">%d</th>" % bitidx, file =f)
for frameidx in range(segframes[segtype]):

14
utils/genheader.sh Normal file
View File

@ -0,0 +1,14 @@
# header for fuzzer generate.sh scripts
if [ -z "$XRAY_DATABASE" ]; then
echo "No XRAY environment found. Make sure to source the settings file first!"
exit 1
fi
set -ex
test $# = 1
test ! -e $1
mkdir $1
cd $1

8
utils/mergedb.sh Normal file
View File

@ -0,0 +1,8 @@
#!/bin/bash
set -ex
test $# = 2
test -e "$1"
touch "$2"
tmp=`mktemp -p .`
sort -u "$1" "$2" > "$tmp"
mv "$tmp" "$2"