--- Quote Start ---
It depends on how many versions or setup issue we are talking about.
I am not making it up....it is too trivial to be an issue, isn't it?
--- Quote End ---
Im talking about RTL simulation, unsigned + integer function. There is no way for this to cause any problems. The "+" function has no checking whatsoever for overflow. This function converts the integer to an unsigned, and then does the addition using xors and ands:
function ADD_UNSIGNED (L, R: UNSIGNED; C: STD_LOGIC) return UNSIGNED is
constant L_LEFT: INTEGER := L'LENGTH-1;
alias XL: UNSIGNED(L_LEFT downto 0) is L;
alias XR: UNSIGNED(L_LEFT downto 0) is R;
variable RESULT: UNSIGNED(L_LEFT downto 0);
variable CBIT: STD_LOGIC := C;
begin
for I in 0 to L_LEFT loop
RESULT(I) := CBIT xor XL(I) xor XR(I);
CBIT := (CBIT and XL(I)) or (CBIT and XR(I)) or (XL(I) and XR(I));
end loop;
return RESULT;
end ADD_UNSIGNED;
So, there is NEVER a need to check for overflow on an unsigned type.