diff options
author | Marcelina KoĆcielnicka <mwk@0x04.net> | 2020-04-16 15:51:03 +0200 |
---|---|---|
committer | Marcelina KoĆcielnicka <mwk@0x04.net> | 2020-04-21 19:09:00 +0200 |
commit | 06a344efcb4a8c56f230715481ce07e715a7a4b3 (patch) | |
tree | 7d5aa868e0843ab0309b7325b88f145493d962e9 /frontends/ast | |
parent | 79efaa65ad73520e4354bdc33622216bf29892fc (diff) | |
download | yosys-06a344efcb4a8c56f230715481ce07e715a7a4b3.tar.gz yosys-06a344efcb4a8c56f230715481ce07e715a7a4b3.tar.bz2 yosys-06a344efcb4a8c56f230715481ce07e715a7a4b3.zip |
ilang, ast: Store parameter order and default value information.
Fixes #1819, #1820.
Diffstat (limited to 'frontends/ast')
-rw-r--r-- | frontends/ast/ast.cc | 2 | ||||
-rw-r--r-- | frontends/ast/genrtlil.cc | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/frontends/ast/ast.cc b/frontends/ast/ast.cc index 9ddd538b5..733556621 100644 --- a/frontends/ast/ast.cc +++ b/frontends/ast/ast.cc @@ -1074,8 +1074,6 @@ static AstModule* process_module(AstNode *ast, bool defer, AstNode *original_ast if (child->type == AST_WIRE && (child->is_input || child->is_output)) { new_children.push_back(child); } else if (child->type == AST_PARAMETER) { - child->delete_children(); - child->children.push_back(AstNode::mkconst_int(0, false, 0)); new_children.push_back(child); } else if (child->type == AST_CELL && child->children.size() > 0 && child->children[0]->type == AST_CELLTYPE && (child->children[0]->str == "$specify2" || child->children[0]->str == "$specify3" || child->children[0]->str == "$specrule")) { diff --git a/frontends/ast/genrtlil.cc b/frontends/ast/genrtlil.cc index ff3f5b84c..d35335747 100644 --- a/frontends/ast/genrtlil.cc +++ b/frontends/ast/genrtlil.cc @@ -1015,7 +1015,10 @@ RTLIL::SigSpec AstNode::genRTLIL(int width_hint, bool sign_hint) // remember the parameter, needed for example in techmap case AST_PARAMETER: - current_module->avail_parameters.insert(str); + current_module->avail_parameters(str); + if (GetSize(children) >= 1 && children[0]->type == AST_CONSTANT) { + current_module->parameter_default_values[str] = children[0]->asParaConst(); + } /* fall through */ case AST_LOCALPARAM: if (flag_pwires) |