In a "Direct" instantiation method, a library and component are declared during instantiation, as in the following example:
architecture behavioral of top is
instance: entity my_library.lower(lower_arch)
port map (i => i, o => o);
In the above code, "my_library" is a user library, "lower" is the entity, and "lower_arch" is the architecture that belongs to "lower". When this method is used, there is no need to perform a library and component declaration. The UniSim library contains all primitives as components instantiated as black boxes, so the required architecture names are not available.
There is no way to work around the direct instantiation of primitives from the UniSim library. The "classical" style of instantiation must be used.