From b80dbeee11aec446b950df60ceeb98c7279d0340 Mon Sep 17 00:00:00 2001 From: Stephen Williams Date: Tue, 19 Oct 2010 19:07:44 -0700 Subject: [PATCH] Give module port atom2 objects their proper widths. These widths can be expressions as ranges, but must be present as this is how we identify them as the various types of ints. --- parse.y | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/parse.y b/parse.y index e7dc07d67..ec0fedec4 100644 --- a/parse.y +++ b/parse.y @@ -1920,17 +1920,18 @@ port_declaration | attribute_list_opt K_input atom2_type signed_unsigned_opt IDENTIFIER { Module::port_t*ptmp; perm_string name = lex_strings.make($5); + svector*use_range = make_range_from_width($3); ptmp = pform_module_port_reference(name, @2.text, @2.first_line); pform_module_define_port(@2, name, NetNet::PINPUT, NetNet::UNRESOLVED_WIRE, IVL_VT_BOOL, - $4, 0, $1); + $4, use_range, $1); port_declaration_context.port_type = NetNet::PINPUT; port_declaration_context.port_net_type = NetNet::UNRESOLVED_WIRE; port_declaration_context.var_type = IVL_VT_BOOL; port_declaration_context.sign_flag = $4; delete port_declaration_context.range; - port_declaration_context.range = 0; + port_declaration_context.range = use_range; delete $1; delete[]$5; $$ = ptmp; @@ -2013,17 +2014,18 @@ port_declaration | attribute_list_opt K_output atom2_type signed_unsigned_opt IDENTIFIER { Module::port_t*ptmp; perm_string name = lex_strings.make($5); + svector*use_range = make_range_from_width($3); ptmp = pform_module_port_reference(name, @2.text, @2.first_line); pform_module_define_port(@2, name, NetNet::POUTPUT, NetNet::IMPLICIT_REG, IVL_VT_BOOL, - $4, 0, $1); + $4, use_range, $1); port_declaration_context.port_type = NetNet::POUTPUT; port_declaration_context.port_net_type = NetNet::IMPLICIT_REG; port_declaration_context.var_type = IVL_VT_BOOL; port_declaration_context.sign_flag = $4; delete port_declaration_context.range; - port_declaration_context.range = 0; + port_declaration_context.range = use_range; delete $1; delete[]$5; $$ = ptmp;