mirror of https://github.com/openXC7/prjxray.git
Add "segprint -b"
Signed-off-by: Clifford Wolf <clifford@clifford.at> Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
This commit is contained in:
parent
f79def34be
commit
1b21d3a064
|
|
@ -3,10 +3,10 @@
|
|||
set -ex
|
||||
vivado -mode batch -source runme.tcl
|
||||
|
||||
${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit
|
||||
${XRAY_SEGPRINT} -zd design.bits > design.segs
|
||||
${XRAY_BITREAD} -o design.bits -z -y design.bit
|
||||
${XRAY_SEGPRINT} -bzd design.bits > design.segs
|
||||
|
||||
for id in b{0,1,2,3,4,5,6,7,8,9,10,11}; do
|
||||
${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design_$id.bits -z -y design_$id.bit
|
||||
${XRAY_SEGPRINT} -zd design_$id.bits > design_$id.segs
|
||||
${XRAY_BITREAD} -o design_$id.bits -z -y design_$id.bit
|
||||
${XRAY_SEGPRINT} -bzd design_$id.bits > design_$id.segs
|
||||
done
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
import getopt, sys, os, json, re
|
||||
|
||||
flag_z = False
|
||||
flag_b = False
|
||||
flag_d = False
|
||||
flag_D = False
|
||||
|
||||
|
|
@ -12,6 +13,9 @@ def usage():
|
|||
print(" -z")
|
||||
print(" do not print a 'seg' header for empty segments")
|
||||
print("")
|
||||
print(" -b")
|
||||
print(" print bits outside of known segments")
|
||||
print("")
|
||||
print(" -d")
|
||||
print(" decode known segment bits and write them as tags")
|
||||
print("")
|
||||
|
|
@ -21,7 +25,7 @@ def usage():
|
|||
sys.exit(0)
|
||||
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "zdD")
|
||||
opts, args = getopt.getopt(sys.argv[1:], "zbdD")
|
||||
except:
|
||||
usage()
|
||||
|
||||
|
|
@ -31,6 +35,8 @@ if len(args) == 0:
|
|||
for o, a in opts:
|
||||
if o == "-z":
|
||||
flag_z = True
|
||||
elif o == "-b":
|
||||
flag_b = True
|
||||
elif o == "-d":
|
||||
flag_d = True
|
||||
elif o == "-D":
|
||||
|
|
@ -80,6 +86,19 @@ def get_database(segtype):
|
|||
return segbitsdb[segtype]
|
||||
|
||||
def handle_segment(segname):
|
||||
if segname is None:
|
||||
segframes = set()
|
||||
for segname, segdata in grid["segments"].items():
|
||||
framebase = int(segdata["baseaddr"][0], 16)
|
||||
for i in range(segdata["frames"]):
|
||||
segframes.add(framebase+i)
|
||||
for frame in sorted(bitdata.keys()):
|
||||
if frame in segframes:
|
||||
continue
|
||||
for wordidx in sorted(bitdata[frame].keys()):
|
||||
for bitidx in sorted(bitdata[frame][wordidx]):
|
||||
print("bit_%08x_%03d_%02d" % (frame, wordidx, bitidx))
|
||||
return
|
||||
if ":" in segname:
|
||||
seg1, seg2 = segname.split(":")
|
||||
|
||||
|
|
@ -163,6 +182,9 @@ def handle_segment(segname):
|
|||
for tag in sorted(segtags):
|
||||
print("tag %s" % tag)
|
||||
|
||||
if flag_b:
|
||||
handle_segment(None)
|
||||
|
||||
if len(args) == 1:
|
||||
seglist = list()
|
||||
for seg, seginfo in grid["segments"].items():
|
||||
|
|
|
|||
Loading…
Reference in New Issue