mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-21 16:16:39 +00:00
Make splitnetlist more efficient, no preliminary opt_clean in submod, remove $buf cells in opt_clean
This commit is contained in:
parent
a83e5f46d0
commit
941d78a6ac
|
@ -161,10 +161,6 @@ struct SplitNetlist : public ScriptPass {
|
|||
log("Running splitnetlist pass\n");
|
||||
log_flush();
|
||||
|
||||
// Add buffers for pass-through and connections to constants
|
||||
// so we can find cells that can be used by submod
|
||||
Pass::call(design, "bufnorm -buf");
|
||||
|
||||
if (debug)
|
||||
run_pass("write_rtlil post_buf.rtlil");
|
||||
|
||||
|
@ -268,10 +264,6 @@ struct SplitNetlist : public ScriptPass {
|
|||
// Execute the submod command
|
||||
Pass::call(design, "submod");
|
||||
|
||||
// Remove buffers introduced by bufnorm
|
||||
Pass::call(design, "techmap -D SIMLIB_NOCHECKS -map +/simlib.v t:$buf");
|
||||
Pass::call(design, "clean");
|
||||
|
||||
log("End splitnetlist pass\n");
|
||||
log_flush();
|
||||
}
|
||||
|
|
|
@ -381,8 +381,8 @@ struct SubmodPass : public Pass {
|
|||
|
||||
if (opt_name.empty())
|
||||
{
|
||||
Pass::call(design, "opt_clean");
|
||||
log_header(design, "Continuing SUBMOD pass.\n");
|
||||
// Pass::call(design, "opt_clean");
|
||||
// log_header(design, "Continuing SUBMOD pass.\n");
|
||||
|
||||
std::set<RTLIL::IdString> handled_modules;
|
||||
|
||||
|
|
|
@ -601,7 +601,7 @@ void rmunused_module(RTLIL::Module *module, bool purge_mode, bool unusedbitsattr
|
|||
|
||||
std::vector<RTLIL::Cell*> delcells;
|
||||
for (auto cell : module->cells())
|
||||
if (cell->type.in(ID($pos), ID($_BUF_)) && !cell->has_keep_attr()) {
|
||||
if (cell->type.in(ID($pos), ID($_BUF_), ID($buf)) && !cell->has_keep_attr()) {
|
||||
bool is_signed = cell->type == ID($pos) && cell->getParam(ID::A_SIGNED).as_bool();
|
||||
RTLIL::SigSpec a = cell->getPort(ID::A);
|
||||
RTLIL::SigSpec y = cell->getPort(ID::Y);
|
||||
|
|
Loading…
Reference in a new issue