mirror of
https://github.com/YosysHQ/sby.git
synced 2025-04-22 21:05:30 +00:00
Merge pull request #142 from nakengelhardt/fix_backslash_smt2
translate backslashes in cell names the same way as smt2 backend does
This commit is contained in:
commit
3d8f56b89a
3 changed files with 12 additions and 6 deletions
|
@ -91,11 +91,13 @@ class SbyModule:
|
|||
raise KeyError(f"Could not find assert at {location} in properties list!")
|
||||
return prop
|
||||
|
||||
def find_property_by_cellname(self, cell_name):
|
||||
def find_property_by_cellname(self, cell_name, trans_dict=dict()):
|
||||
# backends may need to mangle names irreversibly, so allow applying
|
||||
# the same transformation here
|
||||
for prop in self:
|
||||
if prop.name == cell_name:
|
||||
if cell_name == prop.name.translate(str.maketrans(trans_dict)):
|
||||
return prop
|
||||
raise KeyError(f"No such property: {cell_name}")
|
||||
raise KeyError(f"No such property: {smt2_name}")
|
||||
|
||||
def design_hierarchy(filename):
|
||||
design_json = json.load(filename)
|
||||
|
|
|
@ -160,6 +160,7 @@ def run(mode, task, engine_idx, engine):
|
|||
def output_callback(line):
|
||||
nonlocal proc_status
|
||||
nonlocal last_prop
|
||||
smt2_trans = {'\\':'/', '|':'/'}
|
||||
|
||||
match = re.match(r"^## [0-9: ]+ Status: FAILED", line)
|
||||
if match:
|
||||
|
@ -184,7 +185,7 @@ def run(mode, task, engine_idx, engine):
|
|||
match = re.match(r"^## [0-9: ]+ Assert failed in (\S+): (\S+) \((\S+)\)", line)
|
||||
if match:
|
||||
cell_name = match[3]
|
||||
prop = task.design_hierarchy.find_property_by_cellname(cell_name)
|
||||
prop = task.design_hierarchy.find_property_by_cellname(cell_name, trans_dict=smt2_trans)
|
||||
prop.status = "FAIL"
|
||||
last_prop = prop
|
||||
return line
|
||||
|
@ -192,7 +193,7 @@ def run(mode, task, engine_idx, engine):
|
|||
match = re.match(r"^## [0-9: ]+ Reached cover statement at (\S+) \((\S+)\) in step \d+.", line)
|
||||
if match:
|
||||
cell_name = match[2]
|
||||
prop = task.design_hierarchy.find_property_by_cellname(cell_name)
|
||||
prop = task.design_hierarchy.find_property_by_cellname(cell_name, trans_dict=smt2_trans)
|
||||
prop.status = "PASS"
|
||||
last_prop = prop
|
||||
return line
|
||||
|
@ -206,7 +207,7 @@ def run(mode, task, engine_idx, engine):
|
|||
match = re.match(r"^## [0-9: ]+ Unreached cover statement at (\S+) \((\S+)\).", line)
|
||||
if match:
|
||||
cell_name = match[2]
|
||||
prop = task.design_hierarchy.find_property_by_cellname(cell_name)
|
||||
prop = task.design_hierarchy.find_property_by_cellname(cell_name, trans_dict=smt2_trans)
|
||||
prop.status = "FAIL"
|
||||
|
||||
return line
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue