3
0
Fork 0
mirror of https://github.com/YosysHQ/sby.git synced 2025-08-09 06:41:26 +00:00

More depth tracking

`SbyTask::update_status()` optionally takes the current step/depth, which gets used for some solvers/engines when exiting to pass unknown properties.
btor engine tracks the current step, but it doesn't track/report which property triggered a CEX so it's only useful on exit.
Use data source as a fallback if engine isn't provided (such as when coming from the `task_status` instead of an engine update).
This commit is contained in:
Krystine Sherwin 2025-07-08 15:47:31 +12:00
parent 0367db76f5
commit a332b017e4
No known key found for this signature in database
4 changed files with 18 additions and 7 deletions

View file

@ -1226,7 +1226,7 @@ class SbyTask(SbyConfig):
for prop in self.design.pass_unknown_asserts():
self.status_db.set_task_property_status(prop, data=data)
def update_status(self, new_status):
def update_status(self, new_status, step = None):
assert new_status in ["PASS", "FAIL", "UNKNOWN", "ERROR"]
self.status_db.set_task_status(new_status)
@ -1240,7 +1240,10 @@ class SbyTask(SbyConfig):
assert self.status != "FAIL"
self.status = "PASS"
if self.opt_mode in ("bmc", "prove") and self.design:
self.pass_unknown_asserts(dict(source="task_status"))
data = {"source": "task_status"}
if step:
data["step"] = step
self.pass_unknown_asserts(data)
elif new_status == "FAIL":
assert self.status != "PASS"