3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-25 01:55:33 +00:00

Improve Verific SVA importer

This commit is contained in:
Clifford Wolf 2017-07-27 14:05:09 +02:00
parent 877ff1f75e
commit c1cfca8f54
2 changed files with 42 additions and 7 deletions

View file

@ -1275,6 +1275,40 @@ struct VerificSvaImporter
return;
}
if (inst->Type() == PRIM_SVA_SEQ_CONCAT)
{
int sva_low = atoi(inst->GetAttValue("sva:low"));
int sva_high = atoi(inst->GetAttValue("sva:low"));
if (sva_low != sva_high)
log_error("Ranges on SVA sequence concatenation operator are not supported at the moment.\n");
parse_sequence(seq, inst->GetInput1());
for (int i = 0; i < sva_low; i++)
sequence_ff(seq);
parse_sequence(seq, inst->GetInput2());
return;
}
if (inst->Type() == PRIM_SVA_CONSECUTIVE_REPEAT)
{
int sva_low = atoi(inst->GetAttValue("sva:low"));
int sva_high = atoi(inst->GetAttValue("sva:low"));
if (sva_low != sva_high)
log_error("Ranges on SVA consecutive repeat operator are not supported at the moment.\n");
parse_sequence(seq, inst->GetInput());
for (int i = 1; i < sva_low; i++) {
sequence_ff(seq);
parse_sequence(seq, inst->GetInput());
}
return;
}
if (!importer->mode_keep)
log_error("Unsupported Verific SVA primitive %s of type %s.\n", inst->Name(), inst->View()->Owner()->Name());
log_warning("Unsupported Verific SVA primitive %s of type %s.\n", inst->Name(), inst->View()->Owner()->Name());