diff --git a/parse.y b/parse.y index 2d2cf9f24..0bc3c11c6 100644 --- a/parse.y +++ b/parse.y @@ -5833,9 +5833,7 @@ dimensions net_variable : IDENTIFIER dimensions_opt { perm_string name = lex_strings.make($1); - pform_makewire(@1, name, NetNet::IMPLICIT, - NetNet::NOT_A_PORT, IVL_VT_NO_TYPE, 0); - pform_set_reg_idx(name, $2); + pform_makewire(@1, name, NetNet::IMPLICIT, IVL_VT_NO_TYPE, $2); $$ = $1; } ; diff --git a/pform.cc b/pform.cc index 42c0d74e0..3b2b0a1f1 100644 --- a/pform.cc +++ b/pform.cc @@ -2741,12 +2741,11 @@ static PWire* pform_get_or_make_wire(const vlltype&li, perm_string name, * the variable/net. Other forms of pform_makewire ultimately call * this one to create the wire and stash it. */ -void pform_makewire(const vlltype&li, perm_string name, - NetNet::Type type, NetNet::PortType pt, - ivl_variable_type_t dt, - list*attr) +void pform_makewire(const vlltype&li, perm_string name, NetNet::Type type, + ivl_variable_type_t dt, std::list *indices) { - PWire*cur = pform_get_or_make_wire(li, name, type, pt, dt); + PWire*cur = pform_get_or_make_wire(li, name, type, NetNet::NOT_A_PORT, + dt); assert(cur); bool flag; @@ -2767,12 +2766,8 @@ void pform_makewire(const vlltype&li, perm_string name, break; } - if (attr) { - for (list::iterator attr_cur = attr->begin() - ; attr_cur != attr->end() ; ++attr_cur) { - cur->attributes[attr_cur->name] = attr_cur->parm; - } - } + if (indices && !indices->empty()) + cur->set_unpacked_idx(*indices); } void pform_makewire(const struct vlltype&li, @@ -2793,8 +2788,7 @@ void pform_makewire(const struct vlltype&li, for (list::iterator cur = assign_list->begin() ; cur != assign_list->end() ; ++ cur) { decl_assignment_t* curp = *cur; - pform_makewire(li, curp->name, type, NetNet::NOT_A_PORT, IVL_VT_NO_TYPE, 0); - pform_set_reg_idx(curp->name, &curp->index); + pform_makewire(li, curp->name, type, IVL_VT_NO_TYPE, &curp->index); names->push_back(curp->name); } @@ -3076,22 +3070,6 @@ void pform_set_type_attrib(perm_string name, const string&key, (*udp).second ->attributes[key] = new PEString(value); } -/* - * This function attaches a memory index range to an existing - * register. (The named wire must be a register. - */ -void pform_set_reg_idx(perm_string name, list*indices) -{ - PWire*cur = lexical_scope->wires_find(name); - if (cur == 0) { - VLerror("internal error: name is not a valid memory for index."); - return; - } - - if (indices && !indices->empty()) - cur->set_unpacked_idx(*indices); -} - LexicalScope::range_t* pform_parameter_value_range(bool exclude_flag, bool low_open, PExpr*low_expr, bool hig_open, PExpr*hig_expr) diff --git a/pform.h b/pform.h index 60191b952..dbdf189f0 100644 --- a/pform.h +++ b/pform.h @@ -144,7 +144,6 @@ extern PWire* pform_get_wire_in_scope(perm_string name); extern PWire* pform_get_make_wire_in_scope(const struct vlltype&li, perm_string name, NetNet::Type net_type, - NetNet::PortType port_type, ivl_variable_type_t vt_type); /* @@ -350,9 +349,8 @@ extern PForeach* pform_make_foreach(const struct vlltype&loc, */ extern void pform_makewire(const struct vlltype&li, perm_string name, NetNet::Type type, - NetNet::PortType pt, - ivl_variable_type_t, - std::list*attr); + ivl_variable_type_t dt, + std::list *indices); /* This form handles assignment declarations. */ @@ -382,9 +380,6 @@ extern void pform_set_port_type(const struct vlltype&li, data_type_t*dt, std::list*attr); -extern void pform_set_reg_idx(perm_string name, - std::list*indices); - extern void pform_set_data_type(const struct vlltype&li, data_type_t*, std::list*names, NetNet::Type net_type, std::list*attr); extern void pform_set_string_type(const struct vlltype&li, const string_type_t*string_type, std::list*names, NetNet::Type net_type, std::list*attr); diff --git a/pform_disciplines.cc b/pform_disciplines.cc index 0e3c2e7f7..c0fd6d074 100644 --- a/pform_disciplines.cc +++ b/pform_disciplines.cc @@ -195,8 +195,7 @@ void pform_attach_discipline(const struct vlltype&loc, PWire* cur_net = pform_get_wire_in_scope(*cur); if (cur_net == 0) { /* Not declared yet, declare it now. */ - pform_makewire(loc, *cur, NetNet::WIRE, - NetNet::NOT_A_PORT, IVL_VT_REAL, 0); + pform_makewire(loc, *cur, NetNet::WIRE, IVL_VT_REAL, 0); cur_net = pform_get_wire_in_scope(*cur); assert(cur_net); }