mirror of https://github.com/openXC7/prjxray.git
parsedb: merge in dbcheck
Signed-off-by: John McMaster <johndmcmaster@gmail.com>
This commit is contained in:
parent
adc20bcf89
commit
2bb5677d44
|
|
@ -47,7 +47,8 @@ Related tools:
|
|||
* dbfixup.py: internal tool that expands multi-bit encodings (ex: one hot) into groups. For example:
|
||||
* .rdb file with one hot: BRAM.RAMB18_Y1.WRITE_WIDTH_A_18 27_267
|
||||
* .db: file expanded: BRAM.RAMB18_Y1.WRITE_WIDTH_A_18 !27_268 !27_269 27_267
|
||||
* dbcheck.py: valides that a database is fully and consistently solved
|
||||
* parsedb.py: valides that a database is fully and consistently solved
|
||||
* Optionally outputs to canonical form
|
||||
* Ex: complains if const0 entries exist
|
||||
* Ex: complains if symbols are duplicated (such as after a mergedb after rename)
|
||||
* mergedb.sh: adds new bit entries to an existing db
|
||||
|
|
|
|||
|
|
@ -1,47 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import sys, re
|
||||
|
||||
database = dict()
|
||||
database_r = dict()
|
||||
|
||||
for arg in sys.argv[1:]:
|
||||
with open(arg, "r") as f:
|
||||
for line in f:
|
||||
if "<" in line:
|
||||
raise Exception("Found '<' in this line: %s" % line)
|
||||
|
||||
line = line.split()
|
||||
key = line[0]
|
||||
bits = tuple(sorted(set(line[1:])))
|
||||
|
||||
if key in database:
|
||||
print("Warning: Duplicate key: %s %s" % (key, bits))
|
||||
|
||||
if bits in database_r:
|
||||
print("Warning: Duplicate bits: %s %s" % (key, bits))
|
||||
|
||||
database[key] = bits
|
||||
database_r[bits] = key
|
||||
|
||||
|
||||
def get_subsets(bits):
|
||||
retval = list()
|
||||
retval.append(bits)
|
||||
for i in range(len(bits)):
|
||||
for s in get_subsets(bits[i + 1:]):
|
||||
retval.append(bits[0:i] + s)
|
||||
return retval
|
||||
|
||||
|
||||
def check_subsets(bits):
|
||||
for sub_bits in sorted(get_subsets(bits)):
|
||||
if sub_bits != bits and sub_bits != ():
|
||||
if sub_bits in database_r:
|
||||
print(
|
||||
"Warning: Entry %s %s is a subset of entry %s %s." %
|
||||
(database_r[sub_bits], sub_bits, database_r[bits], bits))
|
||||
|
||||
|
||||
for key, bits in database.items():
|
||||
check_subsets(bits)
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
#!/bin/bash
|
||||
python3 ${XRAY_UTILS_DIR}/dbcheck.py ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits_{clblm,int}_l.db
|
||||
python3 ${XRAY_UTILS_DIR}/dbcheck.py ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits_{clblm,int}_r.db
|
||||
python3 ${XRAY_UTILS_DIR}/dbcheck.py ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits_{clbll,int}_l.db
|
||||
python3 ${XRAY_UTILS_DIR}/dbcheck.py ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits_{clbll,int}_r.db
|
||||
python3 ${XRAY_UTILS_DIR}/dbcheck.py ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits_hclk_l.db
|
||||
python3 ${XRAY_UTILS_DIR}/dbcheck.py ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits_hclk_r.db
|
||||
|
|
@ -19,7 +19,6 @@ export XRAY_GENHEADER="${XRAY_UTILS_DIR}/genheader.sh"
|
|||
export XRAY_BITREAD="${XRAY_TOOLS_DIR}/bitread --part_file ${XRAY_PART_YAML}"
|
||||
export XRAY_MERGEDB="bash ${XRAY_UTILS_DIR}/mergedb.sh"
|
||||
export XRAY_DBFIXUP="python3 ${XRAY_UTILS_DIR}/dbfixup.py"
|
||||
export XRAY_DBCHECK="bash ${XRAY_UTILS_DIR}/dbcheck.sh"
|
||||
export XRAY_MASKMERGE="bash ${XRAY_UTILS_DIR}/maskmerge.sh"
|
||||
export XRAY_SEGMATCH="${XRAY_TOOLS_DIR}/segmatch"
|
||||
export XRAY_SEGPRINT="python3 ${XRAY_UTILS_DIR}/segprint.py"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import sys, re
|
||||
from prjxray import util
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue