I have few unsigned, 8bits-wide number that i need to add/subtract together. Below the example:

```
h_tmp <= signed(r4(calc_cnt - 2) + r4(calc_cnt - 1) + r4(calc_cnt) +
r4(calc_cnt + 1) + r4(calc_cnt + 2) -
r2(calc_cnt - 2) - r2(calc_cnt - 1) - r2(calc_cnt) -
r2(calc_cnt + 1) - r2(calc_cnt + 2));
```

I know that a 13 bit wide result is ok for the numbers that I have, so i defined h_tmp as a signed (12 downto 0). Now, after synthesis I have the following warning

```
Width mismatch. <h_tmp> has a width of 13 bits but assigned expression is 8-bit wide.
```

It seems that the synthesiser inferred a 8bits-wide result of the calculation, what have I done incorrectly?