aboutsummaryrefslogtreecommitdiffstats
path: root/frontends/verific/verificsva.cc
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-03-06 15:06:35 +0100
committerClifford Wolf <clifford@clifford.at>2018-03-06 15:06:35 +0100
commit7bb83ae9f29f585428a4a43e58fe19bea10f0711 (patch)
tree4faa8f6caf83cad4e6d014b8e8dd38aa22152277 /frontends/verific/verificsva.cc
parent78f2cca2d92e4a88ea8192af86e89bf4fdfa9a49 (diff)
downloadyosys-7bb83ae9f29f585428a4a43e58fe19bea10f0711.tar.gz
yosys-7bb83ae9f29f585428a4a43e58fe19bea10f0711.tar.bz2
yosys-7bb83ae9f29f585428a4a43e58fe19bea10f0711.zip
Add SVA first_match() support
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'frontends/verific/verificsva.cc')
-rw-r--r--frontends/verific/verificsva.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/frontends/verific/verificsva.cc b/frontends/verific/verificsva.cc
index 8eee02661..41ce45048 100644
--- a/frontends/verific/verificsva.cc
+++ b/frontends/verific/verificsva.cc
@@ -1058,6 +1058,22 @@ struct VerificSvaImporter
return parse_sequence(fsm, start_node, new_clocking.body_net);
}
+ if (inst->Type() == PRIM_SVA_FIRST_MATCH)
+ {
+ SvaFsm match_fsm(clocking);
+ match_fsm.createLink(parse_sequence(match_fsm, match_fsm.startNode, inst->GetInput()), match_fsm.acceptNode);
+
+ int node = fsm.createNode();
+ match_fsm.getDFsm(fsm, start_node, node);
+
+ if (verific_verbose) {
+ log(" First Match FSM:\n");
+ match_fsm.dump();
+ }
+
+ return node;
+ }
+
if (inst->Type() == PRIM_SVA_SEQ_CONCAT)
{
const char *sva_low_s = inst->GetAttValue("sva:low");