VHDL-2008 Support Library¶
These packages were designed as a bridge between VHDL-93 and VHDL-2008. I replicated as many of the new functions as possible. Note that all of these packages are design to be synthesizable in VHDL-93. So, as long as you stick to the subsets defined in the “README” files for the various vendors you should be able to take your code through the entire flow.
VHDL-2008 is finally getting some traction. What started out as just a fixed and floating point package got merged into the VHDL LRM. On this page you will find definitions of the functions available in the VHDL-2008 libraries. You will also find VHDL-93 compatible code for those that do not yet have access to VHDL-2008 compilers.
There is a Fixed Point user’s guide and a Floating Point user’s guide. Please check the Fixed and floating point FAQ (NEW!) if you have any quesiton.
The VHDL-2008 packages will eventually be included in your vendor’s environment. In some cases I have found that they may be encrypted due to IEEE rules. The packages available on this page are NOT the released packages, but VHDL-93 versions of those packages, which I published BEFORE the release of the LRM. They are free of copyright restrictions, and may be used for whatever purpose is needed.
VHDL-93 versions of the VHDL-2008 packages¶
|Additions to std.standard||standard_additions_c.vhdl||user’s guide|
|New package std.env||env_c.vhdl|
|Additions to std.textio||standard_textio_additions_c.vhdl||(user’s guide)|
|Additions to ieee.std_logic_1164||std_logic_1164_additions.vhdl||(user’s guide)|
|Additions to ieee.numeric_std||numeric_std_additions.vhdl||(user’s guide)|
|New package numeric_std_unsigned||numeric_std_unsigned_c.vhdl||(user’s guide)|
|New package fixed_float_types||fixed_float_types_c.vhdl|
|New package fixed_pkg||fixed_pkg_c.vhdl||(Fixed Point user’s guide)|
|New package float_pkg||float_pkg_c.vhdl||(Floating Point user’s guide)|
I use this code in most of my designs. Many times I find that I have to modify the code slightly in some tools, so I made this list. Included in the “source code” section for each tool is source code specifically debugged for that particluar tool. Click on the “documentation” link to see what changes I had to make, and how to use this code in the specific tool.
Some helpful code to go with these packages¶
fixed_pkg, however this version uses the same rules that
numeric_stddoes for the size of the result. This is done by calling the function in
fixed_pkgand resizing the result.
float_pkg, however this version turns off all of the IEEE rounding and overflow, and defaults to a 26 bit floating point number. This package saves off 1/3 of the logic needed for full 32 bit floating point.
Synthesis testcase for the fixed point package.
Testbench for the fixed point synthesis testcase.
Synthesis testcase for the floating point package.
Testbench for the floating point synthesis package
- Matrix Math package
for type REAL which has a user guide (Done in conjunction with IEEE 1076.1 VHDL-AMS)
Testbenches to verify an implimentation of VHDL-2008.