mirror of https://github.com/YosysHQ/yosys.git
Preserve string parameters
This commit is contained in:
parent
c6d8d70109
commit
1e927a51d5
|
@ -1104,7 +1104,10 @@ RTLIL::IdString AstModule::derive(RTLIL::Design *design, dict<RTLIL::IdString, R
|
||||||
rewrite_parameter:
|
rewrite_parameter:
|
||||||
para_info += stringf("%s=%s", child->str.c_str(), log_signal(RTLIL::SigSpec(parameters[para_id])));
|
para_info += stringf("%s=%s", child->str.c_str(), log_signal(RTLIL::SigSpec(parameters[para_id])));
|
||||||
delete child->children.at(0);
|
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);
|
parameters.erase(para_id);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -1118,7 +1121,10 @@ RTLIL::IdString AstModule::derive(RTLIL::Design *design, dict<RTLIL::IdString, R
|
||||||
for (auto param : parameters) {
|
for (auto param : parameters) {
|
||||||
AstNode *defparam = new AstNode(AST_DEFPARAM, new AstNode(AST_IDENTIFIER));
|
AstNode *defparam = new AstNode(AST_DEFPARAM, new AstNode(AST_IDENTIFIER));
|
||||||
defparam->children[0]->str = param.first.str();
|
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);
|
new_ast->children.push_back(defparam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue