3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-13 04:28:18 +00:00

Merge pull request #4173 from YosysHQ/verific_complex

verific: add option to skip simplifying complex ports
This commit is contained in:
N. Engelhardt 2024-02-01 12:08:40 +01:00 committed by GitHub
commit 9f27923782
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2815,6 +2815,9 @@ struct VerificPass : public Pass {
log(" -extnets\n"); log(" -extnets\n");
log(" Resolve references to external nets by adding module ports as needed.\n"); log(" Resolve references to external nets by adding module ports as needed.\n");
log("\n"); log("\n");
log(" -no-split-complex-ports\n");
log(" Complex ports (structs or arrays) are not split and remain packed as a single port.\n");
log("\n");
log(" -autocover\n"); log(" -autocover\n");
log(" Generate automatic cover statements for all asserts\n"); log(" Generate automatic cover statements for all asserts\n");
log("\n"); log("\n");
@ -3548,6 +3551,7 @@ struct VerificPass : public Pass {
bool mode_nosva = false, mode_names = false, mode_verific = false; bool mode_nosva = false, mode_names = false, mode_verific = false;
bool mode_autocover = false, mode_fullinit = false; bool mode_autocover = false, mode_fullinit = false;
bool flatten = false, extnets = false, mode_cells = false; bool flatten = false, extnets = false, mode_cells = false;
bool split_complex_ports = true;
string dumpfile; string dumpfile;
string ppfile; string ppfile;
Map parameters(STRING_HASH); Map parameters(STRING_HASH);
@ -3565,6 +3569,10 @@ struct VerificPass : public Pass {
flatten = true; flatten = true;
continue; continue;
} }
if (args[argidx] == "-no-split-complex-ports") {
split_complex_ports = false;
continue;
}
if (args[argidx] == "-extnets") { if (args[argidx] == "-extnets") {
extnets = true; extnets = true;
continue; continue;
@ -3804,8 +3812,10 @@ struct VerificPass : public Pass {
worker.run(nl.second); worker.run(nl.second);
} }
for (auto nl : nl_todo) if (split_complex_ports) {
nl.second->ChangePortBusStructures(1 /* hierarchical */); for (auto nl : nl_todo)
nl.second->ChangePortBusStructures(1 /* hierarchical */);
}
if (!dumpfile.empty()) { if (!dumpfile.empty()) {
VeriWrite veri_writer; VeriWrite veri_writer;