diff options
author | Sergi Granell <xerpi.g.12@gmail.com> | 2018-03-27 09:35:20 +0200 |
---|---|---|
committer | Sergi Granell <xerpi.g.12@gmail.com> | 2018-03-27 09:35:20 +0200 |
commit | f93f8aaa114b06e046a107c9e1f77046a4b5b1fc (patch) | |
tree | 8a18ca5f81134be0c4aa8cba4a1453804781b6d5 /passes/hierarchy | |
parent | 77bd645c35225d4fa1a1c632457acfb47b7388eb (diff) | |
download | yosys-f93f8aaa114b06e046a107c9e1f77046a4b5b1fc.tar.gz yosys-f93f8aaa114b06e046a107c9e1f77046a4b5b1fc.tar.bz2 yosys-f93f8aaa114b06e046a107c9e1f77046a4b5b1fc.zip |
passes/hierarchy: Reduce code duplication in expand_module
This also makes it easier to add new file extensions support.
Signed-off-by: Sergi Granell <xerpi.g.12@gmail.com>
Diffstat (limited to 'passes/hierarchy')
-rw-r--r-- | passes/hierarchy/hierarchy.cc | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/passes/hierarchy/hierarchy.cc b/passes/hierarchy/hierarchy.cc index 71b0cf622..21a232572 100644 --- a/passes/hierarchy/hierarchy.cc +++ b/passes/hierarchy/hierarchy.cc @@ -173,22 +173,20 @@ bool expand_module(RTLIL::Design *design, RTLIL::Module *module, bool flag_check for (auto &dir : libdirs) { - filename = dir + "/" + RTLIL::unescape_id(cell->type) + ".v"; - if (check_file_exists(filename)) { - Frontend::frontend_call(design, NULL, filename, "verilog"); - goto loaded_module; - } - - filename = dir + "/" + RTLIL::unescape_id(cell->type) + ".sv"; - if (check_file_exists(filename)) { - Frontend::frontend_call(design, NULL, filename, "verilog -sv"); - goto loaded_module; - } + static const std::map<std::string, std::string> extensions_map = + { + {".v", "verilog"}, + {".sv", "verilog -sv"}, + {".il", "ilang"} + }; - filename = dir + "/" + RTLIL::unescape_id(cell->type) + ".il"; - if (check_file_exists(filename)) { - Frontend::frontend_call(design, NULL, filename, "ilang"); - goto loaded_module; + for (auto &ext : extensions_map) + { + filename = dir + "/" + RTLIL::unescape_id(cell->type) + ext.first; + if (check_file_exists(filename)) { + Frontend::frontend_call(design, NULL, filename, ext.second); + goto loaded_module; + } } } |