aboutsummaryrefslogtreecommitdiffstats
path: root/backends
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2017-10-10 15:16:45 +0200
committerClifford Wolf <clifford@clifford.at>2017-10-10 15:16:45 +0200
commit12c10892e6783e0a1ef52776c232dd342745543f (patch)
tree52482dfe8d609403b743698116e889599a5f19db /backends
parentc10e96c9ec8c4e56935ba796af0fa3d1f22b2a71 (diff)
parent7c57d8fbb44cdc466f4e384528109ada7e52b4c1 (diff)
downloadyosys-12c10892e6783e0a1ef52776c232dd342745543f.tar.gz
yosys-12c10892e6783e0a1ef52776c232dd342745543f.tar.bz2
yosys-12c10892e6783e0a1ef52776c232dd342745543f.zip
Merge branch 'master' of github.com:cliffordwolf/yosys
Diffstat (limited to 'backends')
-rw-r--r--backends/verilog/verilog_backend.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/backends/verilog/verilog_backend.cc b/backends/verilog/verilog_backend.cc
index fb0add847..bdf705056 100644
--- a/backends/verilog/verilog_backend.cc
+++ b/backends/verilog/verilog_backend.cc
@@ -678,6 +678,23 @@ bool dump_cell_expr(std::ostream &f, std::string indent, RTLIL::Cell *cell)
#undef HANDLE_UNIOP
#undef HANDLE_BINOP
+ if (cell->type == "$shiftx")
+ {
+ f << stringf("%s" "assign ", indent.c_str());
+ dump_sigspec(f, cell->getPort("\\Y"));
+ f << stringf(" = ");
+ dump_sigspec(f, cell->getPort("\\A"));
+ f << stringf("[");
+ if (cell->getParam("\\B_SIGNED").as_bool())
+ f << stringf("$signed(");
+ dump_sigspec(f, cell->getPort("\\B"));
+ if (cell->getParam("\\B_SIGNED").as_bool())
+ f << stringf(")");
+ f << stringf(" +: %d", cell->getParam("\\Y_WIDTH").as_int());
+ f << stringf("];\n");
+ return true;
+ }
+
if (cell->type == "$mux")
{
f << stringf("%s" "assign ", indent.c_str());