diff options
author | Clifford Wolf <clifford@clifford.at> | 2018-03-06 15:06:35 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2018-03-06 15:06:35 +0100 |
commit | 7bb83ae9f29f585428a4a43e58fe19bea10f0711 (patch) | |
tree | 4faa8f6caf83cad4e6d014b8e8dd38aa22152277 | |
parent | 78f2cca2d92e4a88ea8192af86e89bf4fdfa9a49 (diff) | |
download | yosys-7bb83ae9f29f585428a4a43e58fe19bea10f0711.tar.gz yosys-7bb83ae9f29f585428a4a43e58fe19bea10f0711.tar.bz2 yosys-7bb83ae9f29f585428a4a43e58fe19bea10f0711.zip |
Add SVA first_match() support
Signed-off-by: Clifford Wolf <clifford@clifford.at>
-rw-r--r-- | frontends/verific/verificsva.cc | 16 |
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"); |