From fc3b3c4ec3955b165166d9f44965fac0e1879505 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Fri, 7 Feb 2014 17:44:57 +0100 Subject: Added $slice and $concat cell types --- backends/verilog/verilog_backend.cc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'backends') diff --git a/backends/verilog/verilog_backend.cc b/backends/verilog/verilog_backend.cc index d8160c97b..d7fe4c4e2 100644 --- a/backends/verilog/verilog_backend.cc +++ b/backends/verilog/verilog_backend.cc @@ -571,6 +571,28 @@ bool dump_cell_expr(FILE *f, std::string indent, RTLIL::Cell *cell) return true; } + if (cell->type == "$slice") + { + fprintf(f, "%s" "assign ", indent.c_str()); + dump_sigspec(f, cell->connections["\\Y"]); + fprintf(f, " = "); + dump_sigspec(f, cell->connections["\\A"]); + fprintf(f, " >> %d;\n", cell->parameters.at("\\OFFSET").as_int()); + return true; + } + + if (cell->type == "$concat") + { + fprintf(f, "%s" "assign ", indent.c_str()); + dump_sigspec(f, cell->connections["\\Y"]); + fprintf(f, " = { "); + dump_sigspec(f, cell->connections["\\B"]); + fprintf(f, " , "); + dump_sigspec(f, cell->connections["\\A"]); + fprintf(f, " };\n"); + return true; + } + if (cell->type == "$dff" || cell->type == "$adff") { RTLIL::SigSpec sig_clk, sig_arst, val_arst; -- cgit v1.2.3