Use decimal numbers in bit labels, some other cleanups

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-19 01:51:29 +02:00 committed by Tim 'mithro' Ansell
parent 93914d0e94
commit 73c5f22931
8 changed files with 25 additions and 23 deletions

View File

@ -14,7 +14,7 @@ $(SPECIMENS_OK):
touch $@
clean:
rm -rf $(SPECIMENS) tilegrid.json
rm -rf specimen_[0-9][0-9][0-9]/ tilegrid.json
.PHONY: database pushdb clean

View File

@ -20,7 +20,7 @@ $(SPECIMENS_OK):
touch $@
clean:
rm -rf $(SPECIMENS) seg_clbll.segbits seg_clblm.segbits
rm -rf specimen_[0-9][0-9][0-9]/ seg_clbll.segbits seg_clblm.segbits
.PHONY: database pushdb clean

View File

@ -19,8 +19,8 @@ with open("design_%s.bits" % sys.argv[1], "r") as f:
for line in f:
line = line.split("_")
bit_frame = int(line[1], 16)
bit_wordidx = int(line[2], 16)
bit_bitidx = int(line[3], 16)
bit_wordidx = int(line[2], 10)
bit_bitidx = int(line[3], 10)
base_frame = bit_frame & ~0x7f
if base_frame not in bits:
@ -65,7 +65,7 @@ for tilename, tiledata in grid["tiles"].items():
segments = segments_by_type[segdata["type"]]
tile_type = tiledata["type"]
segname = "%s_%02x" % (segdata["baseaddr"][0][2:], segdata["baseaddr"][1])
segname = "%s_%03d" % (segdata["baseaddr"][0][2:], segdata["baseaddr"][1])
if not segname in segments:
segments[segname] = { "bits": list(), "tags": dict() }
@ -97,7 +97,7 @@ for tilename, tiledata in grid["tiles"].items():
if wordidx not in bits[base_frame]:
continue
for bit_frame, bit_wordidx, bit_bitidx in bits[base_frame][wordidx]:
segments[segname]["bits"].append("%02x_%02x_%02x" % (bit_frame - base_frame, bit_wordidx - segdata["baseaddr"][1], bit_bitidx))
segments[segname]["bits"].append("%02d_%02d" % (bit_frame - base_frame, 32*(bit_wordidx - segdata["baseaddr"][1]) + bit_bitidx))
segments[segname]["bits"].sort()
@ -111,6 +111,8 @@ 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()):
if len(segdata["tags"]) == 0:
continue
print("seg %s" % segname, file=f)
for bitname in sorted(segdata["bits"]):
print("bit %s" % bitname, file=f)

View File

@ -20,7 +20,7 @@ $(SPECIMENS_OK):
touch $@
clean:
rm -rf $(SPECIMENS) seg_clbll.segbits seg_clblm.segbits
rm -rf specimen_[0-9][0-9][0-9]/ seg_clbll.segbits seg_clblm.segbits
.PHONY: database pushdb clean

View File

@ -19,8 +19,8 @@ with open("design_%s.bits" % sys.argv[1], "r") as f:
for line in f:
line = line.split("_")
bit_frame = int(line[1], 16)
bit_wordidx = int(line[2], 16)
bit_bitidx = int(line[3], 16)
bit_wordidx = int(line[2], 10)
bit_bitidx = int(line[3], 10)
base_frame = bit_frame & ~0x7f
if base_frame not in bits:
@ -66,7 +66,7 @@ for tilename, tiledata in grid["tiles"].items():
segments = segments_by_type[segdata["type"]]
tile_type = tiledata["type"]
segname = "%s_%02x" % (segdata["baseaddr"][0][2:], segdata["baseaddr"][1])
segname = "%s_%03d" % (segdata["baseaddr"][0][2:], segdata["baseaddr"][1])
if not segname in segments:
segments[segname] = { "bits": list(), "tags": dict() }
@ -97,7 +97,7 @@ for tilename, tiledata in grid["tiles"].items():
if wordidx not in bits[base_frame]:
continue
for bit_frame, bit_wordidx, bit_bitidx in bits[base_frame][wordidx]:
segments[segname]["bits"].append("%02x_%02x_%02x" % (bit_frame - base_frame, bit_wordidx - segdata["baseaddr"][1], bit_bitidx))
segments[segname]["bits"].append("%02d_%02d" % (bit_frame - base_frame, 32*(bit_wordidx - segdata["baseaddr"][1]) + bit_bitidx))
segments[segname]["bits"].sort()
@ -111,6 +111,8 @@ 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()):
if len(segdata["tags"]) == 0:
continue
print("seg %s" % segname, file=f)
for bitname in sorted(segdata["bits"]):
print("bit %s" % bitname, file=f)

View File

@ -123,7 +123,7 @@ for segtype in segbits.keys():
print("<tr>", file =f)
print("<th align=\"right\"><span style=\"font-size:10px\">%d</span></th>" % bitidx, file =f)
for frameidx in range(segframes[segtype]):
bit_pos = "%02x_%02x_%02x" % (frameidx, bitidx // 32, bitidx % 32)
bit_pos = "%02d_%02d" % (frameidx, bitidx)
bit_name = segbits_r[segtype][bit_pos] if bit_pos in segbits_r[segtype] else None
label = "&nbsp;"

View File

@ -5,10 +5,10 @@ CXXFLAGS = -Wall -Wextra -O3
all: bitread segmatch
bitread: bitread.cc
clang $(CXXFLAGS) -static -std=c++11 -o $@ $< -lstdc++
clang $(CXXFLAGS) -std=c++11 -o $@ $< -lstdc++
segmatch: segmatch.cc
clang $(CXXFLAGS) -static -std=c++11 -o $@ $< -lstdc++
clang $(CXXFLAGS) -std=c++11 -o $@ $< -lstdc++
clean:
rm -f bitread segmatch

View File

@ -289,10 +289,10 @@ help:
fprintf(stderr, " skip zero frames (frames with all bits cleared) in outout\n");
fprintf(stderr, "\n");
fprintf(stderr, " -x\n");
fprintf(stderr, " use format 'bit_%%08x_%%02x_%%02x_t%%d_h%%d_r%%d_c%%d_m%%d_w%%d_b%%d'\n");
fprintf(stderr, " use format 'bit_%%08x_%%03d_%%02d_t%%d_h%%d_r%%d_c%%d_m%%d'\n");
fprintf(stderr, "\n");
fprintf(stderr, " -y\n");
fprintf(stderr, " use format 'bit_%%08x_%%02x_%%02x'\n");
fprintf(stderr, " use format 'bit_%%08x_%%03d_%%02d'\n");
fprintf(stderr, "\n");
fprintf(stderr, " -p\n");
fprintf(stderr, " output a binary netpgm image\n");
@ -311,15 +311,13 @@ help:
fprintf(stderr, "\n");
fprintf(stderr, "In -x format the fields have the following meaning:\n");
fprintf(stderr, " - complete 32 bit hex frame id\n");
fprintf(stderr, " - hex word index within that frame\n");
fprintf(stderr, " - hex bit index within that word\n");
fprintf(stderr, " - word index with that frame (decimal)\n");
fprintf(stderr, " - bit index with that word (decimal)\n");
fprintf(stderr, " - decoded frame type from frame id\n");
fprintf(stderr, " - decoded top/botttom from frame id (top=0)\n");
fprintf(stderr, " - decoded row address from frame id\n");
fprintf(stderr, " - decoded column address from frame id\n");
fprintf(stderr, " - decoded minor address from frame id\n");
fprintf(stderr, " - word index with that frame (decimal)\n");
fprintf(stderr, " - bit index with that word (decimal)\n");
fprintf(stderr, "\n");
return 1;
}
@ -575,11 +573,11 @@ help:
for (int k = 0; k < 32; k++)
if ((i != 50 || chksum) && ((it.second.at(i) & (1 << k)) != 0)) {
if (mode_x)
fprintf(f, "bit_%08x_%02x_%02x_t%d_h%d_r%d_c%d_m%d_w%d_b%d\n",
fprintf(f, "bit_%08x_%03d_%02d_t%d_h%d_r%d_c%d_m%d\n",
fid.get_value(), i, k, fid.get_type(), fid.get_topflag(), fid.get_rowaddr(),
fid.get_coladdr(), fid.get_minor(), i, k);
fid.get_coladdr(), fid.get_minor());
else
fprintf(f, "bit_%08x_%02x_%02x\n", fid.get_value(), i, k);
fprintf(f, "bit_%08x_%03d_%02d\n", fid.get_value(), i, k);
}
if (outfile == nullptr)
fprintf(f, "\n");