aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/celltypes.h1
-rw-r--r--kernel/rtlil.cc9
2 files changed, 10 insertions, 0 deletions
diff --git a/kernel/celltypes.h b/kernel/celltypes.h
index 60e6606f8..57bcde471 100644
--- a/kernel/celltypes.h
+++ b/kernel/celltypes.h
@@ -135,6 +135,7 @@ struct CellTypes
setup_type("$memrd", {CLK, ADDR}, {DATA});
setup_type("$memwr", {CLK, EN, ADDR, DATA}, pool<RTLIL::IdString>());
+ setup_type("$meminit", {ADDR, DATA}, pool<RTLIL::IdString>());
setup_type("$mem", {RD_CLK, RD_ADDR, WR_CLK, WR_EN, WR_ADDR, WR_DATA}, {RD_DATA});
setup_type("$fsm", {CLK, ARST, CTRL_IN}, {CTRL_OUT});
diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc
index 776625b9c..9fd3d2959 100644
--- a/kernel/rtlil.cc
+++ b/kernel/rtlil.cc
@@ -904,6 +904,15 @@ namespace {
return;
}
+ if (cell->type == "$meminit") {
+ param("\\MEMID");
+ param("\\PRIORITY");
+ port("\\ADDR", param("\\ABITS"));
+ port("\\DATA", param("\\WIDTH"));
+ check_expected();
+ return;
+ }
+
if (cell->type == "$mem") {
param("\\MEMID");
param("\\SIZE");