Chapter 7
Std_Logic_Arith
The last chapter described the synthesis packages for performing arbitrary-precision arithmetic. Unfortunately, these are not the only numeric packages in use. The reason for this is historical: the numeric packages were added to VHDL several years after synthesis tools using VHDL became available. The need for arbitrary-precision integer arithmetic was obvious, so synthesis vendors filled the gap by providing their own proprietary packages.
The package that came to be adopted by most synthesis vendors and for a while became accepted as a de-facto standard, is std_logic_arith. This package originated from Synopsys Incorporated, for use with their synthesis system. This package is now available with most synthesis and simulation systems and is public domain.
The main problem with std_logic_arith was that it was originally a proprietary package, the copyright in which rested with Synopsys Incorporated. This led to a standardisation effort to replace the package with a non-proprietary one of comparable functionality. This effort resulted in the IEEE standard packages numeric_std and numeric_bit. Package numeric_std is almost a direct replacement of std_logic_arith and has the advantage of being standardised. Numeric_bit has the same functionality but uses type bit and so is rarely used.
It has taken many years for the new IEEE standard to come into widespread use and package std_logic_arith is still in use in some designs. However, its use is deprecated ...