mirror of https://github.com/openXC7/prjxray.git
commit
1d30d08c82
|
|
@ -1,14 +1,11 @@
|
|||
source $(dirname ${BASH_SOURCE[0]})/../../utils/environment.sh
|
||||
|
||||
export XRAY_DATABASE="kintex7"
|
||||
export XRAY_PART="xc7k70tfbg676-2"
|
||||
export XRAY_ROI="SLICE_X24Y150:SLICE_X35Y199"
|
||||
# FIXME: a7 value
|
||||
export XRAY_ROI_FRAMES="0x00020500:0x000208ff"
|
||||
export XRAY_ROI_GRID_X1="48"
|
||||
export XRAY_ROI_GRID_X2="67"
|
||||
export XRAY_ROI_GRID_Y1="0"
|
||||
export XRAY_ROI_GRID_Y2="52"
|
||||
export XRAY_ROI="SLICE_X0Y50:SLICE_X19Y99 DSP48_X0Y20:DSP48_X0Y39 RAMB18_X0Y20:RAMB18_X0Y39 RAMB36_X0Y10:RAMB36_X0Y19"
|
||||
export XRAY_ROI_FRAMES="0x00400100:0x004006ff"
|
||||
export XRAY_ROI_GRID_X1="9"
|
||||
export XRAY_ROI_GRID_X2="38"
|
||||
export XRAY_ROI_GRID_Y1="104"
|
||||
export XRAY_ROI_GRID_Y2="156"
|
||||
# Choose the first N High Range I/Os
|
||||
export XRAY_PIN_00="K25"
|
||||
export XRAY_PIN_01="K26"
|
||||
|
|
@ -17,3 +14,5 @@ export XRAY_PIN_03="L25"
|
|||
export XRAY_PIN_04="M19"
|
||||
export XRAY_PIN_05="M20"
|
||||
export XRAY_PIN_06="M21"
|
||||
|
||||
source $(dirname ${BASH_SOURCE[0]})/../../utils/environment.sh
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ def slice_xy():
|
|||
'''Return (X1, X2), (Y1, Y2) from XRAY_ROI, exclusive end (for xrange)'''
|
||||
# SLICE_X12Y100:SLICE_X27Y149
|
||||
# Note XRAY_ROI_GRID_* is something else
|
||||
m = re.match(r'SLICE_X(.*)Y(.*):SLICE_X(.*)Y(.*)', os.getenv('XRAY_ROI'))
|
||||
m = re.match(r'SLICE_X([0-9]*)Y([0-9]*):SLICE_X([0-9]*)Y([0-9]*)', os.getenv('XRAY_ROI'))
|
||||
ms = [int(m.group(i + 1)) for i in range(4)]
|
||||
return ((ms[0], ms[2] + 1), (ms[1], ms[3] + 1))
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ def slice_xy():
|
|||
'''Return (X1, X2), (Y1, Y2) from XRAY_ROI, exclusive end (for xrange)'''
|
||||
# SLICE_X12Y100:SLICE_X27Y149
|
||||
# Note XRAY_ROI_GRID_* is something else
|
||||
m = re.match(r'SLICE_X(.*)Y(.*):SLICE_X(.*)Y(.*)', os.getenv('XRAY_ROI'))
|
||||
m = re.match(r'SLICE_X([0-9]*)Y([0-9]*):SLICE_X([0-9]*)Y([0-9]*)', os.getenv('XRAY_ROI'))
|
||||
ms = [int(m.group(i + 1)) for i in range(4)]
|
||||
return ((ms[0], ms[2] + 1), (ms[1], ms[3] + 1))
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ def slice_xy():
|
|||
'''Return (X1, X2), (Y1, Y2) from XRAY_ROI, exclusive end (for xrange)'''
|
||||
# SLICE_X12Y100:SLICE_X27Y149
|
||||
# Note XRAY_ROI_GRID_* is something else
|
||||
m = re.match(r'SLICE_X(.*)Y(.*):SLICE_X(.*)Y(.*)', os.getenv('XRAY_ROI'))
|
||||
m = re.match(r'SLICE_X([0-9]*)Y([0-9]*):SLICE_X([0-9]*)Y([0-9]*)', os.getenv('XRAY_ROI'))
|
||||
ms = [int(m.group(i + 1)) for i in range(4)]
|
||||
return ((ms[0], ms[2] + 1), (ms[1], ms[3] + 1))
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ def slice_xy():
|
|||
'''Return (X1, X2), (Y1, Y2) from XRAY_ROI, exclusive end (for xrange)'''
|
||||
# SLICE_X12Y100:SLICE_X27Y149
|
||||
# Note XRAY_ROI_GRID_* is something else
|
||||
m = re.match(r'SLICE_X(.*)Y(.*):SLICE_X(.*)Y(.*)', os.getenv('XRAY_ROI'))
|
||||
m = re.match(r'SLICE_X([0-9]*)Y([0-9]*):SLICE_X([0-9]*)Y([0-9]*)', os.getenv('XRAY_ROI'))
|
||||
ms = [int(m.group(i + 1)) for i in range(4)]
|
||||
return ((ms[0], ms[2] + 1), (ms[1], ms[3] + 1))
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ def slice_xy():
|
|||
'''Return (X1, X2), (Y1, Y2) from XRAY_ROI, exclusive end (for xrange)'''
|
||||
# SLICE_X12Y100:SLICE_X27Y149
|
||||
# Note XRAY_ROI_GRID_* is something else
|
||||
m = re.match(r'SLICE_X(.*)Y(.*):SLICE_X(.*)Y(.*)', os.getenv('XRAY_ROI'))
|
||||
m = re.match(r'SLICE_X([0-9]*)Y([0-9]*):SLICE_X([0-9]*)Y([0-9]*)', os.getenv('XRAY_ROI'))
|
||||
ms = [int(m.group(i + 1)) for i in range(4)]
|
||||
return ((ms[0], ms[2] + 1), (ms[1], ms[3] + 1))
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ def slice_xy():
|
|||
'''Return (X1, X2), (Y1, Y2) from XRAY_ROI, exclusive end (for xrange)'''
|
||||
# SLICE_X12Y100:SLICE_X27Y149
|
||||
# Note XRAY_ROI_GRID_* is something else
|
||||
m = re.match(r'SLICE_X(.*)Y(.*):SLICE_X(.*)Y(.*)', os.getenv('XRAY_ROI'))
|
||||
m = re.match(r'SLICE_X([0-9]*)Y([0-9]*):SLICE_X([0-9]*)Y([0-9]*)', os.getenv('XRAY_ROI'))
|
||||
ms = [int(m.group(i + 1)) for i in range(4)]
|
||||
return ((ms[0], ms[2] + 1), (ms[1], ms[3] + 1))
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ def slice_xy():
|
|||
'''Return (X1, X2), (Y1, Y2) from XRAY_ROI, exclusive end (for xrange)'''
|
||||
# SLICE_X12Y100:SLICE_X27Y149
|
||||
# Note XRAY_ROI_GRID_* is something else
|
||||
m = re.match(r'SLICE_X(.*)Y(.*):SLICE_X(.*)Y(.*)', os.getenv('XRAY_ROI'))
|
||||
m = re.match(r'SLICE_X([0-9]*)Y([0-9]*):SLICE_X([0-9]*)Y([0-9]*)', os.getenv('XRAY_ROI'))
|
||||
ms = [int(m.group(i + 1)) for i in range(4)]
|
||||
return ((ms[0], ms[2] + 1), (ms[1], ms[3] + 1))
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ def slice_xy():
|
|||
'''Return (X1, X2), (Y1, Y2) from XRAY_ROI, exclusive end (for xrange)'''
|
||||
# SLICE_X12Y100:SLICE_X27Y149
|
||||
# Note XRAY_ROI_GRID_* is something else
|
||||
m = re.match(r'SLICE_X(.*)Y(.*):SLICE_X(.*)Y(.*)', os.getenv('XRAY_ROI'))
|
||||
m = re.match(r'SLICE_X([0-9]*)Y([0-9]*):SLICE_X([0-9]*)Y([0-9]*)', os.getenv('XRAY_ROI'))
|
||||
ms = [int(m.group(i + 1)) for i in range(4)]
|
||||
return ((ms[0], ms[2] + 1), (ms[1], ms[3] + 1))
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ def slice_xy():
|
|||
'''Return (X1, X2), (Y1, Y2) from XRAY_ROI, exclusive end (for xrange)'''
|
||||
# SLICE_X12Y100:SLICE_X27Y149
|
||||
# Note XRAY_ROI_GRID_* is something else
|
||||
m = re.match(r'SLICE_X(.*)Y(.*):SLICE_X(.*)Y(.*)', os.getenv('XRAY_ROI'))
|
||||
m = re.match(r'SLICE_X([0-9]*)Y([0-9]*):SLICE_X([0-9]*)Y([0-9]*)', os.getenv('XRAY_ROI'))
|
||||
ms = [int(m.group(i + 1)) for i in range(4)]
|
||||
return ((ms[0], ms[2] + 1), (ms[1], ms[3] + 1))
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,9 @@ else:
|
|||
|
||||
db_dir = os.path.join(get_setting("XRAY_DATABASE_DIR"), get_setting("XRAY_DATABASE"))
|
||||
def db_open(fn):
|
||||
filename = os.path.join(db_dir, fn)
|
||||
if not os.path.exists(filename):
|
||||
return open("/dev/null")
|
||||
return open(os.path.join(db_dir, fn))
|
||||
|
||||
def out_open(fn):
|
||||
|
|
@ -233,6 +236,7 @@ with out_open("index.html") as f:
|
|||
for grid_x in range(grid_range[0], grid_range[2]+1):
|
||||
tilename = grid_map[(grid_x, grid_y)]
|
||||
tiledata = grid["tiles"][tilename]
|
||||
segdata = None
|
||||
|
||||
bgcolor = "#aaaaaa"
|
||||
if tiledata["type"] in ["INT_L", "INT_R"]: bgcolor="#aaaaff"
|
||||
|
|
@ -253,7 +257,10 @@ with out_open("index.html") as f:
|
|||
title.append("%s site: %s" % (sitetype, sitename))
|
||||
|
||||
if "segment" in tiledata:
|
||||
title.append("Baseaddr: %s %d" % tuple(segdata["baseaddr"]))
|
||||
if "baseaddr" in segdata:
|
||||
title.append("Baseaddr: %s %d" % tuple(segdata["baseaddr"]))
|
||||
else:
|
||||
print("Warning: no baseaddr in segment %s (via tile %s)." % (tiledata["segment"], tilename))
|
||||
|
||||
print("<td bgcolor=\"%s\" align=\"center\" title=\"%s\"><span style=\"font-size:10px\">" % (bgcolor, "\n".join(title)), file=f)
|
||||
if "segment" in tiledata:
|
||||
|
|
@ -286,6 +293,7 @@ for segtype in sorted(segbits.keys()):
|
|||
var grp2bits = { };
|
||||
var bit2grp = { }
|
||||
var highlight_bits = [ ];
|
||||
var highlight_cache = { };
|
||||
|
||||
function ome(bit) {
|
||||
// console.log("ome: " + bit);
|
||||
|
|
@ -294,9 +302,12 @@ function ome(bit) {
|
|||
for (i in grp2bits[grp]) {
|
||||
b = grp2bits[grp][i];
|
||||
// console.log(" -> " + b);
|
||||
el = document.getElementById("bit" + b);
|
||||
el.style.fontWeight = "bold";
|
||||
highlight_bits.push(b);
|
||||
if (!(b in highlight_cache)) {
|
||||
el = document.getElementById("bit" + b);
|
||||
highlight_cache[b] = el.bgColor;
|
||||
el.bgColor = "#ffffff";
|
||||
highlight_bits.push(b);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -306,6 +317,8 @@ function oml() {
|
|||
for (i in highlight_bits) {
|
||||
b = highlight_bits[i];
|
||||
el = document.getElementById("bit" + b);
|
||||
el.bgColor = highlight_cache[b];
|
||||
delete highlight_cache[b];
|
||||
el.style.fontWeight = "normal";
|
||||
}
|
||||
highlight_bits.length = 0;
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@ class segmaker:
|
|||
|
||||
segdata = self.grid["segments"][tiledata["segment"]]
|
||||
|
||||
if "baseaddr" not in segdata:
|
||||
continue
|
||||
|
||||
if segdata["type"] not in self.segments_by_type:
|
||||
self.segments_by_type[segdata["type"]] = dict()
|
||||
segments = self.segments_by_type[segdata["type"]]
|
||||
|
|
|
|||
Loading…
Reference in New Issue