Skip to content

Commit c6f7e41

Browse files
authored
Merge pull request #1453 from diffblue/verilog-param-base-name
Verilog: parameter assignments use base name
2 parents 9cb15bc + 0ef4d0a commit c6f7e41

File tree

3 files changed

+5
-7
lines changed

3 files changed

+5
-7
lines changed

src/verilog/parser.y

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2015,7 +2015,6 @@ list_of_param_assignments:
20152015
param_assignment: param_identifier '=' constant_param_expression
20162016
{ init($$, ID_parameter);
20172017
auto base_name = stack_expr($1).id();
2018-
stack_expr($$).set(ID_identifier, base_name);
20192018
stack_expr($$).set(ID_base_name, base_name);
20202019
addswap($$, ID_value, $3); }
20212020
;
@@ -2030,7 +2029,6 @@ list_of_type_assignments:
20302029
type_assignment: param_identifier '=' data_type
20312030
{ init($$, ID_parameter);
20322031
auto base_name = stack_expr($1).id();
2033-
stack_expr($$).set(ID_identifier, base_name);
20342032
stack_expr($$).set(ID_base_name, base_name);
20352033
stack_expr($$).set(ID_value, type_exprt{stack_type($3)});
20362034
stack_expr($$).type() = typet{ID_type};

src/verilog/verilog_parameterize_module.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ std::list<exprt> verilog_typecheckt::get_parameter_values(
120120
}
121121

122122
// Is there a defparam that overrides this parameter?
123-
auto &identifier = decl.identifier();
124-
auto def_param_it = instance_defparams.find(identifier);
123+
auto &base_name = decl.base_name();
124+
auto def_param_it = instance_defparams.find(base_name);
125125
if(def_param_it != instance_defparams.end())
126126
value = def_param_it->second;
127127

src/verilog/verilog_typecheck.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -962,14 +962,14 @@ void verilog_typecheckt::convert_parameter_override(
962962

963963
auto module_instance =
964964
to_symbol_expr(hierarchical_identifier.module()).get_identifier();
965-
auto parameter_name = hierarchical_identifier.item().get_identifier();
965+
auto parameter_base_name = hierarchical_identifier.item().get_identifier();
966966

967967
// The rhs must be a constant at this point.
968968
auto rhs_value =
969969
from_integer(convert_integer_constant_expression(rhs), integer_typet());
970970

971-
// store the assignment
972-
defparams[module_instance][parameter_name] = rhs_value;
971+
// store the assignment.
972+
defparams[module_instance][parameter_base_name] = rhs_value;
973973
}
974974
}
975975

0 commit comments

Comments
 (0)