In previous versions all VHDL RTL files were placed into a library called "work".
The problem with this is that work in VHDL LRM has a separate meaning and using "work" as a library is not correct.
"work" in the VHDL LRM actually means current library, so when a VHDL file has the statement
library work;
use work.all;
It means to use everything in the current library (the library that the file in question is compiled into).
By placing everything into a library called "work" there was the potential for simulation mismatches when the simulator would use components and functions from the current working library, but which could also exist in a library called "work".
By switching to a different library, Vivado will now avoid those situations.
It is still legal to use "work" as a library but not recommended.
If work is used with library and use statements, Vivado will now look into the current library for what it needs, but in order to keep backwards compatibility, it will also look for physical libraries called "work" if it does not find what it needs in the current library.
AR# 59980 | |
---|---|
日期 | 04/16/2014 |
状态 | Active |
Type | 已知问题 |
Tools |