aboutsummaryrefslogtreecommitdiffstats
path: root/frontends
diff options
context:
space:
mode:
authorVamsi K Vytla <vamsi.vytla@gmail.com>2020-04-27 09:44:24 -0700
committerVamsi K Vytla <vamsi.vytla@gmail.com>2020-04-27 09:44:24 -0700
commit5f9cd2e2f6cdea9f00cb5a042c7fe472fb54ef4c (patch)
tree4a8694391c20cf6e6a8623f6e9fdc7c6daee3297 /frontends
parent3eb24809a1d80f4b7015e6f8b1458e300727c244 (diff)
downloadyosys-5f9cd2e2f6cdea9f00cb5a042c7fe472fb54ef4c.tar.gz
yosys-5f9cd2e2f6cdea9f00cb5a042c7fe472fb54ef4c.tar.bz2
yosys-5f9cd2e2f6cdea9f00cb5a042c7fe472fb54ef4c.zip
Preserve 'signed'-ness of a verilog wire through RTLIL
As per suggestion made in https://github.com/YosysHQ/yosys/pull/1987, now: RTLIL::wire holds an is_signed field. This is exported in JSON backend This is exported via dump_rtlil command This is read in via ilang_parser
Diffstat (limited to 'frontends')
-rw-r--r--frontends/ast/genrtlil.cc1
-rw-r--r--frontends/ilang/ilang_parser.y3
2 files changed, 4 insertions, 0 deletions
diff --git a/frontends/ast/genrtlil.cc b/frontends/ast/genrtlil.cc
index d35335747..93fcfb396 100644
--- a/frontends/ast/genrtlil.cc
+++ b/frontends/ast/genrtlil.cc
@@ -1058,6 +1058,7 @@ RTLIL::SigSpec AstNode::genRTLIL(int width_hint, bool sign_hint)
wire->port_input = is_input;
wire->port_output = is_output;
wire->upto = range_swapped;
+ wire->is_signed = is_signed;
for (auto &attr : attributes) {
if (attr.second->type != AST_CONSTANT)
diff --git a/frontends/ilang/ilang_parser.y b/frontends/ilang/ilang_parser.y
index 8e21fb176..43b628e09 100644
--- a/frontends/ilang/ilang_parser.y
+++ b/frontends/ilang/ilang_parser.y
@@ -192,6 +192,9 @@ wire_options:
wire_options TOK_UPTO {
current_wire->upto = true;
} |
+ wire_options TOK_SIGNED {
+ current_wire->is_signed = true;
+ } |
wire_options TOK_OFFSET TOK_INT {
current_wire->start_offset = $3;
} |