
But on occasion, it can cause great confusion and waste of time.Īll knowledge about VHDL starts with the IEEE Standard VHDL Language Reference Manual. Most of the time, nobody gets bothered by this. This may surprise some (or even most) VHDL designers, even experienced engineers. Libraries and Packages in VHDL WORK is not a VHDL Library There are two ways to do this: 1) with the “work” directory 2) with a user library. The following shows a complete example of this arrangement.

Note that the user must then also set up the pointer to the package. However, in that case, the user is responsible for the directory structure, the contents of the files, etc. User libraries and packages are setup very similarly to the built-in ones.
Error loading design in modelsim software#
The pointer ieee is hardcoded in the compilers and thus there is no need for the user to associate that pointer with the directory structure, nor is it possible to put the packages anywhere else after the software has been loaded. The directory structure shown in those three examples depicts the directories where the packages are loaded when the software is installed.

It is thus more appropriate to think of ieee as a pointer to the location of the package. In the latter there is no mention of ieee at all. Synplicty: ~\synplcty\LIB\vhd\std1164.vhd Note, however, where it is in Synplicity:

It is thus tempting to come to the conclusion that the “library ieee ” statement indicates the “directory” in which the std_logic_1164 package is located. Xilinx: ~\fndtn\synth\lib\packages\ieee\src\std_logic_1164.vhd For Altera Max+2 and Xilinx Foundation these locations typically are:Īltera: ~\maxplus2\vhdl93\ieee\std1164.vhd It’s instructive to show where the packages are physically located. Since the scope of the library statement extends over the entire file, it is not necessary to repeat that for the second package. The packages are std_logic_1164 and std_logic_signed and the library is ieee. In most vhdl programs you have already seen examples of packages and libraries. work Specify the name of the desired target library explicit Enables the resolving of ambiguous function overloading You must compile any entities or configurations before an architecture that references them.

Compiling a VeriLog Designįor VHDL, the order of compilation is important. To change the current working library, you can use vcom -work and specify the name of the desired target library. By default, this is the library named work. The vcom command adds compiled design units to the current working library. Note that the library clause is not used to specify the working library into which the design unit is placed after compilation. You can override this variable by specifying vcom -explicit. Using this variable makes QuestaSim compatible with common industry practice. This variable enables the resolving of ambiguous function overloading in favor of the “explicit” function declaration (not the one automatically created by the compiler for each type declaration). VHDL Procedural Language Application Interface standard (VHDL 1076c-2007) Revised standard (named VHDL 1076 2000, Edition) Mil Std 454 requires comprehensive VHDL descriptions to be delivered with ASICs Initiated by US DoD to address hardware life-cycle crisisĭevelopment of baseline language by Intermetrics, IBM and TI
