summaryrefslogtreecommitdiff
path: root/backends/verilog
diff options
context:
space:
mode:
Diffstat (limited to 'backends/verilog')
-rw-r--r--backends/verilog/verilog_backend.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/backends/verilog/verilog_backend.cc b/backends/verilog/verilog_backend.cc
index d7fe4c4e..6be26329 100644
--- a/backends/verilog/verilog_backend.cc
+++ b/backends/verilog/verilog_backend.cc
@@ -581,6 +581,22 @@ bool dump_cell_expr(FILE *f, std::string indent, RTLIL::Cell *cell)
return true;
}
+ if (cell->type == "$bu0")
+ {
+ fprintf(f, "%s" "assign ", indent.c_str());
+ dump_sigspec(f, cell->connections["\\Y"]);
+ if (cell->parameters["\\A_SIGNED"].as_bool()) {
+ fprintf(f, " = $signed(");
+ dump_sigspec(f, cell->connections["\\A"]);
+ fprintf(f, ");\n");
+ } else {
+ fprintf(f, " = { 1'b0, ");
+ dump_sigspec(f, cell->connections["\\A"]);
+ fprintf(f, " };\n");
+ }
+ return true;
+ }
+
if (cell->type == "$concat")
{
fprintf(f, "%s" "assign ", indent.c_str());