Valentin said:
Thank you for your view of entity notion. Here was mine. May be
compiler/simulator has a third notion of entity object. Where is a supreme
arbiter that can tell who is right?
The LRM of course! ;-)
In my opinion your code is correct. I simulated your code (see below) in ModelSim.
The output did not contain any surprise:
bash> vsim -c 'my_ent(ext_arch)' -do 'run -a; quit'
Reading /appl/iccadm/MTI/mti_5.7d/tcl/vsim/pref.tcl
# 5.7d
# vsim -do {run -a; quit} -c my_ent(ext_arch)
# // ModelSim SE VHDL 5.7d May 2 2003 SunOS 5.8
# //
# // Copyright Model Technology, a Mentor Graphics Corporation company, 2003
# // All Rights Reserved.
# // UNPUBLISHED, LICENSED SOFTWARE.
# // CONFIDENTIAL AND PROPRIETARY INFORMATION WHICH IS THE
# // PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS.
# //
# Loading /appl/iccadm/MTI/mti_5.7d/bin/../sunos5/../std.standard
# Loading work.my_ent(ext_arch)
# Loading work.my_ent(basic_arch)
# run -a; quit
# ** Note: Hi, I am basic_arch
# Time: 0 ps Iteration: 0 Instance: /my_ent/base
# ** Note: Hi, I am ext_arch
# Time: 0 ps Iteration: 0 Instance: /my_ent
ENTITY my_ent IS
END ENTITY my_ent;
ARCHITECTURE basic_arch OF my_ent IS
BEGIN
hello: ASSERT false
REPORT "Hi, I am basic_arch"
SEVERITY note;
END basic_arch;
ARCHITECTURE ext_arch OF my_ent IS
BEGIN
hello: ASSERT false
REPORT "Hi, I am ext_arch"
SEVERITY note;
base: ENTITY work.my_ent(basic_arch);
END ext_arch;
Paul.