mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-22 08:35:32 +00:00
pass no_split_complex_ports to hierarchy command
This commit is contained in:
parent
cad46d9c66
commit
615f523ef4
3 changed files with 12 additions and 6 deletions
|
@ -2938,7 +2938,7 @@ void verific_cleanup()
|
|||
verific_import_pending = false;
|
||||
}
|
||||
|
||||
std::string verific_import(Design *design, const std::map<std::string,std::string> ¶meters, std::string top, bool opt)
|
||||
std::string verific_import(Design *design, const std::map<std::string,std::string> ¶meters, std::string top, bool opt, bool no_split_complex_port)
|
||||
{
|
||||
verific_sva_fsm_limit = 16;
|
||||
|
||||
|
@ -2964,8 +2964,9 @@ std::string verific_import(Design *design, const std::map<std::string,std::strin
|
|||
if (!verific_error_msg.empty())
|
||||
log_error("%s\n", verific_error_msg.c_str());
|
||||
|
||||
for (auto nl : nl_todo)
|
||||
nl.second->ChangePortBusStructures(1 /* hierarchical */);
|
||||
if (!no_split_complex_port)
|
||||
for (auto nl : nl_todo)
|
||||
nl.second->ChangePortBusStructures(1 /* hierarchical */);
|
||||
|
||||
VerificExtNets worker;
|
||||
for (auto nl : nl_todo)
|
||||
|
|
|
@ -27,7 +27,7 @@ YOSYS_NAMESPACE_BEGIN
|
|||
extern int verific_verbose;
|
||||
|
||||
extern bool verific_import_pending;
|
||||
extern std::string verific_import(Design *design, const std::map<std::string,std::string> ¶meters, std::string top = std::string(), bool opt = true);
|
||||
extern std::string verific_import(Design *design, const std::map<std::string,std::string> ¶meters, std::string top = std::string(), bool opt = true, bool no_split_complex_ports = true);
|
||||
|
||||
extern pool<int> verific_sva_prims;
|
||||
|
||||
|
|
|
@ -825,6 +825,7 @@ struct HierarchyPass : public Pass {
|
|||
log_header(design, "Executing HIERARCHY pass (managing design hierarchy).\n");
|
||||
|
||||
bool flag_opt = false;
|
||||
bool flag_no_split_complex_ports = false;
|
||||
bool flag_check = false;
|
||||
bool flag_simcheck = false;
|
||||
bool flag_smtcheck = false;
|
||||
|
@ -940,6 +941,10 @@ struct HierarchyPass : public Pass {
|
|||
flag_opt = true;
|
||||
continue;
|
||||
}
|
||||
if (args[argidx] == "-no_split_complex_ports") {
|
||||
flag_no_split_complex_ports = true;
|
||||
continue;
|
||||
}
|
||||
if (args[argidx] == "-chparam" && argidx+2 < args.size()) {
|
||||
const std::string &key = args[++argidx];
|
||||
const std::string &value = args[++argidx];
|
||||
|
@ -989,7 +994,7 @@ struct HierarchyPass : public Pass {
|
|||
if (top_mod == nullptr && !load_top_mod.empty()) {
|
||||
#ifdef YOSYS_ENABLE_VERIFIC
|
||||
if (verific_import_pending) {
|
||||
load_top_mod = verific_import(design, parameters, load_top_mod, flag_opt);
|
||||
load_top_mod = verific_import(design, parameters, load_top_mod, flag_opt, flag_no_split_complex_ports);
|
||||
top_mod = design->module(RTLIL::escape_id(load_top_mod));
|
||||
}
|
||||
#endif
|
||||
|
@ -998,7 +1003,7 @@ struct HierarchyPass : public Pass {
|
|||
} else {
|
||||
#ifdef YOSYS_ENABLE_VERIFIC
|
||||
if (verific_import_pending)
|
||||
verific_import(design, parameters, std::string(), flag_opt);
|
||||
verific_import(design, parameters, std::string(), flag_opt, flag_no_split_complex_ports);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue