mirror of https://github.com/openXC7/prjxray.git
Some refactoring
Signed-off-by: Clifford Wolf <clifford@clifford.at> Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
This commit is contained in:
parent
28fa81b645
commit
85f366bac9
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,2 @@
|
|||
/specimen_[0-9][0-9][0-9]/
|
||||
/lutbits.txt
|
||||
/seg_clbl[lm]_[rl].segbits
|
||||
/seg_clbl[lm].segbits
|
||||
|
|
|
|||
|
|
@ -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 $@
|
||||
|
|
|
|||
|
|
@ -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"]):
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1 @@
|
|||
/index.html
|
||||
/seg_clbll.html
|
||||
/seg_clblm.html
|
||||
/*/
|
||||
|
|
|
|||
|
|
@ -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]):
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
@ -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"
|
||||
Loading…
Reference in New Issue