diff --git a/tgt-vhdl/expr.cc b/tgt-vhdl/expr.cc index 0632e53f5..90d8891ca 100644 --- a/tgt-vhdl/expr.cc +++ b/tgt-vhdl/expr.cc @@ -455,7 +455,11 @@ static vhdl_expr *translate_concat(ivl_expr_t e) vhdl_type *rtype = expr_to_vhdl_type(e); vhdl_binop_expr *concat = new vhdl_binop_expr(VHDL_BINOP_CONCAT, rtype); - return translate_parms(concat, e); + int nrepeat = ivl_expr_repeat(e); + while (nrepeat--) + translate_parms(concat, e); + + return concat; } vhdl_expr *translate_sfunc_time(ivl_expr_t e)