diff options
author | Andrew Zonenberg <azonenberg@drawersteak.com> | 2017-02-24 08:12:45 -0800 |
---|---|---|
committer | Andrew Zonenberg <azonenberg@drawersteak.com> | 2017-02-24 08:12:45 -0800 |
commit | 1f824fa6434fc15e17c2e28bb61c2405d983ec13 (patch) | |
tree | 9bd65b34bd20cee2c1d6c9e57bcceb075c32e1d6 /frontends/ast/ast.cc | |
parent | 2eabe43efa59f7264fec9252a79f937c6bd58a31 (diff) | |
parent | a9c3acf5a294537b5dbcfa790ac04d3f50bad522 (diff) | |
download | yosys-1f824fa6434fc15e17c2e28bb61c2405d983ec13.tar.gz yosys-1f824fa6434fc15e17c2e28bb61c2405d983ec13.tar.bz2 yosys-1f824fa6434fc15e17c2e28bb61c2405d983ec13.zip |
Merge https://github.com/cliffordwolf/yosys
Diffstat (limited to 'frontends/ast/ast.cc')
-rw-r--r-- | frontends/ast/ast.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/frontends/ast/ast.cc b/frontends/ast/ast.cc index 38a19a36f..06660102b 100644 --- a/frontends/ast/ast.cc +++ b/frontends/ast/ast.cc @@ -1104,7 +1104,10 @@ RTLIL::IdString AstModule::derive(RTLIL::Design *design, dict<RTLIL::IdString, R rewrite_parameter: para_info += stringf("%s=%s", child->str.c_str(), log_signal(RTLIL::SigSpec(parameters[para_id]))); delete child->children.at(0); - child->children[0] = AstNode::mkconst_bits(parameters[para_id].bits, (parameters[para_id].flags & RTLIL::CONST_FLAG_SIGNED) != 0); + if ((parameters[para_id].flags & RTLIL::CONST_FLAG_STRING) != 0) + child->children[0] = AstNode::mkconst_str(parameters[para_id].decode_string()); + else + child->children[0] = AstNode::mkconst_bits(parameters[para_id].bits, (parameters[para_id].flags & RTLIL::CONST_FLAG_SIGNED) != 0); parameters.erase(para_id); continue; } @@ -1118,7 +1121,10 @@ RTLIL::IdString AstModule::derive(RTLIL::Design *design, dict<RTLIL::IdString, R for (auto param : parameters) { AstNode *defparam = new AstNode(AST_DEFPARAM, new AstNode(AST_IDENTIFIER)); defparam->children[0]->str = param.first.str(); - defparam->children.push_back(AstNode::mkconst_bits(param.second.bits, (param.second.flags & RTLIL::CONST_FLAG_SIGNED) != 0)); + if ((param.second.flags & RTLIL::CONST_FLAG_STRING) != 0) + defparam->children.push_back(AstNode::mkconst_str(param.second.decode_string())); + else + defparam->children.push_back(AstNode::mkconst_bits(param.second.bits, (param.second.flags & RTLIL::CONST_FLAG_SIGNED) != 0)); new_ast->children.push_back(defparam); } |