ID:	  N-001

Proposed by:  Jim Lewis,  Jim@SynthWorks.com   07/11/2002
Analyzed by:  
Resolved:     

Summary: 
Add array/scalar addition and subtraction. 
Targeted at simplifying add with carry.

Before this enhancement:
    Y_unsigned <= A_unsigned + B_unsigned + ("0" & Cin_stdulogic) ;

With this enhancement:
    Y_unsigned <= A_unsigned + B_unsigned + Cin_stdulogic ; 

Detail:
Add the following eight functions to numeric_std, numeric_bit,
the proposed numeric_unsigned, and the proposed numeric_bit_unsigned.
For the functions below the std_ulogic type operand is interpreted 
as a Unsigned'('0' & passed_value) when the other operand is unsigned, 
and as a Signed'('0' & passed_value) when the other operand
is a signed value. 

--J1 
    function "+"(L: unsigned; R: std_ulogic) return unsigned; 
--J2 
    function "+"(L: std_ulogic; R: unsigned) return unsigned; 
--J3 
    function "+"(L: signed; R: std_ulogic) return signed; 
--J4 
    function "+"(L: std_ulogic; R: signed) return signed; 
--J5 
    function "-"(L: unsigned; R: std_ulogic) return unsigned; 
    if L < R, result is consistent with:  L - unsigned'('0'&R)

--J6 
    function "-"(L: std_ulogic; R: unsigned) return unsigned; 
    if L < R, result is consistent with:  unsigned'('0'&L) - R   

--J7 
    function "-"(L: signed; R: std_ulogic) return signed; 
--J8 
    function "-"(L: std_ulogic; R: signed) return signed; 

Analysis:
[To be done by the Working Group]
E-mail discussion

Resolution:
[To be done by the Working Group]


Back to the numeric package proposals
Please send feedback to David Bishop dbishop@vhdl.org