aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2019-08-07 15:31:49 +0200
committerClifford Wolf <clifford@clifford.at>2019-08-07 15:31:49 +0200
commit9260e97aa28b245ee88d81d162bb6b83cbc5eab0 (patch)
tree8d3f9f90a01a1961fa9ef3671bc4f2aac42152e6 /kernel
parente9a756aa7a8831e644b36cfb6731e5629adc3dc6 (diff)
downloadyosys-9260e97aa28b245ee88d81d162bb6b83cbc5eab0.tar.gz
yosys-9260e97aa28b245ee88d81d162bb6b83cbc5eab0.tar.bz2
yosys-9260e97aa28b245ee88d81d162bb6b83cbc5eab0.zip
Automatically prune init attributes in verific front-end, fixes #1237
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/celltypes.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/kernel/celltypes.h b/kernel/celltypes.h
index d2594bc46..d1d9bf943 100644
--- a/kernel/celltypes.h
+++ b/kernel/celltypes.h
@@ -139,13 +139,10 @@ struct CellTypes
setup_type("$fa", {A, B, C}, {X, Y}, true);
}
- void setup_internals_mem()
+ void setup_internals_ff()
{
IdString SET = "\\SET", CLR = "\\CLR", CLK = "\\CLK", ARST = "\\ARST", EN = "\\EN";
- IdString Q = "\\Q", D = "\\D", ADDR = "\\ADDR", DATA = "\\DATA", RD_EN = "\\RD_EN";
- IdString RD_CLK = "\\RD_CLK", RD_ADDR = "\\RD_ADDR", WR_CLK = "\\WR_CLK", WR_EN = "\\WR_EN";
- IdString WR_ADDR = "\\WR_ADDR", WR_DATA = "\\WR_DATA", RD_DATA = "\\RD_DATA";
- IdString CTRL_IN = "\\CTRL_IN", CTRL_OUT = "\\CTRL_OUT";
+ IdString Q = "\\Q", D = "\\D";
setup_type("$sr", {SET, CLR}, {Q});
setup_type("$ff", {D}, {Q});
@@ -156,6 +153,18 @@ struct CellTypes
setup_type("$dlatch", {EN, D}, {Q});
setup_type("$dlatchsr", {EN, SET, CLR, D}, {Q});
+ }
+
+ void setup_internals_mem()
+ {
+ setup_internals_ff();
+
+ IdString CLK = "\\CLK", ARST = "\\ARST", EN = "\\EN";
+ IdString ADDR = "\\ADDR", DATA = "\\DATA", RD_EN = "\\RD_EN";
+ IdString RD_CLK = "\\RD_CLK", RD_ADDR = "\\RD_ADDR", WR_CLK = "\\WR_CLK", WR_EN = "\\WR_EN";
+ IdString WR_ADDR = "\\WR_ADDR", WR_DATA = "\\WR_DATA", RD_DATA = "\\RD_DATA";
+ IdString CTRL_IN = "\\CTRL_IN", CTRL_OUT = "\\CTRL_OUT";
+
setup_type("$memrd", {CLK, EN, ADDR}, {DATA});
setup_type("$memwr", {CLK, EN, ADDR, DATA}, pool<RTLIL::IdString>());
setup_type("$meminit", {ADDR, DATA}, pool<RTLIL::IdString>());