summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2015-01-19 11:55:05 +0100
committerClifford Wolf <clifford@clifford.at>2015-01-19 11:55:05 +0100
commite13a45ae61e05705d9ab6890da60737bd05eb24d (patch)
tree07fc6268083538311b2bffe59a105119e55933cd /kernel
parent3a58b8d5b5160b7f31c885d904dbdb752a1c1e62 (diff)
Added $equiv cell type
Diffstat (limited to 'kernel')
-rw-r--r--kernel/celltypes.h1
-rw-r--r--kernel/rtlil.cc8
2 files changed, 9 insertions, 0 deletions
diff --git a/kernel/celltypes.h b/kernel/celltypes.h
index 3a56de2f..60e6606f 100644
--- a/kernel/celltypes.h
+++ b/kernel/celltypes.h
@@ -114,6 +114,7 @@ struct CellTypes
setup_type("$fa", {A, B, C}, {X, Y}, true);
setup_type("$assert", {A, EN}, pool<RTLIL::IdString>(), true);
+ setup_type("$equiv", {A, B}, {Y}, true);
}
void setup_internals_mem()
diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc
index b35cbc3d..ec61cb52 100644
--- a/kernel/rtlil.cc
+++ b/kernel/rtlil.cc
@@ -905,6 +905,14 @@ namespace {
return;
}
+ if (cell->type == "$equiv") {
+ port("\\A", 1);
+ port("\\B", 1);
+ port("\\Y", 1);
+ check_expected();
+ return;
+ }
+
if (cell->type == "$_BUF_") { check_gate("AY"); return; }
if (cell->type == "$_NOT_") { check_gate("AY"); return; }
if (cell->type == "$_AND_") { check_gate("ABY"); return; }