diff options
Diffstat (limited to 'kernel/rtlil.cc')
-rw-r--r-- | kernel/rtlil.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc index 12aa35df3..4c944c93c 100644 --- a/kernel/rtlil.cc +++ b/kernel/rtlil.cc @@ -462,6 +462,24 @@ namespace { return; } + if (cell->type == "$slice") { + param("\\OFFSET"); + port("\\A", param("\\A_WIDTH")); + port("\\Y", param("\\Y_WIDTH")); + if (param("\\OFFSET") + param("\\Y_WIDTH") > param("\\A_WIDTH")) + error(__LINE__); + check_expected(); + return; + } + + if (cell->type == "$concat") { + port("\\A", param("\\A_WIDTH")); + port("\\B", param("\\B_WIDTH")); + port("\\Y", param("\\A_WIDTH") + param("\\B_WIDTH")); + check_expected(); + return; + } + if (cell->type == "$mux") { port("\\A", param("\\WIDTH")); port("\\B", param("\\WIDTH")); |