aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rtlil.cc
diff options
context:
space:
mode:
authorJannis Harder <me@jix.one>2022-08-16 14:18:35 +0200
committerGitHub <noreply@github.com>2022-08-16 14:18:35 +0200
commit556d008ed3c2db351e93e0075ccd47bdfb634fd9 (patch)
treeab23fa7355df8f8ead24839ee7846e68cdbfb935 /kernel/rtlil.cc
parentc26b2bf543a226e65a3fb07040bb278d668accf2 (diff)
parentf7023d06a2bda56467c8f07cc44d3b92f0eab2ba (diff)
downloadyosys-556d008ed3c2db351e93e0075ccd47bdfb634fd9.tar.gz
yosys-556d008ed3c2db351e93e0075ccd47bdfb634fd9.tar.bz2
yosys-556d008ed3c2db351e93e0075ccd47bdfb634fd9.zip
Merge pull request #3434 from jix/witness_flow
Updated formal flow with new witness format
Diffstat (limited to 'kernel/rtlil.cc')
-rw-r--r--kernel/rtlil.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc
index b274bba78..5211c3b3f 100644
--- a/kernel/rtlil.cc
+++ b/kernel/rtlil.cc
@@ -1632,6 +1632,13 @@ namespace {
return;
}
+ if (cell->type.in(ID($anyinit))) {
+ port(ID::D, param(ID::WIDTH));
+ port(ID::Q, param(ID::WIDTH));
+ check_expected();
+ return;
+ }
+
if (cell->type == ID($equiv)) {
port(ID::A, 1);
port(ID::B, 1);
@@ -3120,6 +3127,16 @@ RTLIL::Cell* RTLIL::Module::addDlatchsrGate(RTLIL::IdString name, const RTLIL::S
return cell;
}
+RTLIL::Cell* RTLIL::Module::addAnyinit(RTLIL::IdString name, const RTLIL::SigSpec &sig_d, const RTLIL::SigSpec &sig_q, const std::string &src)
+{
+ RTLIL::Cell *cell = addCell(name, ID($anyinit));
+ cell->parameters[ID::WIDTH] = sig_q.size();
+ cell->setPort(ID::D, sig_d);
+ cell->setPort(ID::Q, sig_q);
+ cell->set_src_attribute(src);
+ return cell;
+}
+
RTLIL::SigSpec RTLIL::Module::Anyconst(RTLIL::IdString name, int width, const std::string &src)
{
RTLIL::SigSpec sig = addWire(NEW_ID, width);