diff options
author | whitequark <whitequark@whitequark.org> | 2020-06-09 09:55:48 +0000 |
---|---|---|
committer | whitequark <whitequark@whitequark.org> | 2020-06-09 09:55:48 +0000 |
commit | 483a1081e7587f8b3bee6d56fb4e577a97281fbe (patch) | |
tree | 719987ff619479b0029928fb66f5899f05d1737e | |
parent | 74e3ac2449f521a50d5e88daa951acee1062e620 (diff) | |
download | yosys-483a1081e7587f8b3bee6d56fb4e577a97281fbe.tar.gz yosys-483a1081e7587f8b3bee6d56fb4e577a97281fbe.tar.bz2 yosys-483a1081e7587f8b3bee6d56fb4e577a97281fbe.zip |
RTLIL: add Module::addProcess, use it in Module::cloneInto. NFC.
-rw-r--r-- | kernel/rtlil.cc | 12 | ||||
-rw-r--r-- | kernel/rtlil.h | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc index b876862c8..ef81cac01 100644 --- a/kernel/rtlil.cc +++ b/kernel/rtlil.cc @@ -1536,13 +1536,13 @@ void RTLIL::Module::cloneInto(RTLIL::Module *new_mod) const new_mod->addWire(it.first, it.second); for (auto &it : memories) - new_mod->memories[it.first] = new RTLIL::Memory(*it.second); + new_mod->addMemory(it.first, it.second); for (auto &it : cells_) new_mod->addCell(it.first, it.second); for (auto &it : processes) - new_mod->processes[it.first] = it.second->clone(); + new_mod->addProcess(it.first, it.second); struct RewriteSigSpecWorker { @@ -1913,6 +1913,14 @@ RTLIL::Memory *RTLIL::Module::addMemory(RTLIL::IdString name, const RTLIL::Memor return mem; } +RTLIL::Process *RTLIL::Module::addProcess(RTLIL::IdString name, const RTLIL::Process *other) +{ + RTLIL::Process *proc = other->clone(); + proc->name = name; + processes[name] = proc; + return proc; +} + #define DEF_METHOD(_func, _y_size, _type) \ RTLIL::Cell* RTLIL::Module::add ## _func(RTLIL::IdString name, const RTLIL::SigSpec &sig_a, const RTLIL::SigSpec &sig_y, bool is_signed, const std::string &src) { \ RTLIL::Cell *cell = addCell(name, _type); \ diff --git a/kernel/rtlil.h b/kernel/rtlil.h index f751bdce4..f3dc3af68 100644 --- a/kernel/rtlil.h +++ b/kernel/rtlil.h @@ -1175,6 +1175,8 @@ public: RTLIL::Memory *addMemory(RTLIL::IdString name, const RTLIL::Memory *other); + RTLIL::Process *addProcess(RTLIL::IdString name, const RTLIL::Process *other); + // The add* methods create a cell and return the created cell. All signals must exist in advance. RTLIL::Cell* addNot (RTLIL::IdString name, const RTLIL::SigSpec &sig_a, const RTLIL::SigSpec &sig_y, bool is_signed = false, const std::string &src = ""); |