diff options
Diffstat (limited to 'kernel/celltypes.h')
-rw-r--r-- | kernel/celltypes.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/kernel/celltypes.h b/kernel/celltypes.h index f0ead1e8..fcc4fcc4 100644 --- a/kernel/celltypes.h +++ b/kernel/celltypes.h @@ -20,7 +20,7 @@ #ifndef CELLTYPES_H #define CELLTYPES_H -#include <kernel/yosys.h> +#include "kernel/yosys.h" YOSYS_NAMESPACE_BEGIN @@ -116,9 +116,14 @@ struct CellTypes setup_type("$assert", {A, EN}, pool<RTLIL::IdString>(), true); setup_type("$assume", {A, EN}, pool<RTLIL::IdString>(), true); + setup_type("$live", {A, EN}, pool<RTLIL::IdString>(), true); + setup_type("$fair", {A, EN}, pool<RTLIL::IdString>(), true); + setup_type("$cover", {A, EN}, pool<RTLIL::IdString>(), true); setup_type("$initstate", pool<RTLIL::IdString>(), {Y}, true); setup_type("$anyconst", pool<RTLIL::IdString>(), {Y}, true); setup_type("$anyseq", pool<RTLIL::IdString>(), {Y}, true); + setup_type("$allconst", pool<RTLIL::IdString>(), {Y}, true); + setup_type("$allseq", pool<RTLIL::IdString>(), {Y}, true); setup_type("$equiv", {A, B}, {Y}, true); } @@ -164,6 +169,8 @@ struct CellTypes setup_type("$_NOR_", {A, B}, {Y}, true); setup_type("$_XOR_", {A, B}, {Y}, true); setup_type("$_XNOR_", {A, B}, {Y}, true); + setup_type("$_ANDNOT_", {A, B}, {Y}, true); + setup_type("$_ORNOT_", {A, B}, {Y}, true); setup_type("$_MUX_", {A, B, S}, {Y}, true); setup_type("$_MUX4_", {A, B, C, D, S, T}, {Y}, true); setup_type("$_MUX8_", {A, B, C, D, E, F, G, H, S, T, U}, {Y}, true); @@ -312,11 +319,15 @@ struct CellTypes if (type == "$_OR_") return const_or(arg1, arg2, false, false, 1); if (type == "$_NOR_") - return eval_not(const_and(arg1, arg2, false, false, 1)); + return eval_not(const_or(arg1, arg2, false, false, 1)); if (type == "$_XOR_") return const_xor(arg1, arg2, false, false, 1); if (type == "$_XNOR_") return const_xnor(arg1, arg2, false, false, 1); + if (type == "$_ANDNOT_") + return const_and(arg1, eval_not(arg2), false, false, 1); + if (type == "$_ORNOT_") + return const_or(arg1, eval_not(arg2), false, false, 1); log_abort(); } |