mirror of https://github.com/openXC7/prjxray.git
Add hclk_l/hclk_r databases
Signed-off-by: Clifford Wolf <clifford@clifford.at> Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
This commit is contained in:
parent
940e9a8b1d
commit
24beaef67a
|
|
@ -37,12 +37,12 @@ for record in tiles:
|
|||
|
||||
database["tiles"][tile_name] = {
|
||||
"type": tile_type,
|
||||
"sites": dict(),
|
||||
"grid_x": grid_x,
|
||||
"grid_y": grid_y
|
||||
}
|
||||
|
||||
if len(record) > 4:
|
||||
database["tiles"][tile_name]["sites"] = dict()
|
||||
for i in range(4, len(record), 2):
|
||||
site_type, site_name = record[i:i+2]
|
||||
if site_name in site_baseaddr:
|
||||
|
|
@ -61,6 +61,16 @@ for record in tiles:
|
|||
database["segments"][segment_name]["baseaddr"] = [framebaseaddr, 0]
|
||||
database["tiles"][tile_name]["segment"] = segment_name
|
||||
|
||||
if tile_type in ["HCLK_L", "HCLK_R"]:
|
||||
segment_name = "SEG_" + tile_name
|
||||
segtype = tile_type.lower()
|
||||
database["segments"][segment_name] = dict()
|
||||
database["segments"][segment_name]["tiles"] = [tile_name]
|
||||
database["segments"][segment_name]["type"] = segtype
|
||||
database["segments"][segment_name]["frames"] = 36
|
||||
database["segments"][segment_name]["words"] = 1
|
||||
database["tiles"][tile_name]["segment"] = segment_name
|
||||
|
||||
|
||||
#######################################
|
||||
# Pupulate segment base addresses
|
||||
|
|
@ -113,6 +123,13 @@ for segment_name in database["segments"].keys():
|
|||
s = set(database["segments"][segment_name]["tiles"] + [inttile])
|
||||
database["segments"][segment_name]["tiles"] = list(sorted(s))
|
||||
|
||||
if inttile.endswith("25") or inttile.endswith("75"):
|
||||
clktile = tiles_by_grid[(grid_x, grid_y+1)]
|
||||
assert clktile.startswith("HCLK_")
|
||||
clkseg = database["tiles"][clktile]["segment"]
|
||||
framebase, wordbase = database["segments"][segment_name]["baseaddr"]
|
||||
database["segments"][clkseg]["baseaddr"] = [framebase, wordbase-1]
|
||||
|
||||
|
||||
#######################################
|
||||
# Write
|
||||
|
|
|
|||
|
|
@ -156,6 +156,7 @@ with open("%s/index.html" % os.getenv("XRAY_DATABASE"), "w") as f:
|
|||
if tiledata["type"] in ["INT_L", "INT_R"]: bgcolor="#aaaaff"
|
||||
if tiledata["type"] in ["CLBLL_L", "CLBLL_R"]: bgcolor="#ffffaa"
|
||||
if tiledata["type"] in ["CLBLM_L", "CLBLM_R"]: bgcolor="#ffaaaa"
|
||||
if tiledata["type"] in ["HCLK_L", "HCLK_R"]: bgcolor="#aaffaa"
|
||||
|
||||
title = [tilename]
|
||||
|
||||
|
|
@ -178,7 +179,7 @@ with open("%s/index.html" % os.getenv("XRAY_DATABASE"), "w") as f:
|
|||
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:
|
||||
print("%s</span></td>" % tilename.replace("_X", "<br/>X"), file=f)
|
||||
print("%s</span></td>" % tilename.replace("_X", "<br/>X").replace("B_TERM", "B<br/>TERM"), file=f)
|
||||
|
||||
print("</tr>", file=f)
|
||||
|
||||
|
|
@ -193,8 +194,11 @@ for segtype in segbits.keys():
|
|||
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("<h3>X-Ray %s Database: %s Segment (%s Tile + %s Tile)</h3>" % (os.getenv("XRAY_DATABASE").upper(), segtype.upper(),
|
||||
segtype.upper(), re.sub("clbl[lm]", "int", segtype).upper()), file=f)
|
||||
if segtype in ["hclk_l", "hclk-r"]:
|
||||
print("<h3>X-Ray %s Database: %s Segment</h3>" % (os.getenv("XRAY_DATABASE").upper(), segtype.upper()), file=f)
|
||||
else:
|
||||
print("<h3>X-Ray %s Database: %s Segment (%s Tile + %s Tile)</h3>" % (os.getenv("XRAY_DATABASE").upper(), segtype.upper(),
|
||||
segtype.upper(), re.sub("clbl[lm]", "int", segtype).upper()), file=f)
|
||||
|
||||
print("""
|
||||
<script><!--
|
||||
|
|
@ -230,8 +234,9 @@ function oml() {
|
|||
|
||||
print("<table border>", file=f)
|
||||
|
||||
gray_bits = 0
|
||||
colored_bits = 0
|
||||
unused_bits = 0
|
||||
unknown_bits = 0
|
||||
known_bits = 0
|
||||
|
||||
print("<tr>", file=f)
|
||||
print("<th width=\"30\"></th>", file=f)
|
||||
|
|
@ -239,7 +244,7 @@ function oml() {
|
|||
print("<th width=\"30\"><span style=\"font-size:10px\">%d</span></th>" % frameidx, file=f)
|
||||
print("</tr>", file=f)
|
||||
|
||||
for bitidx in range(63, -1, -1):
|
||||
for bitidx in range(31 if (segtype in ["hclk_l", "hclk_r"]) else 63, -1, -1):
|
||||
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]):
|
||||
|
|
@ -255,6 +260,10 @@ function oml() {
|
|||
bgcolor = "#444444"
|
||||
title.append("UNUSED ?")
|
||||
|
||||
if (segtype in ["hclk_l", "hclk_r"]) and bitidx < 13:
|
||||
label = "ECC"
|
||||
bgcolor = "#44aa44"
|
||||
|
||||
if bit_name is not None:
|
||||
bgcolor = "#ff0000"
|
||||
title.append(bit_name)
|
||||
|
|
@ -341,10 +350,12 @@ function oml() {
|
|||
else:
|
||||
onclick = " onmousedown=\"location.href = '#b%s'\"" % bit_pos
|
||||
|
||||
if bgcolor in ["#aaaaaa", "#444444"]:
|
||||
gray_bits += 1
|
||||
if bgcolor == "#aaaaaa":
|
||||
unknown_bits += 1
|
||||
elif bgcolor == "#444444":
|
||||
unused_bits += 1
|
||||
else:
|
||||
colored_bits += 1
|
||||
known_bits += 1
|
||||
|
||||
print("<td id=\"bit%s\" onmouseenter=\"ome('%s');\" onmouseleave=\"oml();\" bgcolor=\"%s\" align=\"center\" title=\"%s\"%s><span style=\"font-size:10px\">%s</span></td>" %
|
||||
(bit_pos, bit_pos, bgcolor, "\n".join(title), onclick, label), file=f)
|
||||
|
|
@ -354,8 +365,10 @@ function oml() {
|
|||
print("<div>", file=f)
|
||||
|
||||
if True:
|
||||
print(" gray: %d, colored: %d, total: %d, percentage: %.2f%%" % (gray_bits, colored_bits,
|
||||
gray_bits + colored_bits, 100 * colored_bits / (gray_bits + colored_bits)))
|
||||
print(" unused: %d, unknown: %d, known: %d, total: %d, percentage: %.2f%% (%.2f%%)" % (
|
||||
unused_bits, unknown_bits, known_bits, unused_bits + unknown_bits + known_bits,
|
||||
100 * known_bits / (unknown_bits + unused_bits + known_bits),
|
||||
100 * (known_bits + unused_bits) / (unknown_bits + unused_bits + known_bits)))
|
||||
|
||||
bits_by_prefix = dict()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue